2013-02-24 96 views
0

2個Git克隆可以互相推/拉,而無需使用遠程跟蹤分支代表另一個分支?我知道他們大部分時間都非常有用,但我偶爾會想要在二次回購(不是我的裸機)之間進行拉/推,並且我不想讓事情混亂。 如果我不關心遠程追蹤分支,它可以被刪除或從未創建?在Git中,是否需要遠程跟蹤分支?

回答

2

如果你的意思是不是具有在遠程分支的本地分支軌跡變化:

你不必有你的分支追蹤遠程分支。這是一個方便,有幾個好處,你不會有;例如git status指出你的分支是x在原點之前提交。

未設置追蹤分支並不妨礙您使用遙控器。遙控器仍然可以用於所有命令而不是輸入URL。

要查看使用git branch -avv跟蹤哪些分支。任何正在跟蹤遠程分支的分支都會將遠程分支列出到提交哈希的左側。

我不知道如何從分支中刪除跟蹤,而不是刪除它並重新創建而不進行跟蹤。

如果你指的是遠程分支的本地副本(由git branch -r可見):

您可以git branch -dr <remote/branch>刪除這些 - 但它會在下一次拉或獲取它的時候回來。他們需要git fetch ...才能工作,而git pull ...需要使用git fetch ...。他們必須每次手動刪除 - 或腳本。

但是,它們不會爲存儲庫添加任何真正的混亂或開銷。遠程跟蹤分支在磁盤上只是一個帶有提交散列的文件。這些提交被保存在其他地方,據推測,既然你想取回他們,他們已經被合併或重組爲一個或多個本地分支機構。

該信息可以使用URL而不是遠程獲取。這不會創建一個記錄,除了FETCH_HEAD文件以外的任何地方。由於這個文件被每次讀取覆蓋,如果在執行另一次讀取之前沒有合併或重新綁定到本地分支,提交數據將會丟失。遠程追蹤分支在那裏保持獲取的數據被垃圾收集。

1

是的,您可以通過簡單地不添加遙控器輕鬆實現。

在回購之間推/拉的通常方式是git remote add NAME URL,但這只是一種方便(並且也是遠程跟蹤分支所必需的)。

而不是使用git pull REMOTE_NAME BRANCH,你可以只是git pull URL BRANCH和使用拉相同的方式。基本上,您可以在大多數git命令中將URL替換爲遠程名稱的回購。

+0

謝謝,這是一個非常有用的提示! – user826840 2013-02-25 09:23:08

2

遠程追蹤分支不是必需的。它們只是一個方便之處,(a)給予git推送和默認行爲,(b)接收有關本地分支狀態的信息,而不是git狀態輸出中的遠程分支狀態。你不需要使用Git。

我不想添亂的東西了

注意,設置遠程跟蹤分支完全不添亂的東西。它所做的只是將三行添加到本地存儲庫的配置文件中。它什麼都不做。在git status期間的所有附加信息僅在命令執行時生成;沒有任何東西被儲存或以其他方式混淆事物。因此,即使您不需要它,設置遠程跟蹤分支通常也不是問題。