GIT CHEAT SHEET翻译

本人翻译自速查表,通过该文档快速学习Git。

Git是开源分布式版本控制系统,可以帮助您在笔记本电脑或台式电脑上使用GitHub。该速查表总结了常用的Git命令并进行说明,以便快速参考。

安装Git

GitHub提供桌面客户端,它包括了拥有最常见存储库操作的图形用户界面,以及针一个能对高级场景自动更新的Git命令行版本。

GitHub for Windows

https://windows.github.com

GitHub for mac

https://mac.github.com

Linux和POSIX系统的Git发行版可在官方Git SCM网站上找到。

Git for All platforms

http://git-scm.com

配置工具

配置所有本地存储库的用户信息

1
$ git config --global user.name "[name]"

设置您要附加到提交事务的名称

1
$ git config --global user.email "[email address]"

设置您要附加到您的提交事务的电子邮件

1
$ git config --global color.ui auto

使命令行输出加上有用颜色

创建仓库

开启一个新的仓库或者从已有的URL获取一个

1
$ git init [project-name]

用特定的名字命名并创建一个本地的仓库

1
$ git clone [url]

下载项目及其整个版本的历史记录

变更

复习编辑和制作一个commit事务的命令

1
$ git status

列出要提交的所有新的或被修改的文件

1
$ git diff

显示未添加进stage区的文件前后差异

1
$ git add [file]

把文件进行快照,为版本控制做准备

1
$ git diff --staged

显示stage区和最后一个文件版本之间的文件差异

1
$ git reset [file]

使文件移除stage区,但保留其内容

1
$ git commit -m "[descriptive message]"

在版本历史记录中永久记录文件快照

群体变更

对一系列commits以及完整的合并进行命名

1
$ git branch

在当前的仓库中列出所有的本地分支

1
$ git branch [branch-name]

创建一个新的分支

1
$ git checkout [branch-name]

切换到指定的分支并更新工作目录

1
$ git merge [branch]

合并特定的分支历史记录到当前的分支中

1
$ git branch -d [branch-name]

删除特定的分支

重构文件

重新定位和删除版本文件

1
$ git rm [file]

从工作目录删除文件,并暂存(staged)删除这个动作

1
$ git rm --cached [file]

从版本控制中删除文件,但在本地保留文件

1
$ git mv [file-original] [file-renamed]

更改文件名并准备提交

停止追踪

排除临时文件和路径

1
2
3
*.log
build/
temp-*

名为.gitignore的文本文件可以停止追踪与指定的文件相匹配的文件和路径

1
$ git ls-files --other --ignored --exclude-standard

将工程中被限定的文件列出

保留片段

搁置并恢复不完整的更改

1
$ git stash

暂时存储所有修改过的被追踪的文件

1
$ git stash pop

恢复最近的stashed的文件

1
git stash list

列出所有stashed变更列表

1
$ git stash drop

丢弃最近被stash的变更

回顾历史

浏览并检查项目文件的演进

1
$ git log

列出当前分支的历史版本

1
$ git log --follow [file]

列出指明的文件的历史版本,包括更改过名称的。

1
$ git diff [first-branch]...[second-branch]

展示两个分支间的不同

1
$ git show [commit]

输出特定提交的元数据和内容更改的地方

退回提交

擦出错误并更换历史记录

1
$ git reset [commit]

退回[commit]之后的所有命令,保存本地的改变

1
$ git reset --hard [commit]

将所有历史记录和更改丢弃回特定的某个提交

同步更改

注册一个仓库的bookmark并交换版本历史记录

1
$ git fetch [bookmark]

从这个仓库的bookmark下载所有的历史记录

1
$ git merge [bookmark]/[branch]

合并当前的bookmark的分支到当前的本地分支

1
$ git push [alias][branch]

将所有本地分支提交上传到GitHub

1
$ git pull

下载bookmark历史记录并整合更改

不定时补充备注:

  1. 工作区clean不是指的工作区清空,而是指checkout的版本没有变动的地方。

  2. git rm –cached [file] 如果the following file has staged content different from both the file and the HEAD 就会出错。

  3. 使用git stash pop后,stage区之前有被提交的,也被清空,统一回到add前的状态。也就是这个时候,git diff –staged不会有反应。

  4. 在本地新建一个分支:git branch newBranch //////切换到你的新分支: git checkout newBranch //////将新分支发布在github上:git push origin newBranch //////在本地删除一个分支:git branch -d newBranch //////在github远程端删除一个分支:git push origin :newBranch (分支名前的冒号代表删除)/git push origin –delete newBranch (注意删除远程分支后,如果有对应的本地分支,本地分支并不会同步删除!)

相关链接:
stash用法:http://www.cnblogs.com/craftor/archive/2012/11/04/2754149.html
Git参考手册:http://gitref.org/zh/