Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。为了方便查找记忆Git的命令,特整理常用的Git命令,以便日后需要。

创建

1
2
$ git clone ssh://user@domain.com/xx.git # 克隆远程仓库
$ git init # 初始化本地的Git仓库

提交历史记录

1
2
3
$ git log # 显示日志
$ git show <commit> # 显示某一次提交的详细内容
$ git blame <fileName> # 追溯某一个文件的历史修改记录

本地修改

1
2
3
4
5
6
$ git status # 查看当前版本的状态(是否修改)
$ git diff # 比较的工作目录中当前文件和暂存区域快照之间的差异
$ git add <file> # 将该文件添加到缓存中
$ git commit -m "xxx" # 提交
$ git commit --amend -m "xxx" # 合并上一次的提交(用于反复修改)
$ git commit --am "xxx" # 将add和commit合为一步

分支和标签

1
2
3
4
5
$ git branch # 显示本地分支
$ git checkout <branch> # 切换分支如果不存在则创建此分支
$ git branch -d <branch> # 删除此分支
$ git branch --track <new> <remote> # 创建新分支跟踪远程分支
$ git tag <tag-name> # 给当前分支打上标签

更新和发布

1
2
3
4
5
6
7
8
$ git remote -v # 列出远程分支详细信息
$ git remote show <remote> # 显示某一个分支信息
$ git remote add <remote> <url> # 添加一个新的远程仓库
$ git fetch <remote> # 拉取远程分支,但是不更新本地分支,需要手动合并
$ git pull <remote> <branch> # 拉取远程分支,并更新本地分支
$ git push <remote> <branch> # 推送本地更新到远程分支
$ git push <remote> --delete <branch> # 删除一个远程分支
$ git push --tags # 推送本地标签

撤销

1
2
3
4
5
6
7
$ git reset --hard HEAD # 强制将当前版本重置为HEAD(用于merge失败)
$ git reset --hard <commit> # 强制将当前版本重置至某一个提交状态
$ git reset <commit> # 将当前版本重置至某一个提交状态,代码不变
$ git reset --merge <commit> # 重置至某一个状态,保存版本库中不同的文件
$ git reset --keep <commit> # 重置至某一个状态,重置变化的文件,代码改变
$ git checkout HEAD <file> # 丢弃本地更改信息并将其存入特点文件
$ git revert <commit> # # 撤销提交,常用于远程撤销

合并

1
2
3
4
5
$ git merge <branch> # 合并分支到当前分支,存在两个
$ git rebase <branch> # 合并分支到当前分支,存在一个
$ git rebase --abort # 回到执行rebase之前
$ git rebase --continue # 解决矛盾后继续执行rebase
$ git mergetool # 使用mergetool解决冲突

帮助

1
$ git help <command> # 获取命令帮助