什么是实现以下工作流的首选方法与任何Git或Subversion (我在更多的利益Git版本,但比较肯定将是有益的):
假设我们最近发布了该产品的主要版本,并且有一个特定的polisihin分支release-2.0.x.
然后开发继续进行,并将几个功能分支合并到
master/trunk(它们将成为即将到来的部分release-2.1.x).
现在,在某些时候,另一个特征(即,critical-feature)被开发并合并回来master/trunk.我们意识到这个功能非常重要,我们必须将它向后移植release-2.0.x.
这是针对所述情况的小型伪图.请注意,顶部的所有内容都会导致release-2.0.x和当前之间的树差异master/trunk并导致合并问题(否则我可以简单地合并critical-feature并避免编写此问题:)
(features added since 2.0.x, which
should not be backported)
^ ^ ^
| | | (code refactorings done
| | | in master/trunk)
\ | / (*) (*) (*)
-------------------------------------------------------> master/trunk
| |
| |
| |
\ release-2.0.x \ critical-feature
(should be backported)
Run Code Online (Sandbox Code Playgroud)
从 …
推送到作为拉取请求主题的分支后,我收到消息
此拉取请求中未包含新提交。现在更新。
为什么我得到这个,而不是自动更新拉取请求?
这个拉取请求和我用 bitbucket 做的其他拉取请求之间的唯一区别是这个拉取请求涉及合并冲突,我已经解决了。这有作用吗?
我最近在Subversion中发现了一个非常奇怪的合并冲突.我正在使用陆龟SVN作为客户端.请查看以下有关主干和分行详情的信息:
意图:我们希望将整个流程自动化作为我们的Devops管道的一部分,其中功能(完全独立)可以从仪表板升级到不同的分支,这将合并与功能相关联的修订.在上面的情况下,特征X和特征Y是完全独立的(功能和代码文件也是如此).唯一的共同点是解决方案文件ClassLibrary.sln文件,其中添加了对这两个项目的引用.
Tortoise SVN应该自动发现修订版只是对2个不同提交的重新排序.所以我只是想知道一种方式(重新设计/预防性提交),以免这种冲突发生.如果他们应该发生那么我需要知道,虽然合并功能Y即ClassLibrary12,这将导致未来的冲突
我正处于变基中,我需要修复一些合并冲突。当我在 XCode 中打开文件时,我看到文件中的源代码控制冲突标记(<<<<<<< 等)。
如何使用 XCode 的合并工具以图形方式解决这些冲突?我正在寻找这个屏幕:
merge xcode merge-conflict-resolution git-merge-conflict xcode10
当我在之后手动编辑合并冲突时svn update,我在文件中发现了类似的内容:
<<<<<<< .mine\n act();\n||||||| .r328\n bid();\n=======\n cue();\n>>>>>>> .r329\nRun Code Online (Sandbox Code Playgroud)\n\n竖线(“ |||||||”)是什么意思?
在发布这个问题之前,我检查了在线书籍Version Control with Subversion、和 \xe2\x89\x8820 指南中有关手动合并冲突的部分,以解决与 SVN 的合并冲突(例如,\n 1、\n 2、\ n 3、\n 4、\n 5、6等)。搜索svn editconflict 竖线(带或不带引号)和其他术语没有返回任何有用的内容。我还直接搜索了 Stackoverflow(例如1、2、3等)。svn help merge
怎么这么难找\xe2\x80\xbd\xe2\x80\xbd\xe2\x80\xbd
\nCONFLICT (file location): path/to/tests/NS/Domain/Projects/Foo/Bar/stories/workspace-public-channel-SOME_UUID.json added in HEAD inside a directory that was renamed in <some hash> (Reorganize tests), suggesting it should perhaps be moved to path/to/tests/unit/NS/Projects/Foo/Bar/stories/workspace-public-channel-SOME_UUID.json.
Run Code Online (Sandbox Code Playgroud)
我检查了这条消息并确定该建议是正确的。
告诉 git 继续执行的确切咒语是什么?我担心,在这种特殊情况下,一般性建议可能不够,或者可能会把事情搞砸。"git add/rm <conflicted_files>", then run "git rebase --continue"
编辑以澄清:以下是git status具有此冲突类型的示例文件的显示内容:
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
...
...
deleted: old/path/to/some/file.spec.js
...
...
Run Code Online (Sandbox Code Playgroud)
稍后在相同的输出中git status:
Unmerged paths:
(use "git restore --staged <file>..." to unstage)
(use "git add <file>..." to …Run Code Online (Sandbox Code Playgroud) 我希望我能正确表达这一点......我在Bitbucket中有以下设置(使用Git协议).我有一个包含我的应用程序的主仓库.然后,我为每个客户端分叉主仓库,以便灵活地进行客户端特定的更改,而不会影响主服务器.当需要进行通用更改时,我会推送到master,然后与fork同步,然后进行生产.
我遇到的问题是,在Bitbucket,它说我有合并冲突,但我不知道如何解决它们.在当地,我没有冲突.当我进入Bitbucket时,它告诉我我在主仓库后面有2个提交,所以我点击同步.它说合并冲突,我需要解决它们.然后,我认为无法解决这些冲突.如果我对生产服务器进行了拉动,它会说存在冲突,我需要解决它们,所以我这样做了.我接受nano(因为我讨厌VIM)并清理我需要的东西,并开展我的业务.但分叉的回购似乎仍然存在冲突.我不知道为解决这种情况需要做些什么.无论如何,它让我处于停滞状态,因为在冲突得到解决之前,我不能再对fork进行任何更改.
我经常重新定义一个大型开源项目,并且存在合并冲突,我需要弄清楚谁进行了更改以及何时命令决定采取哪种更改.所以我通常做的是我去两个回购并查看文件并做一个git责备.是否有合并工具将在解决冲突期间提供此信息.我想知道是谁制作了这个变化以及每个版本的时间.现在我正在使用meld.
我想知道我们/他们的策略是否有任何樱桃采摘方式.换句话说,我想通过以下命令从dev分支中选择多个提交到主分支,
git cherry-pick HASH1 HASH2 HASH3 -n
Run Code Online (Sandbox Code Playgroud)
如果没有冲突,此命令应该接受所有引用的提交并准备未分级的更改.但是,如果发生冲突,我需要解决并继续挑选.对于所有冲突,我的意图是在开发中选择任何东西(这意味着--strategy-option = ours).
樱桃采摘时有没有办法提供这样的选择.
我们将GitLab.com用于我们的项目。我们正在将代码master从质量检查分支(qa)合并到发布分支()中。自一个月前发布最新版本以来,没有分支提交到master分支。
对于几个项目,自动合并在GitLab的UI中失败,我必须通过命令行手动完成操作,以通过GitLab的UI解决冲突。我不知道这是怎么发生的,因为没有任何可更改的master冲突。
qa --?--?--?--?--?--
\ \
master ----?-----------?--
Run Code Online (Sandbox Code Playgroud)
当我合并冲突时,qa无论如何(git merge -X theirs)我最终都会从分支中获取所有更改。它也不是所有文件(谢天谢地!),其中5个文件只有5-10个更改,而50个文件中有300个更改。
但是我只是不明白是什么引发了这些冲突。
注意:我确实压缩了qa合并时的所有提交master。现在,我认为这可能是问题的一部分。仍然不确定如何。