常用Git命令总结与速查笔记
参考文档: “Pro Git—Scott Chacon”
Git基础操作
几幅有助于理解GIT操作流程的示意图:
创建项目的Git仓库
从当前目录初始化
1 | $ git init 将当前目录初始化为git仓库 |
初始化后,在当前目录下会出现一个名为.git的目录,所有Git需要的数据和资源都存放在这个目录中。
1 | $ git add [file] 添加到暂存区 |
从现有仓库clone
1 | $ git clone git://github.com/schacon/grit.git 从现有仓库克隆 |
查看状态
1 | $ git status |
查看diff
1 | $ git diff 查看当前文件(工作区)与暂存区的差异 |
跳过使用暂存区域
1 | $ git commit -a -m 'comments' |
移除文件
1 | $ git rm [file] 从仓库移除,同时也从本地文件夹删除 |
移动/重命名文件
1 | $ git mv [file_from] [file_to] |
查看提交历史
1 | $ git log 查看提交历史 |
撤销操作
修改最后一次提交
1 | $ git add [forgotten_file] 补上暂存操作 |
撤销暂存区的文件(即撤销已经git add操作)
1 | $ git reset HEAD <file> |
取消对文件的修改
1 | $ git checkout -- <file> |
在历史版本之间切换
1 | $ git reflog 查看命令历史, 可以显示历史commit id |
Git 分支
查看分支信息
1 | $ git branch list所有本地分支 |
新建分支
1 | $ git branch [branch-name] 新建一个分支,但依然停留在当前分支 |
切换分支
1 | $ git checkout [branch-name] 切换到指定分支 |
合并分支
1 | $ git merge [branch] 合并指定分支到当前分支 |
删除分支
1 | $ git branch -d [branch-name] 删除指定分支 |
解决冲突
1 | $ git status 查看文件冲突信息 |
远程仓库的使用
显示远程仓库
1 | $ git remote 显示仓库名 |
添加远程仓库
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/