Skip to content

Commit

Permalink
Update protocols.asc
Browse files Browse the repository at this point in the history
  • Loading branch information
8loser committed Feb 22, 2015
1 parent 9b28d5d commit 5a6d2b0
Showing 1 changed file with 17 additions and 18 deletions.
35 changes: 17 additions & 18 deletions book/04-git-server/sections/protocols.asc
Original file line number Diff line number Diff line change
@@ -1,39 +1,38 @@
=== 協議
=== 协议

Git 可以使用四種主要的協議來傳輸資料:本地協議(Local),HTTP 協議,SSH(Secure Shell)協議及 Git 協議
在此,我們將會討論那些協議及哪些情形應該使用(或避免使用)他們
Git 可以使用四种主要的协议来传输资料:本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git 协议
在此,我们将会讨论那些协议及哪些情形应该使用(或避免使用)他们

==== 本地協議
==== 本地协议

(((protocols, local)))
最基本的就是 _本地協議(Local protocol)_ ,其中的遠程倉庫就是硬盤內的另一個目錄
這常使用於如您團隊中的每一個人擁有共用文件系統的訪問權例如一個掛載的 NFS,或是如多人共用同一臺電腦的少見情況
後者並不理想,因為所有您的代碼倉庫如長存於同一臺電腦,更可能發生災難性的損失
最基本的就是 _本地协议(Local protocol)_ ,其中的远程仓库就是硬盘内的另一个目录
这常使用于如您团队中的每一个人拥有共用文件系统的访问权例如一个挂载的 NFS,或是如多人共用同一台电脑的少见情况
后者并不理想,因为所有您的代码仓库如长存于同一台电脑,更可能发生灾难性的损失

如果您有使用共用的文件系統,您就可以從本地倉庫克隆(clone)、推送(push)以及拉取(pull)。
像這樣去克隆一個倉庫或者增加一個遠程到現有的專案中,使用倉庫路徑作為 URL。
例如,克隆一個本地倉庫,您可以執行如下
如果您有使用共用的文件系统,您就可以从本地仓库克隆(clone)、推送(push)以及拉取(pull)。
像这样去克隆一个仓库或者增加一个远程到现有的专案中,使用仓库路径作为 URL。
例如,克隆一个本地仓库,您可以执行如下

[source,console]
----
$ git clone /opt/git/project.git
----

Or you can do this:
或您可以执行这样:

[source,console]
----
$ git clone file:///opt/git/project.git
----

Git operates slightly differently if you explicitly specify `file://` at the beginning of the URL.
If you just specify the path, Git tries to use hardlinks or directly copy the files it needs.
If you specify `file://`, Git fires up the processes that it normally uses to transfer data over a network which is generally a lot less efficient method of transferring the data.
The main reason to specify the `file://` prefix is if you want a clean copy of the repository with extraneous references or objects left out – generally after an import from another version-control system or something similar (see <<_git_internals>> for maintenance tasks).
We'll use the normal path here because doing so is almost always faster.

To add a local repository to an existing Git project, you can run something like this:
如果您明确的指定 `file://` 于 URL 的开头,那么 Git 的运行会略为不同。
如果您仅是指定路径,Git 会尝试使用硬连结或直接复制所需要的档。
如果您指定 `file://`,Git 会触发平时用于网路传输资料的进程,那是在资料传输上效率通常较低的方法。
指定 `file://` 前置码的主要原因是当您想要一个无相关参考或忽略物件的干净仓库副本的时候 – 通常是在从其他版本控制系统导入后或一些类似情况(参见 <<_git_internals>> for maintenance tasks)。
在此我们将使用普通路径,因为这样通常更快。

要增加一个本地仓库到现有的Git项目,您可以执行如:
[source,console]
----
$ git remote add local_proj /opt/git/project.git
Expand Down

0 comments on commit 5a6d2b0

Please sign in to comment.