22=== 遠端分支
33
44(((branches, remote)))(((references, remote)))
5- 遠端參照是位於遠端版本庫上的參照 ,包括分支、標籤等等 ;
5+ 遠端參照(references)是位於遠端版本庫上的參照 ,包括分支(branch)、標籤(tag)等等 ;
66你可以使用 `git ls-remote [remote]` 明確地列出遠端參照完整的列表,或者使用 `git remote show [remote]` 取得更多遠端分支資訊;
7- 然而,更好的方式是利用「遠端追蹤分支」。
7+ 然而,更好的方式是利用「遠端追蹤分支(remote-tracking branch) 」。
88
99遠端追蹤分支用來記錄遠端分支的狀態,
1010它們是無法移動的本地參照,但是會根據網路通訊的結果而自動移動;
1111它扮演著書籤的角色,用來提醒你上次與遠端通訊後那些遠端上的分支所在之處。
1212
1313它們採用 `(遠端)/(分支)` 這樣的形式,
1414例如,你想看上次與 `origin` 版本庫通訊後,它的 `master` 分支指向哪一個提交,你應該查看 `origin/master` 分支;
15- 如果你和同伴一起修正某個議題,而他先推送 `iss53` 分支到遠端版本庫;雖然在你的本地端可能也有一個 `iss53` 分支,但伺服器上的 `iss53` 分支會跟 `origin/iss53` 指向同一個提交。
15+ 如果你和同伴一起修正某個議題,而他先推送 `iss53` 分支到遠端版本庫;雖然在你的本地端可能也有一個 `iss53` 分支,但伺服器上的 `iss53` 分支會跟 `origin/iss53` 指向同一個提交(commit) 。
1616
1717可能有點令人困惑,所以讓我們直接舉例說明;
1818假設你的網路有一個 Git 伺服器位於 `git.ourcompany.com`,
@@ -30,14 +30,14 @@ Git 也會建立屬於你自己的 `master` 本地分支,同樣地,它也指
3030.克隆後,伺服器和本地端的版本庫
3131image::images/remote-branches-1.png[克隆後,伺服器和本地端的版本庫。]
3232
33- 如果你在本地分支 `master` 做了一些工作,與此同時,有人推送到 `git.ourcompany.com` 而更新了伺服器上的 `master` 分支,這會讓你的提交歷史朝著不同方向發展;
33+ 如果你在本地分支 `master` 做了一些工作,與此同時,有人推送(push)到 `git.ourcompany.com` 而更新了伺服器上的 `master` 分支,這會讓你的提交歷史朝著不同方向發展;
3434不過只要你不和伺服器連絡,你的 `origin/master` 指標並不會移動。
3535
3636.本地和遠端的歷史分離開來
3737image::images/remote-branches-2.png[本地和遠端的歷史分離開來。]
3838
3939執行 `git fetch origin` 可以同步遠端伺服器上的資料到本地,
40- 該命令首先尋找 `origin` 是哪個伺服器(本例是 `git.ourcompany.com`),從上面獲取你尚未擁有的資料 ,更新你本地的資料庫,然後把 `origin/master` 指標同步到最新的位置。
40+ 該命令首先尋找 `origin` 是哪個伺服器(本例是 `git.ourcompany.com`),從上面獲取(fetch)你尚未擁有的資料 ,更新你本地的資料庫,然後把 `origin/master` 指標同步到最新的位置。
4141
4242.`git fetch` 會更新你的遠端參照
4343image::images/remote-branches-3.png[`git fetch` 會更新你的遠端參照。]
@@ -62,7 +62,7 @@ image::images/remote-branches-5.png[遠端追蹤分支 `teamone/master`。]
6262(((pushing)))
6363當你想跟世界分享某個分支,你需要把它推送到一個你擁有寫入權限的遠端版本庫;
6464你的本地分支並不會自動同步到遠端上——你必需明確地推送你想分享的分支;
65- 透過這種方式,你可以將無意分享的分支保留下來做為私用分支,而只推送需要協同工作的主題分支 。
65+ 透過這種方式,你可以將無意分享的分支保留下來做為私用分支,而只推送需要協同工作的主題(topic)分支 。
6666
6767如果你有個叫做 `serverfix` 的分支需要和其他人一起開發,
6868執行 `git push <遠端> <分支>`:(((git commands, push)))
@@ -89,10 +89,10 @@ Git 會把 `serverfix` 分支名稱自動地擴展為 `refs/heads/serverfix:refs
8989[NOTE]
9090.不想每次都輸入密碼
9191====
92- 如果你正在使用 HTTPS URL 推送資料,Git 伺服器為了核對身份會詢問你的帳號和密碼 ;
92+ 如果你正在使用 HTTPS URL 推送資料,Git 伺服器為了核對身份(authentication)會詢問你的帳號和密碼 ;
9393預設情況它會在終端提示你輸入相關資訊,這樣伺服器才能分辨你是否有推送權限。
9494
95- 如果你不想每次推送時都輸入它們,你可以設置「證書快取」;
95+ 如果你不想每次推送時都輸入它們,你可以設置「證書快取(credential cache) 」;
9696最簡單的方式是執行 `git config --global credential.helper cache` 將它保留記憶體幾分鐘。
9797
9898詳見 <<_credential_caching>> 以取得各種可使用的、詳細的證書快取方式。
@@ -130,7 +130,7 @@ Switched to a new branch 'serverfix'
130130==== 追蹤分支
131131
132132(((branches, tracking)))(((branches, upstream)))
133- 從遠端追蹤分支身上檢出的本地分支會自動升級為「追蹤分支」(它所追蹤的分支則稱為「上游分支」),
133+ 從遠端追蹤分支身上檢出的本地分支會自動升級為「追蹤分支(tracking branch) 」(它所追蹤的分支則稱為「上游分支(upstream branch) 」),
134134追蹤分支是一種和某個遠端分支有直接聯繫的本地分支;
135135如果你切換到追蹤分支並執行 `git pull`,Git 會自動分辨要從哪一個伺服器獲取資料,然後自動辨別要合併哪一個分支進來(譯註:就是合併上游分支)。
136136
@@ -164,7 +164,7 @@ Branch sf set up to track remote branch serverfix from origin.
164164Switched to a new branch 'sf'
165165----
166166
167- 現在你的本地分支 `sf` 將會自動從 `origin/serverfix` 拉取資料 。
167+ 現在你的本地分支 `sf` 將會自動從 `origin/serverfix` 拉取(pull)資料 。
168168
169169如果你已經有一個本地分支,並且想要它追蹤一個你剛下載的遠端追蹤分支,或者想要改變追蹤上游分支,在任何時候都可以使用 `git branch` 的 `-u` 或 `--set-upstream-to` 選項來明確地設定。
170170
@@ -182,7 +182,7 @@ Branch serverfix set up to track remote branch serverfix from origin.
182182====
183183
184184如果你想知道你設定了哪些追蹤本支,你可以使用 `git branch` 的 `-vv` 選項;
185- 它以更詳盡的資訊列出本地分支,其中包括了它追蹤的分支為何,它們是超前、落後,或者二者都有!?
185+ 它以更詳盡的資訊列出本地分支,其中包括了它追蹤的分支為何,它們是超前(ahead) 、落後(behind) ,或者二者都有!?
186186
187187[source,console]
188188----
0 commit comments