2011-03-22 176 views
1

我想知道分支機構的正確工作流程是什麼,並從主機中拉出來。git分支工作流程

我創建了一個分支,並且對它們進行了修改。在主人我已經做了一些錯誤修復,我需要在我的分支。當我試圖拉我的IDE警告我,我的分支中的變化將被覆蓋,我應該首先承諾,但是我不在我應該承諾的地步。

對於需要從主服務器進行修改的分支機構,分支機構的正確工作流程是什麼?

回答

3

如果您想將更改拉入「髒」樹,您可以簡單地git stash並完成您的git merge ...。完成後,您可以使用git stash pop恢復您的更改。

+0

因此,我必須提交或隱藏所有更改,然後再從主服務器上進行拉取操作? – 2011-03-22 23:55:35

+0

@Jamie Taniguchi:沒錯,在做合併之前,你需要有一個「乾淨的」工作樹。 – 2011-03-23 00:04:10

+0

好吧,清除它,感謝您的輸入,我對此有點困惑。 – 2011-03-23 00:10:09

1

我想澄清一些事情:在git的術語

  1. 首先「拉」只適用時要合併來自遠程分支更改您當地的分行,但不是你的地方分支機構之間。如果是地方分支機構,則將合併或重新分配。

  2. 如果您的主分支有一些錯誤修正和一些開發分支(我現在正在談論本地分支),您正在開發一些新功能,那麼似乎主分支是開發分支的上游。因此,爲了在您的開發分支中將歷史記錄保存爲一條直線,並且在將來我將推薦使用rebase而不是merge來將開發分支快速合併到master分支中。

I.e.而不是:

git checkout dev 
git merge master 

你會做

git checkout dev 
git rebase (-i) master 

參數 「-i」 是可選的 - 觸發互動變基。當然,這也應該在乾淨的工作目錄上執行。關鍵是,儘管如此,你不必長時間保持工作目錄髒,不必積累變化。您可以輕鬆地提交更改爲小單臺望目到本地分支,然後清除them'up上使用交互式衍合

git rebase docs後:

假設以下的歷史存在 和當前分支「主題」:

 A---B---C topic 
    /
D---E---F---G master 

從這一點來說,任以下命令的結果:

git rebase master 
git rebase master topic 

將是:

   A'--B'--C' topic 
      /
D---E---F---G master 

注:後一種形式只是 GIT中結帳主題隨後GIT中 底墊主的短手。當底座退出主題 將保持退出分支。