1
0

Changed 您 to 你

do not use the honorific version of `you' in chinese.
indeed that was weird...
This commit is contained in:
dotnil
2012-11-29 19:29:33 +08:00
parent 0fd9c64462
commit b7cefc43bf
6 changed files with 141 additions and 141 deletions

View File

@@ -11,19 +11,19 @@ layout: zh_reference
</h2>
<div class="block">
<p>
Git 并不像 Subversion 那样有个中心服务器。目前为止所有的命令都是本地执行的,更新的知识本地的数据库。要通过 Git 与其他开发者合作,需要将数据放到一台其他开发者能够连接的服务器上。Git 实现此流程的方式是将的数据与另一个仓库同步。在服务器与客户端之间并没有实质的区别 —— Git 仓库就是 Git 仓库,可以很容易地在两者之间同步。
Git 并不像 Subversion 那样有个中心服务器。目前为止所有的命令都是本地执行的,更新的知识本地的数据库。要通过 Git 与其他开发者合作,需要将数据放到一台其他开发者能够连接的服务器上。Git 实现此流程的方式是将的数据与另一个仓库同步。在服务器与客户端之间并没有实质的区别 —— Git 仓库就是 Git 仓库,可以很容易地在两者之间同步。
</p>
<p>
一旦有了个 Git 仓库,不管它是在自己的服务器上,或者是由 GitHub 之类的地方提供,都可以告诉 Git 推送拥有的远端仓库还没有的数据,或者叫 Git 从别的仓库把差别取过来。
一旦有了个 Git 仓库,不管它是在自己的服务器上,或者是由 GitHub 之类的地方提供,都可以告诉 Git 推送拥有的远端仓库还没有的数据,或者叫 Git 从别的仓库把差别取过来。
</p>
<p>
联网的时候可以随时做这个,它并不需要对应一个 <code>commit</code> 或者别的什么。一般会本地提交几次,然后从的项目克隆自的线上的共享仓库提取数据以保持最新,将新完成的合并到完成的工作中去,然后推送的改动会服务器。
联网的时候可以随时做这个,它并不需要对应一个 <code>commit</code> 或者别的什么。一般会本地提交几次,然后从的项目克隆自的线上的共享仓库提取数据以保持最新,将新完成的合并到完成的工作中去,然后推送的改动会服务器。
</p>
<p class="nutshell">
<b>一言以蔽之</b> 使用 <code>git fetch</code> 更新的项目,使用 <code>git push</code> 分享的改动。可以用 <code>git remote</code> 管理的远程仓库。
<b>一言以蔽之</b> 使用 <code>git fetch</code> 更新的项目,使用 <code>git push</code> 分享的改动。可以用 <code>git remote</code> 管理的远程仓库。
</p>
</div>
</div>
@@ -40,11 +40,11 @@ layout: zh_reference
<div class="block">
<p>不像中心化的版本控制系统客户端与服务端很不一样Git 仓库基本上都是一致的,并且并可以同步他们。这使得拥有多个远端仓库变得容易 —— 可以可以拥有一些只读的仓库,另外的一些也可写的仓库。
<p>不像中心化的版本控制系统客户端与服务端很不一样Git 仓库基本上都是一致的,并且并可以同步他们。这使得拥有多个远端仓库变得容易 —— 可以可以拥有一些只读的仓库,另外的一些也可写的仓库。
</p>
<p>
需要与远端仓库同步的时候不需要使用它详细的链接。Git 储存了感兴趣的远端仓库的链接的别名或者昵称。可以使用 <code>git remote</code> 命令管理这个远端仓库列表。
需要与远端仓库同步的时候不需要使用它详细的链接。Git 储存了感兴趣的远端仓库的链接的别名或者昵称。可以使用 <code>git remote</code> 命令管理这个远端仓库列表。
</p>
<h4>
@@ -53,7 +53,7 @@ layout: zh_reference
</h4>
<p>
如果没有任何参数Git 会列出它存储的远端仓库别名了事。默认情况下,如果的项目是克隆的与本地创建一个新的相反Git 会自动将的项目克隆自的仓库添加到列表中并取名“origin”。如果执行时加上 <code>-v</code> 参数,还可以看到每个别名的实际链接地址。
如果没有任何参数Git 会列出它存储的远端仓库别名了事。默认情况下,如果的项目是克隆的与本地创建一个新的相反Git 会自动将的项目克隆自的仓库添加到列表中并取名“origin”。如果执行时加上 <code>-v</code> 参数,还可以看到每个别名的实际链接地址。
</p>
<pre>
@@ -64,20 +64,20 @@ origin git@github.com:schacon/git-reference.git (fetch)
origin git@github.com:schacon/git-reference.git (push)
</pre>
<p>在此看到了该链接两次,是因为 Git 允许为每个远端仓库添加不同的推送与获取的链接,以备读写时希望使用不同的协议。
</p>
<p>在此看到了该链接两次,是因为 Git 允许为每个远端仓库添加不同的推送与获取的链接,以备读写时希望使用不同的协议。
</p>
<h4>
git remote add
<small>的项目添加一个新的远端仓库</small>
<small>的项目添加一个新的远端仓库</small>
</h4>
<p>
如果希望分享一个本地创建的仓库,或者想要获取别人的仓库中的贡献 —— 如果想要以任何方式与一个新仓库沟通,最简单的方式通常就是把它添加为一个远端仓库。执行 <code>git remote add [alias] [url]</code> 就可以。此命令将 <code>[url]</code><code>[alias]</code> 的别名添加为本地的远端仓库。
如果希望分享一个本地创建的仓库,或者想要获取别人的仓库中的贡献 —— 如果想要以任何方式与一个新仓库沟通,最简单的方式通常就是把它添加为一个远端仓库。执行 <code>git remote add [alias] [url]</code> 就可以。此命令将 <code>[url]</code><code>[alias]</code> 的别名添加为本地的远端仓库。
</p>
<p>
例如,假设我们想要与整个世界分享我们的 Hello World 程序。我们可以在一台服务器上创建一个新仓库(我以 GitHub 为例子)。它应该会给一个链接在这里就是“git@github.com:schacon/hw.git”。要把它添加到我们的项目以便我们推送以及获取更新我们可以这样
例如,假设我们想要与整个世界分享我们的 Hello World 程序。我们可以在一台服务器上创建一个新仓库(我以 GitHub 为例子)。它应该会给一个链接在这里就是“git@github.com:schacon/hw.git”。要把它添加到我们的项目以便我们推送以及获取更新我们可以这样
</p>
<pre>
@@ -98,7 +98,7 @@ github git@github.com:schacon/hw.git (push)
</h4>
<p>
Git addeth and Git taketh away. 如果需要删除一个远端 —— 不再需要它了、项目已经没了,等等 —— 可以使用 <code>git remote rm [alias]</code> 把它删掉。
Git addeth and Git taketh away. 如果需要删除一个远端 —— 不再需要它了、项目已经没了,等等 —— 可以使用 <code>git remote rm [alias]</code> 把它删掉。
</p>
<pre>
@@ -118,7 +118,7 @@ github git@github.com:schacon/hw.git (push)
</pre>
<p class="nutshell">
<b>一言以蔽之</b> 可以用 <code>git remote</code> 列出的远端仓库和那些仓库的链接。可以使用 <code>git remote add</code> 添加新的远端仓库,用 <code>git remote rm</code> 删掉已存在的那些。
<b>一言以蔽之</b> 可以用 <code>git remote</code> 列出的远端仓库和那些仓库的链接。可以使用 <code>git remote add</code> 添加新的远端仓库,用 <code>git remote rm</code> 删掉已存在的那些。
</p>
</div>
@@ -148,15 +148,15 @@ github git@github.com:schacon/hw.git (push)
<div class="block">
<p>
Git 有两个命令用来从某一远端仓库更新。<code>git fetch</code> 会使与另一仓库同步,提取本地所没有的数据,为在同步时的该远端的每一分支提供书签。这些分支被叫做“远端分支”,除了 Git 不允许检出(切换到该分支)之外,跟本地分支没区别 —— 可以将它们合并到当前分支,与其他分支作比较差异,查看那些分支的历史日志,等等。同步之后就可以在本地操作这些。
Git 有两个命令用来从某一远端仓库更新。<code>git fetch</code> 会使与另一仓库同步,提取本地所没有的数据,为在同步时的该远端的每一分支提供书签。这些分支被叫做“远端分支”,除了 Git 不允许检出(切换到该分支)之外,跟本地分支没区别 —— 可以将它们合并到当前分支,与其他分支作比较差异,查看那些分支的历史日志,等等。同步之后就可以在本地操作这些。
</p>
<p>
第二个会从远端服务器提取新数据的命令是 <code>git pull</code>。基本上,该命令就是在 <code>git fetch</code> 之后紧接着 <code>git merge</code> 远端分支到所在的任意分支。我个人不太喜欢这命令 —— 我更喜欢 <code>fetch</code><code>merge</code> 分开来做。少点魔法,少点问题。不过,如果喜欢这主意,可以看一下 <code>git pull</code><a target="new" href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">官方文档</a>
第二个会从远端服务器提取新数据的命令是 <code>git pull</code>。基本上,该命令就是在 <code>git fetch</code> 之后紧接着 <code>git merge</code> 远端分支到所在的任意分支。我个人不太喜欢这命令 —— 我更喜欢 <code>fetch</code><code>merge</code> 分开来做。少点魔法,少点问题。不过,如果喜欢这主意,可以看一下 <code>git pull</code><a target="new" href="http://www.kernel.org/pub/software/scm/git/docs/git-pull.html">官方文档</a>
</p>
<p>
假设配置好了一个远端,并且想要提取更新,可以首先执行 <code>git fetch [alias]</code> 告诉 Git 去获取它有没有的数据,然后可以执行 <code>git merge [alias]/[branch]</code> 以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到的当前分支。那么,如果我是与两三个其他人合作 Hello World 项目,并且想要将我最近连接之后的所有改动拿过来,我可以这么做:
假设配置好了一个远端,并且想要提取更新,可以首先执行 <code>git fetch [alias]</code> 告诉 Git 去获取它有没有的数据,然后可以执行 <code>git merge [alias]/[branch]</code> 以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到的当前分支。那么,如果我是与两三个其他人合作 Hello World 项目,并且想要将我最近连接之后的所有改动拿过来,我可以这么做:
</p>
<pre>
@@ -178,15 +178,15 @@ From github.com:schacon/hw
可以看到自从上一次与远端仓库同步以后又新赠或更新了五个分支。“ada”与“lisp”分支是新的而“master”、“clang”与“java”分支则被更新了。在此例中我的团队在合并入主分支之前将提议的更新推送到远端分支以审核。
</p>
<p>可以看到 Git 做的映射。远端仓库的主分支成为了本地的一个叫做“github/master”的分支。这样我就可以执行 <code>git merge github/master</code> 将远端的主分支和并入我的本地主分支。或者,我可以 <code>git log github/master ^master</code> 看看该分支上的新提交。如果的远端仓库叫做“origin”那远端主分支就会叫做 <code>origin/master</code>。几乎所有能在本地分支上执行的命令都可以在远端分支上用。
<p>可以看到 Git 做的映射。远端仓库的主分支成为了本地的一个叫做“github/master”的分支。这样我就可以执行 <code>git merge github/master</code> 将远端的主分支和并入我的本地主分支。或者,我可以 <code>git log github/master ^master</code> 看看该分支上的新提交。如果的远端仓库叫做“origin”那远端主分支就会叫做 <code>origin/master</code>。几乎所有能在本地分支上执行的命令都可以在远端分支上用。
</p>
<p>
如果有多个远端仓库,可以执行 <code>git fetch [alias]</code> 提取特定的远端仓库,或者执行 <code>git fetch --all</code> 告诉 Git 同步所有的远端仓库。
如果有多个远端仓库,可以执行 <code>git fetch [alias]</code> 提取特定的远端仓库,或者执行 <code>git fetch --all</code> 告诉 Git 同步所有的远端仓库。
</p>
<p class="nutshell">
<b>一言以蔽之</b> 执行 <code>git fetch [alias]</code> 来将的仓库与远端仓库同步,提取所有它独有的数据到本地分支以合并或者怎样。
<b>一言以蔽之</b> 执行 <code>git fetch [alias]</code> 来将的仓库与远端仓库同步,提取所有它独有的数据到本地分支以合并或者怎样。
</p>
</div>
@@ -200,12 +200,12 @@ From github.com:schacon/hw
<a target="new" href="http://progit.org/book/ch2-5.html#pushing_to_your_remotes"></a>
</span>
<a name="push">git push</a>
<span class="desc">推送的新分支与数据到某个远端仓库</span>
<span class="desc">推送的新分支与数据到某个远端仓库</span>
</h2>
<div class="block">
<p>
想要与他人分享牛鼻的提交,需要将改动推送到远端仓库。执行 <code>git push [alias] [branch]</code>,就会将的 [branch] 分支推送成为 [alias] 远端上的 [branch] 分支。让我们试试推送我们的主分支到先前添加的“github”远端仓库上去。
想要与他人分享牛鼻的提交,需要将改动推送到远端仓库。执行 <code>git push [alias] [branch]</code>,就会将的 [branch] 分支推送成为 [alias] 远端上的 [branch] 分支。让我们试试推送我们的主分支到先前添加的“github”远端仓库上去。
</p>
<pre>
@@ -224,7 +224,7 @@ To git@github.com:schacon/hw.git
</p>
<p>
如果有个像之前创建的“erlang”分支那样的主题分支想只分享这个该怎么办呢可以相应的只推送该分支。
如果有个像之前创建的“erlang”分支那样的主题分支想只分享这个该怎么办呢可以相应的只推送该分支。
</p>
<pre>
@@ -239,15 +239,15 @@ To git@github.com:schacon/hw.git
</pre>
<p>
现在当人们从该仓库克隆时他们就会得到一个“erlang”分支以查阅、合并。用这种方式可以推送任何分支到任何有写权限的仓库。如果的分支已经在该仓库中了它会试着去更新如果它不再Git 会把它加上。
现在当人们从该仓库克隆时他们就会得到一个“erlang”分支以查阅、合并。用这种方式可以推送任何分支到任何有写权限的仓库。如果的分支已经在该仓库中了它会试着去更新如果它不再Git 会把它加上。
</p>
<p>
最后一个当推送到远端分支时会碰到的主要问题是,其他人在此期间也推送了的情况。如果和另一个开发者同时克隆了,又都有提交,那么当她推送后也想推送时,默认情况下 Git 不会让覆盖她的改动。相反的,它会在试图推送的分支上执行 <code>git log</code>,确定它能够在的推送分支的历史记录中看到服务器分支的当前进度。如果它在在的历史记录中看不到,它就会下结论说过时了,并打回的推送。需要正式提取、合并,然后再次推送 —— 以确定把她的改动也考虑在内了。
最后一个当推送到远端分支时会碰到的主要问题是,其他人在此期间也推送了的情况。如果和另一个开发者同时克隆了,又都有提交,那么当她推送后也想推送时,默认情况下 Git 不会让覆盖她的改动。相反的,它会在试图推送的分支上执行 <code>git log</code>,确定它能够在的推送分支的历史记录中看到服务器分支的当前进度。如果它在在的历史记录中看不到,它就会下结论说过时了,并打回的推送。需要正式提取、合并,然后再次推送 —— 以确定把她的改动也考虑在内了。
</p>
<p>
试图推送到某个以被更新的远端分支时,会出现下面这种情况:
试图推送到某个以被更新的远端分支时,会出现下面这种情况:
</p>
<pre>
@@ -261,11 +261,11 @@ fast-forwards' section of 'git push --help' for details.
</pre>
<p>
可以修正这个问题。执行 <code>git fetch github; git merge github/master</code>,然后再推送
可以修正这个问题。执行 <code>git fetch github; git merge github/master</code>,然后再推送
</p>
<p class="nutshell">
<b>一言以蔽之</b> 执行 <code>git push [alias] [branch]</code>的本地改动推送到远端仓库。如果可以的话,它会依据的 [branch] 的样子,推送到远端的 [branch] 去。如果在上次提取、合并之后另有人推送了Git 服务器会拒绝的推送,知道是最新的为止。
<b>一言以蔽之</b> 执行 <code>git push [alias] [branch]</code>的本地改动推送到远端仓库。如果可以的话,它会依据的 [branch] 的样子,推送到远端的 [branch] 去。如果在上次提取、合并之后另有人推送了Git 服务器会拒绝的推送,知道是最新的为止。
</p>
</div>