一、Git 安装
1、ubuntu 安装git, 运行命令:
sudo apt-get install git
2、mac 安装git, 运行命令:
sudo brew install git
3、windows安装git从下面网址下载:
https://git-scm.com/download/win
git 版本为2.7.4
二、 Git命令
1.仓库类命令
初始化本地库
git init
克隆远程仓库
git clone giturl
2.分支类命令
1.拉取远程分支,origin 为远程仓库名,master为远程分支名
git fetch origin master
2.在当前分支合并master,会产生的新的commit,有冲突的话,要处理冲突,再commit
git merge origin/master
3.拉取并合并master, 相当于执行了git fetch 和git merge
git pull origin master
4.拉取并合并master, 相当于执行了git fetch 和git rebase, 不产生merge commit
git pull origin master --rebase
5.在当前分支上合并master分支,保持了提交顺序,不会产生新的commit 信息,有冲突修改冲突
git rebase master
6.冲突解决后,继续合并下一个commit
git rebase --continue
7.跳过当前commit 合并
git rebase --skip
8.终止当前rebase
git rebase --abort
9.从当前分支创建dev分支
git checkout -b dev
10.从master分支创建并切换到dev分支
git checkout -b dev master
11.从远程master 创建并切换到dev分支, 需要先fetch
git checkout -b dev origin/master
12.切换到dev 分支
git checkout dev
13.显示当前所在分支
git branch
14.显示本地远程分支
git branch -r
15.显示本地所有分支
git branch -a
16.创建dev分支
git branch dev
17.删除本地分支
git branch -d dev
18.重命名本地分支
git branch -m dev dev1
19.删除远程分支, 冒号前有空格
git push origin :detest
20.上传分支
git push origin detest
21.查看tag标签
git tag
22.给分支创建快照
git tag v1.0.1
23.查看tag标签信息
git show v1.0.1
24.删除标签
git tag -d v1.0.1
25.上传所有标签
git push origin --tags
26.上传标签
git push origin v1.0.1
3.文件类命令
1.将某文件加入暂存区
git add some file
2.将当前工作区所有文件加入暂存区
git add .
3.将暂存区中的索引内容添加到本地版本库中
git commit -m “commit message”
4.从版本库删除文件
git rm somefile
5.从暂存区删除文件, 工作区则不做出改变
git rm somefile --cached
6.用版本库中文件替换工作区的文件, 即抛弃工作区修改
git checkout --somefile
7.用版本库替换工作区, 即抛弃工作区所有修改
git checkout .
8.从暂存区恢复到工作区文件
git reset somefile
9.从暂存区恢复到工作区所有文件
git reset .
10.从版本库覆盖暂存区,恢复到工作区文件,默认--mixed方式,撤销commit信息到此commitid
git reset somefile commitid
11.从版本库恢复到暂存区文件,撤销commit信息到此commitid
git reset --soft some file commitid
12.从版本库覆盖工作区文件,撤销commit信息到此commitid
git reset --hard some file committed
13.撤销commitid的提交, 同时创建新的提交,之前commit信息不变
git revert committed
14.撤销之前的两次提交, 同时创建新的提交,之前commit信息不变
git revert HEAD~2
15.查看工作区文件和暂存区文件差异
git diff somefile
16.查看暂存区文件和版本库文件差异
git diff --cached
17.查看两个commit之间的差异
git diff commitid1 id2
18.查看两个branch之间的差异
git diff branch1 branch2
19.列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提的文件
git status
20.显示此committed的修改
git show commitid
4.日志类命令
1.查看每次详细修改内容的diff
git log -p somefile
2.查看最近两次详细修改内容的diff
git log -p -2
3.查看提交日志
git log
4.可以查看所有分支的所有操作记录(包括commit和reset的操作)
git reflog
5、其它命令
查看远程服务器地址和仓库名称
git remote -v
查看远程服务器仓库状态
git remote show origin
添加远程仓库地址
git remote add origin git@ github:jinwei.zhu/teach_git.git
将本地修改压栈
git stash
查看栈中的改动
git stash list
弹出并应用栈中的改动
git stash pop
弹出并应用栈中1号改动
git stash pop stash@{1}
应用栈中的一个改动
git stash apply
弹出栈中的一个改动
git stash drop
生成补丁
git diff > patch.patch
打补丁
git apply patch.patch
三、git 设置
1、如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。这个文件每一行可以配置一个规则,例如:
忽略所有 .a 结尾的文件
*.a
lib.a 除外
!lib.a
仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
忽略 build/ 目录下的所有文件
build/
忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
2、常用配置及别名设置通过~/.gitconfig来修改