2011-12-28 26 views
0

可以說我有兩個分支做混帳原因損失文件?

  1. master發展

我有類似

index.php 
lib/something.php 
lib/importantbugfix.php (newer) 

develop我有類似

index.php 
lib/something.php 
lib/importantbugfix.php 
lib/config.php 

我想master上的importantbugfix.php到合併develop,我們該怎麼做?

,所以我有develop

index.php 
lib/something.php 
lib/importantbugfix.php (same newer) 
lib/config.php 

IM像

master

index.php 
lib/something.php 
lib/importantbugfix.php (newer) 

閱讀GIT中的文檔現在合併。恐怕,當我做了合併,將在develop

index.php 
lib/something.php 
lib/importantbugfix.php (newer) 
lib/config.php 

而不是上面不喜歡

master

index.php 
lib/something.php 

+1

去開發分支 問題'git的合併master'的 – 2011-12-28 16:38:31

+0

@SrinivasReddyThatiparthy將我的分支主文件消失了?我的意思是我的分支主人走了? – 2011-12-28 16:50:11

回答

1

不,合併不會取代;它結合 - 因此這個名字。

有幾種方法可以實現它。

最簡單的是:

git checkout develop 
git merge master 

這將創建一個合併提交。它會將您掌握的更改合併到您開發的更改上。如果你在這兩個地方改變了文件的相同部分,你將會遇到合併衝突,並且必須告訴git你想保留哪些改變。

另一種方法是:

git checkout develop 
git rebase master 

這會放鬆你的開發完成,因爲這是最後一次從創建/與主合併任何承諾,並與自該點上主所有新提交更新,基本上「追趕」與主人一起發展。然後,它將重播您在開發的提交之上的提交,其中包含來自主設備的現已更新的提交。有效地,它使得它看起來像你的開發分支是由主人今天創建的,然後你做出了針對特定開發的更改。

這樣做的結果是一個更清潔的歷史。需要注意的是,如果開發分支與其他人共享,並且上次分支/合併時的提交已被共享,則不應該這樣做。

0

如果開發人員不明白他們在做什麼,那麼Git合併會導致數據丟失。這發生在我昨天的(兩人)團隊中。我們在Windows上使用Git Gui進行合併。

鏈接文章中的場景二深入解釋了這種情況。如果您正在遭受痛苦,那麼您對我們的痛苦融合體驗感到很同情。

http://randyfay.com/content/avoiding-git-disasters-gory-story