Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并时(需要在纯git+;diff工具中检查的代码),如何(真正地)在来自其他分支的每一个更改的代码行上强制冲突?_Git_Git Merge Conflict - Fatal编程技术网

合并时(需要在纯git+;diff工具中检查的代码),如何(真正地)在来自其他分支的每一个更改的代码行上强制冲突?

合并时(需要在纯git+;diff工具中检查的代码),如何(真正地)在来自其他分支的每一个更改的代码行上强制冲突?,git,git-merge-conflict,Git,Git Merge Conflict,Ps.我不想执行三向差异。 在计算机编程中有不同的设置。并非每个人的工作都是devops、github、敏捷创业公司或一些规范的开源工作流的一部分,但仍然可以从事编程工作。 在我们的特定环境中,我们需要独立于git以外的其他工具积极参与每个贡献。 这就是说,一旦更改突出显示并可编辑,不需要像交互式登台这样的累积过程,就可以使用他们选择的本地工具来解决“冲突”(实际上是“适应更改”) 尽管有一些问题听起来与此类似,但没有一个问题,也没有一个问题的答案能够解决一般问题,这不仅对某些上下文中的代码有用

Ps.我不想执行三向差异。

在计算机编程中有不同的设置。并非每个人的工作都是devops、github、敏捷创业公司或一些规范的开源工作流的一部分,但仍然可以从事编程工作。 在我们的特定环境中,我们需要独立于git以外的其他工具积极参与每个贡献。 这就是说,一旦更改突出显示并可编辑,不需要像交互式登台这样的累积过程,就可以使用他们选择的本地工具来解决“冲突”(实际上是“适应更改”)

尽管有一些问题听起来与此类似,但没有一个问题,也没有一个问题的答案能够解决一般问题,这不仅对某些上下文中的代码有用,而且对代码文档或其他类型的版本文本特别重要

假设我们有两个分支
main
master
,在我的git版本中)和
friend
(或者
origin
,取决于每个特定的情况)。我希望能够接受、拒绝或编辑每个传入的更改,因为每个更改都可以是文本的审阅者,并且需要在不改变原始意图的情况下合并更改/建议。另一个例子是主管从学生处接收代码或以其他方式接收代码。需要明确的是,这并不是在一个更大的工作流环境中,比如GitHub、pull请求等。它只是纯git。好了,对于那些可能习惯于不同的风投日常使用方式的人来说,这就足够了

例如:

mkdir强制冲突
裁谈会部队冲突
git init。
echo-e“a\nb\nc\n”>file.txt
cat file.txt
#输出:
A.
B
C
git添加。
git提交-m“第一条消息”
模拟朋友的贡献:

git签出-b朋友
#输出:
切换到新的分支“朋友”
echo-e“d\n”>>file.txt
cat file.txt
#输出:
A.
B
C
D
git添加。
git提交-m“来自朋友的贡献”
好的,我的朋友贡献了。返回到我的代码(主代码或主代码)

git签出主机
#输出:
切换到“主”分支
…如果我希望传入的更改(例如,添加的最后一行)显示为冲突,则仅使用下一段中给出的解决方案是不够的。合并将自动包含它,而不会发出警报

其他类似问题(我再也找不到)的一些答案指出了git中的交互模式,但这是一个按顺序迭代所有更改的复杂过程,不能移植到其他工具/IDE(例如Intellij的合并实用程序或其他IDE/diff工具)。
其他人似乎忽略了单个分支上的更改。其他人只是将整个文件标记为冲突,但不在内部使用标记指定它们
我们从一个归零的分支(此处称为
以太
)重新创建两个分支(
friend
master
),因此每次更改都是冲突,有效地暂时取消3-diff算法使用的公共祖先。最终,正如预期的那样,只有外部贡献和我们的变化才会出现在历史上

git签出主机
#输出:
切换到“主”分支
git签出-b乙醚
#输出:
切换到新的分支“乙醚”
gitrm-r。
#输出:
rm“file.txt”
git commit-m“模拟一个空的公共祖先”
git签出-b主控从空
#输出:
切换到新的分支“主分支自空”
git签出主机。
git commit-m“将旧内容恢复为新内容”
吉特校验醚
git签出-b朋友从空
#输出:
切换到一个新分支“friend from empty”
git结帐朋友。
git commit-m“将朋友的内容恢复为ex nihilo”
git签出主机从空
#输出:
切换到分支“主控自空”
master from empty
friend from empty
接收到更改后,合并过程将导致预期的冲突:

git从空合并朋友
#输出:
自动合并文件.txt
冲突(添加/添加):在file.txt中合并冲突
自动合并失败;修复冲突,然后提交结果。
cat file.txt
#输出:
A.
B
C
>空中楼阁
我们可以根据自己的意愿编辑冲突

echo-e“a\nb\nc\n由我审核”>file.txt
cat file.txt
#输出:
A.
B
C
d由我审核
。。。承诺,然后回到大师那里

git添加。
git提交-m“接受/编辑更改”
切换到主分支
#输出:
切换到“主”分支
我们必须注意保存好友的提交,并在上面添加我们的更改

git merge-X他们的朋友#先保留他们的作者身份。
git签出主机从空恢复我的编辑。
git commit-m“编辑朋友的贡献”
cat file.txt
#输出:
A.
B
C
d由我审核
git日志
#输出:
提交bbb62c91c72d880d65e330f1812d0685df6ea211(主机->主机)
作者:xxx
日期:12月28日星期一11:39:05 2020-0300
“编辑朋友的贡献”
提交724e67e1dc5befe85ee8e4371cb5ef415c774b5a(朋友)
作者:xxx
日期:周一至十二月28日10:12:31 2020-0300
“朋友的贡献”
提交d06a87a4319d865ebbf352507021d74355a85d07
作者:xxx
日期:周一至十二月28日10:05:44 2020-0300
“第一条消息”
一些清理

git分支-D以太主机来自空朋友来自空
#输出:
已删除分支乙醚(为0e892f6)。
删除的分支桅杆