git - 简明指�

助你入门 git 的简明指�,木有高深内容 ;)

作者:罗�·�德勒
感谢:@tfnico, @fhd 和 Namics
如有纰�,请在 github �报问题

安装

下载 git OSX 版

下载 git Windows 版

下载 git Linux 版

创建新仓库

创建新文件夹,打开,然�执行
git init
以创建新的 git 仓库。

检出仓库

执行如下命令以创建一个本地仓库的克隆版本:
git clone /path/to/repository
如果是远端�务器上的仓库,你的命令会是这个样�:
git clone username@host:/path/to/repository

工作�

你的本地仓库由 git 维护的三棵“树�组�。第一个是你的 工作目录,它�有实际文件;第二个是 暂存区(Index),它�个缓存区域,临时�存你的改动;最�是 HEAD,它指�你最�一次�交的结果。

添加和�交

你�以�出更改(把它们添加到暂存区),使用如下命令:
git add <filename>
git add *
这是 git 基本工作�程的第一步;使用如下命令以实际�交改动:
git commit -m "代��交信�"
现在,你的改动已��交到了 HEAD,但是还没到你的远端仓库。

推�改动

你的改动现在已�在本地仓库的 HEAD 中了。执行如下命令以将这些改动�交到远端仓库:
git push origin master
�以把 master ��你想�推�的任何分支。

如果你还没有克隆现有仓库,并欲将你的仓库连接到�个远程�务器,你�以使用如下命令添加:
git remote add origin <server>
如此你就能够将你的改动推�到所添加的�务器上去了。

分支

分支是用�将特性开��缘开�的。在你创建仓库的时候,master 是“默认的�分支。在其他分支上进行开�,完���将它们�并到主分支上。

创建一个��“feature_x�的分支,并切�过去:
git checkout -b feature_x
切�回主分支:
git checkout master
�把新建的分支删掉:
git branch -d feature_x
除�你将分支推�到远端仓库,�然该分支就是 �为他人所�的:
git push origin <branch>

更新与�并

�更新你的本地仓库至最新改动,执行:
git pull
以在你的工作目录中 获�(fetch) 并 �并(merge) 远端的改动。
��并其他分支到你的当�分支(例如 master),执行:
git merge <branch>
在这两�情况下,git 都会�试去自动�并改动。�憾的是,这�能并��次都�功,并�能出现冲�(conflicts)。 这时候就需�你修改这些文件�手动�并这些冲�(conflicts)。改完之�,你需�执行如下命令以将它们标记为�并�功:
git add <filename>
在�并改动之�,你�以使用如下命令预览差异:
git diff <source_branch> <target_branch>

标签

为软件�布创建标签是推�的。这个概念早已存在,在 SVN 中也有。你�以执行如下命令创建一个�� 1.0.0 的标签:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 是你想�标记的�交 ID 的� 10 �字符。�以使用下列命令获��交 ID:
git log
你也�以使用少一点的�交 ID �几�,��它的指�具有唯一性。

替�本地改动

�如你�作失误(当然,这最好永远���生),你�以使用如下命令替�掉本地改动:
git checkout -- <filename>
此命令会使用 HEAD 中的最新内容替�掉你的工作目录中的文件。已添加到暂存区的改动以�新文件都�会�到影�。

�如你想丢弃你在本地的所有改动与�交,�以到�务器上获�最新的版本历�,并将你本地主分支指�它:
git fetch origin
git reset --hard origin/master

实用�贴士

内建的图形化 git:
gitk
彩色的 git 输出:
git config color.ui true
显示历�记录时,�个�交的信��显示一行:
git config format.pretty oneline
交互�添加文件到暂存区:
git add -i

链接与资�

图形化客户端

指�和手册