原文链接:http://rogerdudler.github.com/git-guide/
git超简洁教程 ——只是初学者的简单教程,没有神马高深的。
安装
下载OSX平台的git:Download git for OSX
下载Windows平台的git:Download git for Windows
下载Linux平台的git:Download git for Linux
创建新分支
创建一个新目录,打开目录并执行
1
|
git init |
来创建一个新的资源库(repository)。
检出分支
通过以下命令创建一个本地资源库(local repository)的工作副本(working copy):
1
|
git clone /path/to/repository |
当使用远程服务器时,命令则为:
1
|
git clone username@host: /path/to/repository |
工作流程
你的本地分支包含三个由git维护的“树”,第一个是你的工作目录(Working Directory),它保存着实际的文件;第二个是索引(Index),它的行为像是一个临时区域;最后一个是头(HEAD),它指向你的最后一次提交。
添加和提交
你可以使用下面的命令执行更改(添加到索引Index):
1
2
|
git add <filename> git add * |
这只git基本工作流的第一步,想确实提交这些更改要使用:
1
|
git commit -m "Commit message" |
现在文件会被提交到头(HEAD),但是还没有到远程资源库(remote repository)中。
推入变更
你的更改现在在本地工作副本的头(HEAD)文件中,若想把更改发送到远程资源库,执行:
1
|
git push origin master |
master可以改为任何你想要推入文件的资源库的名字。
如果你还没有克隆(clone)任何已存在的资源库,并且希望本地资源库连接到远程服务器,你需要用下面命令添加:
1
|
git remote add origin <server> |
现在,你可以把你的更改推入选定的远程服务器了。
分支
分支(branch)是用来开发特性相互独立的部分,当创建一个资源库时,主(master)分支是默认的分支。可以使用其它分支进行开发,并在开发结束后合并到主分支。
创建一个名为“feature_x”的分支,并切换到该分支可以使用:
1
|
git checkout -b feature_x |
可以再切回到主分支:
1
|
git checkout master |
并且删除刚才创建的分支:
1
|
git branch -d feature_x |
如果你不把分支推入到远程资源库的话,别人是无法使用该分支的:
1
|
git push origin <branch> |
更新与合并
想要更新你的本地资源库到最新的提交,可以在你的本地资源库执行:
1
|
git pull |
来抓取(fetch)和合并(merge)远程的更改。
要想合并其它分支到你的当前分支(active branch),比如主分支,使用:
1
|
git merge <branch> |
在这两种情况下,git都会尝试自动合并更改。不幸的是,有时候这是不可能的,而且会导致冲突(conflicts)。这时你需要通过修改git所列出的文件来手动合并冲突,修改后,你需要将它们标记为已合并:
1
|
git add <filename> |
在合并更改之前,也可以通过下列命令进行预览:
1
|
git diff <source_branch> <target_branch> |
标签
我们最好为软件的版本创建标签(tag),这是已知的概念,在SVN中也存在。你可以通过执行下面的命令创建一个建一个名为1.0.0的新标签:
1
|
git tag 1.0.0 1b2e1d63ff |
这个1b2e1d63ff 代表了你希望标签所引用的提交id(commit id)的前10个字符,你可以通过:
1
|
git log |
来获取提交id,你也可以使用更少的字符作为提交id,只不过它必须是唯一的。
替换本地更改
万一你做错了什么(这肯定不会发生),你可以用下面的命令替换本地更改:
1
|
git checkout -- <filename> |
这会用头(HEAD)文件中最后的内容来替换本地工作树(working tree)中的更改。已经添加到索引中的更改以及新文件都会被保留。
反之,如果你想放弃所有本地的更改和提交,可以抓取服务器最新的历史并将本地的主分支指向它,像这样:
1
2
|
git fetch origin git reset --hard origin /master |
有用的提示
内置的git图形界面(GUI):
1
|
gitk |
使用彩色的git输出:
1
|
git config color.ui true |
以每次提交单独一行的格式显示日志:
1
|
git config format .pretty oneline |
使用交互的添加操作:
1
|
git add -i |
链接及资源
图形客户端
指南及手册
版权所有:https://diao.it
特别声明:除特别标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处