2012-01-29 57 views
1

我有一個裸露的回購協議設置有如下分支:GIT取代分支的內容

dev 
*master 
stage 
prod 

我已經克隆了這一個工作副本併發出以下命令:

git checkout -b stage remotes/origin/stage 
git checkout -b dev remotes/origin/dev 

什麼我需要做的是將我的暫存分支的全部內容推送到我的開發分支。基本上,這是第一次設置,我開始將生產代碼推送到臨時分支(完美地工作),現在我將暫存代碼推入開發分支。

我遇到的問題是二進制文件的合併衝突。我該如何告訴git甚至不會看到合併衝突,而是直接將stage分支的內容複製到dev分支中?

回答

1

決定來解決它做到這一點最簡單的方法:

克隆回購兩次,第一次爲一個開發文件夾一旦進入一個階段的文件夾 然後

cd dev 
git rm -rf * 
git commit -a -m "take that n00b repo!" 
git push 
cp -r ../stage/* . 
git add * 
git commit -a -m "how you like dem apples??" 
git push 

不雅,但它得到了這份工作完成了,比處理git的合併衝突要少很多痛苦。

3

聽起來像--s ours選項merge是正確的,你需要的。

http://book.git-scm.com/5_advanced_branching_and_merging.html

+0

有趣的是,你可以通過遠程添加你從克隆的回購嗎?似乎不會被允許... – 2012-02-01 02:38:34

+0

@JohnZ唯一可以阻止它的是名稱衝突。不能有2個'origin'遙控器,但是有許多遙控器與'origin'al具有相同的URL。 – 2012-02-05 12:05:07

2

您有幾種選擇:

  1. 與 「我們的」 戰略
  2. 合併合併正常,然後用修改後的合併提交 'git的結帳HEAD^- '。
  3. 重置Dev分支,以點與分期「的git的復位 - 硬分期」
  4. 不要合併而只是承諾後,什麼是在分期「git的結帳分期 - 」。

選項1和3可能是最好的。你需要知道DAG(谷歌「計算機科學家的git」)。

我們使用這個工作流程:https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

它已經對我們非常好。