标签: git-merge

iOS - 在故事板中管理代码合并的最佳实践

在xcode故事板中与许多团队成员合并会产生许多冲突等.我需要一个策略来与20个团队成员共享故事板,但要避免与在故事板中合并代码相关联的噩梦.

我想在xcode中为每个团队设置一个单独的目标,但这并不好,因为我们都需要更新所以有两个故事板并不是一个好习惯.

我的代码库是继承的.它是一个分叉的项目,故事板很重.我认为改用xib可能很难(??)

xcode storyboard git-merge ios uistoryboard

29
推荐指数
2
解决办法
2万
查看次数

在Git中合并两个远程存储库

我想在Git中合并两个远程存储库.

一个是主流存储库,我没有写入权限.我想跟踪它的主分支.

另一个由我们维护,我拥有完整的权利.

我想跟踪主流代码.同时,我们的修改将记录在我的远程存储库中.

我该怎么做呢?

git git-merge

28
推荐指数
1
解决办法
1万
查看次数

Git Merge Recursive Ours - 命令语法示例

使用递归策略进行git合并的正确格式是什么?(不要与git合并我们的策略混淆)

http://www.kernel.org/pub/software/scm/git/docs/git-merge.html

我尝试了很多方法,似乎没有用.

git merge foo -s recursive-ours  // doesn't work
git merge foo -s recursive ours // doesn't work
git merge foo -s recursive -ours // doesn't work
...
Run Code Online (Sandbox Code Playgroud)

git merge git-merge

28
推荐指数
1
解决办法
4797
查看次数

你如何检测git中的邪恶合并?

我已经创建了一个简单的git repo来说明我的问题,可以在GitHub上找到:https://github.com/smileyborg/EvilMerge

这是回购历史的例证:

master          A---B---D---E-----G-----I
                 \     /     \         /
another_branch    ----C       \       /
                               \     /
another_branch2                 F---H
Run Code Online (Sandbox Code Playgroud)

(在GitHub上的实际回购中,D4a48c9,I48349d.)

D是一个"简单"的邪恶合并,其中合并提交"正确"解决了合并冲突,但也产生了一个不相关的"邪恶"变化,这两个变化在父系统中都不存在.通过git show -c在此提交上使用,可以发现此合并的"邪恶"部分,因为输出包括++--(而不是单个+-)以指示父级中不存在的更改(请参阅上下文的答案).

I一种别样邪恶的合并,其中合并提交"正确"的解决合并冲突(从变化所引起F,以file.txt与变化相冲突G),也有"邪恶"丢弃到一个完全不同的文件中所做的更改file2.txt(有效撤消变化H).

你怎么知道这I是一个邪恶的合并?换句话说,您可以使用哪些命令来发现I不仅手动解决冲突,而且还无法合并应该具有的更改?

编辑/更新:什么是邪恶合并?

正如下面的RenéLink所指出的那样,很难(或许不可能)定义一套通用标准来识别"邪恶合并".然而,就像最高法院大法官斯图尔特所说的关于色情内容一样,当你看到邪恶的合并是你所知道的.

因此,或许更好的问题是:在合并提交中可以使用什么git命令来获得仅在合并提交本身中引入的所有新颖更改的diff输出.这种差异应包括:

  • 所有合并冲突解决方案(至少,如果决议涉及的事情比选择一个父母的变化比另一个更复杂)
  • 父母之间不存在的所有添加或删除(如中所示D)
  • 其中一个父项中存在的所有更改但合并提交丢弃(如中所示I)

这里的目标是能够让人类看看这个输出并知道合并是否成功或(意外或恶意)"邪恶",而 …

git git-merge

28
推荐指数
4
解决办法
2755
查看次数

git工作流:我可以阻止某个文件合并到另一个分支但仍保持在版本控制之下吗?

我有一个包含两个分支的存储库:live和stage.存储库包含基于Web的应用程序的代码.我想为舞台和现场分支维护两个不同的.htaccess文件,但仍然保持它们的版本控制,因为服务舞台网站的性质有点不同(例如,现在,我希望缓存定时不同).

我是git的新手,所以可能有一个简单的解释,但我想有一个工作流程,当我在现场和我拉变化(简单git merge stage)时,我没有覆盖现有的.htaccess在现场科.有没有办法配置这个?我在git中错过了一些重要的概念吗?

同样地,还有一大块(但可能很多).html文件,我想跟踪变化但不将它们合并回实时.为了清楚起见,我希望live和stage能够跟踪这些文件中的更改,但知道在进行合并时不要合并这些特定的更改.

git workflow git-merge

27
推荐指数
2
解决办法
1万
查看次数

git和append-mostly文件的策略

我的存储库中有一些文件是底层增长的:大多数更改都涉及在文件底部添加新行.这主要是语言和其他属性文件.

作为一个恼人的副作用,每当两个人同时添加时,我就会遇到合并冲突,并且解决方案总是涉及手动复制粘贴,以便包含来自两个版本的行.

是否有一个提示,技巧或方法可以减轻这个过程中的一些痛苦?

例如,一个简单的解决方案是告诉开发人员在文件中间的随机位置添加新行.这可能会奏效,但它涉及到有意识的努力,以及一个奇怪的历史.

git git-merge

26
推荐指数
2
解决办法
2168
查看次数

git merge,保持两者

对于合并,我用它来"保持我的"

git merge -X ours foo
Run Code Online (Sandbox Code Playgroud)

这是为了"保留他们的"

git merge -X theirs foo
Run Code Online (Sandbox Code Playgroud)

但是在我最近的合并中,最好保持双方.为了避免手动编辑文件,Git是否有"策略"?

git git-merge

26
推荐指数
2
解决办法
1万
查看次数

如何运行git rebase并忽略空格?

我有一个分支,我有一个提交只修改空格(尾随空格和前导空格).

我跑了git rebase master,git rebase --ignore-whitespace master并且在两种情况下我都与只改变空格的提交有合并冲突.

git git-merge

26
推荐指数
2
解决办法
8586
查看次数

Git冲突(重命名/重命名)

合并后分支我收到了conflict (rename/rename)一堆文件,用file~HEAD,并file~my_test_branch创建.如何解决这些问题?

谢谢

git git-merge merge-conflict-resolution

25
推荐指数
1
解决办法
2万
查看次数

我应该将master合并到一个分支中,然后合并回master吗?

我有以下分支:

  • master
  • test1,这是由 master
  • test2,也是由master.

我在test1分支上做了多次提交,而且,因为我创建了test1分支,所以我创建了多个提交master.

还有一些提交test2,我打算master稍后再合并.

眼下想到的是,我需要从我的变化master,如果可能的话,从test2test1.

我想知道我是否可以合并masterTEST1的,所以我从获得的提交mastertest,之后我完成我的功能test1,再合并,要master.那可能吗?或者会引发冲突?

是否有可能合并test2test1,然后合并test2成主,最后,合并test1master

请问Git是否知道某些提交已经合并到正在合并的分支中?

git branch git-merge

25
推荐指数
2
解决办法
7993
查看次数