2012-04-04 42 views
4

這是我的設置:我在家裏和大學工作,遠程存儲在線。所有3個位置都有三個分支,分別稱爲br1,br2和br3。沒什麼奇特的,每個工作站的每個分支都是一樣的。換句話說,在家裏的br1,在工作的br1和在遠程的br1都對應於同一個分支等。Git:從遠程拉扯

現在,當我試圖在家中拉br2時,我收到一條消息,說我必須指定哪個我需要合併分支。我知道發生了什麼以及如何糾正,但我無法弄清楚它爲什麼會發生。 git是否不與同名分支合併?我必須在配置文件中爲每個分支創建條目嗎?

在附註中,git rm --cached和git reset --mixed有什麼區別?

+0

如果您推送到遠程存儲庫,可能會怎樣。 – 2012-04-04 17:32:43

+0

您是否在家創建了br2並將它放到遠離家的地方? – aschmid00 2012-04-04 17:33:39

+0

@James git status報告我的工作目錄很乾淨,沒有什麼可推動的。它要求我使用git pull將遠程更改合併回原來的位置:/ – kshenoy 2012-04-04 17:35:29

回答

2

我認爲發生的事情是您在本地創建了分支並將其推送到遠程。
在這種情況下,本地分支沒有上游。

可以設定上游

git branch --set-upstream foo origin/foo 

-u

--set上游

對於每一個分支,它是最新的或成功地推,加 上游(跟蹤)引用,由無自變量git-pull(1)和 其他命令使用。有關更多信息,請參閱分支..合併到 git-config(1)。

+1

請注意'--set-upstream'需要合理的最新版本的git(看起來像1.7) 。另外,請注意,現在(後1.7.4?)在'push'期間有一個'--set-upstream'選項,也就是說,您可以同時創建並設置一個上游原點。 – torek 2012-04-04 18:51:18

+0

好的,但爲什麼你不會有最新的git版本? :) – aschmid00 2012-04-04 18:57:53

+0

你會想......在$ work中,我經常有石刀和熊皮,有些機器有Python 2.3。 – torek 2012-04-04 19:01:37

0

您不必手動編輯配置文件。我建議刪除分支並從頭開始查看跟蹤分支。要小心,所以你不要有需要推任何地方的變化:

git branch -D br2 
git checkout --track origin/br2 

如果您簽有--track推拉時,他們總是會設置適當的遠程分支機構。

+0

Magnus,我以同樣的方式解決了它。但我不明白爲什麼我首先要解決這個問題。 感謝您使用--track的提示。不知道:) – kshenoy 2012-04-04 17:51:11

+0

從一個420到另一個:p – ralphtheninja 2012-04-04 18:04:02

+0

@MagnusSkog與最新的git你不需要明確地跟蹤遠程分支。如果您簽出一個分支,它會自動跟蹤遠程分支。 – aschmid00 2012-04-04 18:36:05