一、git概述
git是一个代码协同管理工具,防止代码丢失,可以做备份代码版本的管理,可以进行多个版本之间的跳跃。用的最多的两种管理工具:snv、git
分布式 :每一个结点都保存完整的代码,没有统一的中央服务器,节点之间相互推送下 载代码完成代码共享,例如git
集中式 :代码集中管理,每次完成的代码上传到中央管理器,然后再统一从中央管理器 中下载代码使用,例如svn
官网地址:https://gitscm.com/downloads
liunx下的安装:
sudo apt‐get install git
二、git的配置
(1)系统中所有的用户都可以使用该配置:git config --system 配置信息
配置文件是:/etc/gitconfig
(2)当前用户可使用该配置:git config --global 配置信息
配置文件是:~/.gitconfig
(3)当前项目可使用该配置 git config
配置文件是:当前项目下的 ./.git/config

三、git的操作

1、git的基本操作
(1)初始化仓库
git init
在某个目录下初始化仓库后会自动产生.git目录,改目录下工作的所有文档可使用git进行管理 。
(2)查看文件、分支状态
git status
(3)将指定的文件提交到暂存区
git add <文件名> //将指定文件(任意文件类型的文件)提交到暂存区
git add * //将当前目录下所有的文件提交到暂存区
注意: 提交到暂存区的文件没有存放在本地仓库中
git rm ‐‐cache <文件名> //删除暂存区的指定文件
(4)将暂存区的文件提交到本地仓库
git commit ‐m <"提交说明">将文件同步到本地仓库并且设置提示说明
注意: 一般提示时需要附加一些同步信息,在-m后添加。
所有对工作区的修改,如果想同步到仓库,都需要执行当前命令(add --> commit)
(5)查看commit日志
git log 查看所有cimmit日志
git log --pretty=oneline 查看单行日志
(6)比较本地文件和本地仓库中文件的区别
git diff
2、恢复操作
(1)从本地仓库恢复本地文件
git checkout <文件名>
(2)丢弃工作区的修改
git checkout --<文件名> //丢弃本地指定文件中的已经修改的内容(--两边都有空格)
(3)本地仓库文件的移动和删除
git mv <源文件> <目的目录> //在本地仓库中将源文件移动目的目录中(本地也会移动)
git rm <文件名> //在本地仓库中删除指定的文件(本地也会删除)
注意: 移动和删除后,需要再次执行git commit
(4)回到上一个版本
git reset --hard HEAD^ //HEAD后面的^数量决定了回到上几个版本
(5)回到指定的版本
git reset --hard //只需要commit id的前七位即可
3、标签管理(版本管理)
(1)标签:在当前工作的位置添加快照,保存工作状态,一般用于版本的迭代
(2)创建标签
git tag <标签名称> //创建标签
git tag -m <标签名称> //创建标签并设置提示信息
git tag <commit id> //指定某一个commit id处创建标签
例如:git tag v1.0 默认是在最新的commit id处创建标签
(3)查看标签
git tag
(4)删除标签
git tag -d <标签名称>
(5)查看指定标签的具体信息
git show <标签名称>
(6)恢复到指定标签的位置
git reset --hard <标签名称>
4、建保存临时工作区
(1)创建保存临时工作区
git stash
(2)查看临时工作区
git stash list
(3)使用指定的工作区
git stash apply stash@{指定临时工作区编号}
(4)使用最新的临时工作区并删除
git stash pop
(5)删除指定的临时工作区
git stash drop stash@{编号}
(6)删除所有的临时工作区
git stash clear
四、分支命令操作
1)查看当前分支
git branch
注意:前面有*的分支表示当前正在工作的分支
.2)创建一个分支(默认在主分支创建)
git branch <分支名称>
3)切换工作分支
git checkout
4)创建并切换到新的分支
git checkout ‐b <分支名称> //主要用于在创建的分支基础上在创建分支
5)将指定的分支合并到当前分支
git merge <分支名称>
合并过程中如果没有冲突,直接合并后当前分支即为干净的状态,直接保存在本地仓库中 如果产生冲突,需要人为的选择,然后在进行add和commit的操作 在创建分支前,尽量保证当前分支是干净的,以减少冲突的发生。
6)删除指定的分支
git branch ‐d < 分支名称>
注意: 如果删除的分支没有合并,是不能用当前命令删除的 使用-D删除,表示强制删除指定分支
五、远程仓库
(1)远程仓库 本机或另一台主机上的仓库,可以被其他主机访问到
(2) 创建远程仓库
2.1)创建文件夹
mkdir <目录名>
2.2)设置文件夹的属主(可忽略)
chown <用户名>:<组名> <目录名>
2.3)进入文件夹,将该文件夹设置为共享仓库
git init ‐‐bare <项目名称> (项目名称一般都是以.git结尾)
2.4)设置本地仓库的属主(可忽略)
chown ‐R <用户名>:<组名> <目录名>
(3)将本地仓添加 到远程仓库(在本地仓)
git remote add <仓库名称> <用户名>@<ip地址>:<共享仓库的绝对路径>
注意: 默认使用ssg作为传输手段,仓库名称可以任意起名字。
必须在本地的某个git仓库下执行,才能是本地仓库和远程仓库关联
(4)删除远程仓库
git remote rm <仓库名称>
(5)将本地仓库的文件推送到远程仓库(第一次操作)
git push ‐u <远程仓库名> <要推送的分支>
(6)从远程仓库获取项目
git clone <用户名>@<ip地址>:<共享仓库的绝对路径>
(7)从远程仓库拉取 分支或者代码,可以更新代码 (第一次操作)
git pull <远程仓库名> <远程分支名> //拉取远程仓库指定的分支并且与当前分支合并
git pull <远程仓库名> <远程分支名> : <本地分支名> //不合并
(8)代码推送和更新 (第二次操作)
git push //将本地仓库的文件推送到远程仓库
git pull //从远程仓库中更新代码
git fetch //也用于更新,但是如果有新的分支不会合并
(9)本地旧版版覆盖远程新版本
git push --force <远程仓库名> //当本地比远程旧,用本地覆盖远程
六、远程仓gitee
1、windows下载

2、Linux下载
git clone https://gitee.com/jjxliu306/ng-form-element.git
3、创建远程仓库

若远程仓存在本地仓不存在的文件,需先执行git pull --rebase origin master 。

Git 全局设置:
git config --global user.name "寒晓星xing"
git config --global user.email "13824347+han-xiaoxing-xing@user.noreply.gitee.com"
创建 git 仓库:
mkdir myproject
cd myproject
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/han-xiaoxing-xing/myproject.git
git push -u origin "master"
已有仓库:
cd existing_git_repo
git remote add origin https://gitee.com/han-xiaoxing-xing/myproject.git
git push -u origin "master"