Git 常用自用命令总结

个人常用Git命令总结,持续更新…

创建版本库

1
2
$ git clone <url>        # 克隆远程版本库
$ git init # 初始化本地版本库

修改和提交

1
2
3
4
5
6
7
8
9
$ git status                           # 查看状态
$ git diff # 查看变更内容
$ git add . # 跟踪所有改动过的文件
$ git add <file> # 跟踪指定文件
$ git mv <old> <new> # 文件改名
$ git rm <file> # 删除文件
$ git rm --cached <file> # 停止跟踪文件但不删除
$ git commit -m "commit message" # 提交所有更新过的文件
$ git commit --amend # 修改最后一次提交

查看提交历史

1
2
3
$ git log                 # 查看提交历史
$ git log -p <file> # 查看指定文件的提交历史
$ git blame <file> # 以列表方式查看指定文件的提交历史

撤销

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ git reset --hard HEAD         # 撤销工作目录中所有未提交文件的修改内容
# --hard要慎用
$ git reset HEAD^ # 回退所有内容到上一个版本
$ git reset HEAD^ <file> # 回退指定文件的版本到上一个版本
$ git reset –soft HEAD~3 # 向前回退3个版本
$ git reset –hard origin/master # 将本地的状态回退到和远程的一样
$ git reset <commit> # 回退到某个版本

$ git commit --amend # 修改最后一次提交。
# 用于修改上一次的提交信息,或漏提交文件等情况。
$ git checkout -- <file>
$ git checkout HEAD <file> # 撤销指定的未提交文件的的修改内容

$ git revert <commit> # 撤销指定的提交
$ git revert HEAD # 回退到上一次提交的状态
# 按照某一次的commit完全反向的进行一次commit
# 代码回滚到上个版本,并提交git

分支与标签

1
2
3
4
5
6
7
8
9
10
11
12
$ git branch                                      # 显示所有本地分支
$ git checkout <branch/tag> # 切换到指定分支或标签
$ git branch <new-branch> # 创建新分支
$ git branch -d <branch> # 删除本地分支
$ git branch (-m|-M) <old branch> <new branch> # 删除本地分支
# -M: 强制重命名
# 如重命名远程分支:
# 删除远程待重命名分支,重新push本地新分支
$ git checkout -b <new-branch> <existing-branch> # 基于已有分支,创建新分支
$ git tag # 列出所有本地标签
$ git tag <tag-name> # 基于最新提交创建标签
$ git tag -d <tag-name> # 删除标签

release 基本流程

1
2
3
4
$ git status                           # 查看状态
$ git tag <tag-name> # 基于最新提交创建标签
$ git push --tags # 上传所有标签
$ release # 发行版本(需事先安装release包 https://github.com/zeit/release)

合并

1
2
$ git merge <branch>          # 合并指定分支到当前分支
$ git rebase <branch> # 衍合指定分支到当前分支

远程操作

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> :<branch/tag-name> # 删除远程分支或标签
$ git push --tags # 上传所有标签