常用Git命令速查笔记

常用Git命令总结与速查笔记

参考文档: “Pro Git—Scott Chacon”

Git基础操作

几幅有助于理解GIT操作流程的示意图:

创建项目的Git仓库

从当前目录初始化

1
2
$ git init                 将当前目录初始化为git仓库
$ git init [project-name] 新建一个目录,将其初始化为Git代码库

初始化后,在当前目录下会出现一个名为.git的目录,所有Git需要的数据和资源都存放在这个目录中。

1
2
$ git add [file]              添加到暂存区
$ git commit -m 'comments' check in到仓库

从现有仓库clone

1
$ git clone git://github.com/schacon/grit.git    从现有仓库克隆

查看状态

1
$ git status

查看diff

1
2
3
$ git diff              查看当前文件(工作区)与暂存区的差异
$ git diff --cached 查看暂存文件与上次提交的差异
$ git diff HEAD 查看工作区与上次提交的差异

跳过使用暂存区域

1
$ git commit -a -m 'comments'

移除文件

1
2
$ git rm [file]           从仓库移除,同时也从本地文件夹删除
$ git rm --cached [file] 从仓库移除,但不从本地文件夹删除

移动/重命名文件

1
$ git mv [file_from] [file_to]

查看提交历史

1
2
$ git log            查看提交历史
$ git log --p -2 查看提交内容差异, 显示2个

撤销操作

修改最后一次提交

1
2
$ git add [forgotten_file]    补上暂存操作
$ git commit --amend 运行 --amend 提交

撤销暂存区的文件(即撤销已经git add操作)

1
$ git reset HEAD <file>

取消对文件的修改

1
$ git checkout -- <file>

在历史版本之间切换

1
2
$ git reflog          查看命令历史, 可以显示历史commit id
$ git reset --hard [commit_id]

Git 分支


查看分支信息

1
2
3
$ git branch      list所有本地分支
$ git branch -r list所有远程分支
$ git branch -a list所有分支

新建分支

1
2
$ git branch [branch-name]    新建一个分支,但依然停留在当前分支
$ git checkout -b [branch] 新建一个分支, 并切换到该分支

切换分支

1
$ git checkout [branch-name]    切换到指定分支

合并分支

1
$ git merge [branch]     合并指定分支到当前分支

删除分支

1
$ git branch -d [branch-name]     删除指定分支

解决冲突

1
2
3
$ git status           查看文件冲突信息
$ git add [file_name] 将冲突文件标记为解决
$ git mergetool 使用可视化的合并工具

远程仓库的使用

显示远程仓库

1
2
$ git remote      显示仓库名
$ git remote -v 显示详细信息

添加远程仓库

1
$ git remote add [shortname] [url]

从远程仓库抓取数据

1
$ git fetch [remote-name]

此命令会到远程仓库中拉取所有你本地仓库中还没有的数据.
需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。

1
$ git pull [remote] [branch]   取回远程仓库的变化,并与本地分支合并

推送数据到远程仓库

1
$ git push [remote-name] [branch-name]  上传本地指定分支到远程仓库

查看远程仓库信息

1
$ git remote show [remote-name]  查看某个远程仓库的详细信息

跟踪远程分支

1
$ git checkout -b [分支名] [远程名]/[分支名]

删除远程分支

1
$ git push [remote-name] :[branch-name]

标签操作

列显已有的标签

1
$ git tag

新建标签

含附注的标签

1
$ git tag -a [tag_name] -m 'comments'

轻量级标签

1
$ git tag [tag_name]

查看标签信息

1
$ git show [tag_name]

推送标签到远程仓库

1
$ git push [remote] [tag_name]

新建一个分支,指向某个tag

1
git checkout -b [branch] [tag_name]

学习网站

https://git-scm.com/book/zh/v2
https://git.wiki.kernel.org/index.php/Main_Page
http://gitready.com/
https://www.kernel.org/pub/software/scm/git/docs/

Share