Git 2分钟指南
jopen
10年前
灵感来自“5分钟Git”,我决定更进一步,并创建花费更少的时间掌握git的指南。当然,这是非常简单的git!但这对独立的开发者来说已经足够有用,并为你的继续成长提供了一个开始。
受益于这种指南的可能是一名高中生,正在进行着他的或她的第一个编程项目,并且他不需要与任何人分享代码。(我想,是的,我的儿子,他写了大量的代码并没有花时间学习一个版本控制系统。这是写给他的,同时其他人也可以使用它。)使用Git对他非常有意义。不像Subversion,可以在没有服务器的情况下很容易地使用它(需要做的只是定期备份他的硬盘)。在一个二分钟的指南中,没有时间去担心一个服务器,所以这是完美的。
再次,这种方式使用Git只适合一个有定期备份策略的独立开发者。有两分钟的git,加上一个备份策略,你可以自信地提交文件,知道你可以看到的变化的版本或在需要的时候恢复较早的一个版本。
为什么这个还这么重要?嗯,一个开发人员能够认识到,一些曾经的最恼人的和耗时的工作经历将不会再有。在这样的情况下,能够看到变化后的版本,恢复到一个较早的版本可以说是一个重要的功能。同时,能够回滚之前的版本从而给你自由去试验一种新的方法——没有问题,因为你总是可以回滚。
当你有一个机会,你一定要了解staging和branching等功能,以及从远程存储仓库pushing/pulling的功能。但是,你在这里学习的将仍然是有用的!
注意:当下面提到了一个文件名,你可以很容易地使用文件路径。
开始使用Git
如果你还没有安装Git,可以参考开始主页上的安装指南。
第一次使用Git,我们假设你在一个目录下工作,这个目录是您项目的主目录。你应该做的第一件事就是:
git init //它初始化git使用的目录。
告诉Git你的文件
现在你要告诉Git哪些文件应该关心的。如果你有N个文件,你可以做:
git add <file1> <file2> … <fileN> 加入他们。如果你想添加目录中的每个文件,你可以做:
git add . //(.代表当前目录)
提交更改
接下来,我们需要提交更改。任何时候你想提交一个或多个变化的文件,做:
git commit <file1> <file2> … <fileN> -m “This is your commit message"
或者,把所有的自上次提交之后变化的文件:
git commit -a -m “This is your commit message for all changed files"
一定要让你的提交信息中包含足够的描述,以便于你可以找出你想回到之前的某个版本。
查看历史记录
现在我们需要一种方式查看旧版本。看到你的提交信息以及每个版本的“hash”(一个数字,是指版本),你可以使用下面的命令来显示他们one-version-per-line,每行输出。
git log --pretty=oneline
这会让你看起来像下面的输出,显示每个提交的哈希和提交信息
dbe28a0a1eba45d823d309cc3659069fc16297e3 第四版我想提交
13bbf385e6d1f94c7f11a4cdfa2a7688dfdd84f8 第三版
a1696f671fb90dc8ea34645a6f851d0ab0152fc2 第二版
179e59467039c7a7b81f676297415c8e018542a0 第一版
注意,您也可以使用
git log
一个更详细的输出,每版多行,你可以使用
git log --pretty=oneline -- <filename>
查看一个特定的文件的变化。(注意破折号!)
恢复旧版本
最后,恢复文件到一个较早的版本,你只需要使用的Hash的前几个字符(只要足够区别):
git checkout <hash> -- <filename>
例如,
git checkout 179e59467039 -- myfile
将恢复我的文件的文件名为myfile且与179e59467039c7a7b81f676297415c8e018542a0哈希关联的内容(在这种情况下,指第一次提交的文件)。
看到变化
通常你不会想要检索文件的旧版本而不先检查它包含的变化!查看一个文件的一个历史版本和当前版本之间的差异,你可以查看历史版本的Hash:
git diff <hash> -- <filename>
你也可以比较两个历史版本:
git diff <hash1> <hash2> -- <filename>
最后一件事––可选––可能会增加另一分钟
虽然你可以得到很多好处只使用上述特性,这还有一点你会发现是有用的。如果你现在不想被打扰了,不必再试一次。
有时候,你不知道什么文件变化了。为了找到它,你可以做:
git status
这会产生一个文件列表和他们的状态。例如,一个文件没有被“git add“-将会被列出来作为“untracked”;如果是一个你关心的文件,你应该添加它。
我觉得这个命令“optional”在一个二分钟的指南里,它可能有点小笨重,因为它可以列出很多你不关心的文件。例如,如果你的编程语言是Python,它会显示编译文件.pyc。你可能会想做些什么来解决它,你需要在你的项目目录中创建一个文件叫做.gitignore。例如,如果你工作在Python 2.X的项目上,你可能会想要它包含(至少):
*.pyc
请注意,.gitignore理解*作为通配符。如果你想隐藏整个目录,你在文件夹名称后附加一个斜线。比如你在Python 3.x环境下工作,编译后的文件在一个目录称为__pycache__的里面,所以你需要下面的这个在你的.gitignore中:
__pycache__ /
就是这样!只要保持这个指导手册
这就是你开始使用Git所需要知道的,只要你的硬盘有定期备份策略。如果你不想记住任何超越主要COMMIT的命令,就把这个指南加入书签,你就可以提交,版本比较,没有任何麻烦回到旧版本!
记住,本指南作为简约版使用git做点有用的事情。强大的功能像branching,staging,并通过远程服务器与他人分享,请移动到Git五分钟指南甚至其他(?!)更长一些的Git指南!
来自:http://blog.csdn.net/shijiebei2009/article/details/40475581