2011-12-28 116 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