Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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 如何重新设置已合并到主节点的分支的基础?_Git - Fatal编程技术网

Git 如何重新设置已合并到主节点的分支的基础?

Git 如何重新设置已合并到主节点的分支的基础?,git,Git,我跑了 git pull origin master 在我的开发分支中,将master合并到其中。现在 git rebase -i origin/master 表示存在不真实的合并冲突。传入更改是dev分支中的第一次提交(合并之前),而不是dev分支的当前情况 dev分支的当前情况和master没有任何冲突,因为master刚刚合并。问题是git认为存在合并冲突,因为它将master与旧版本的dev分支进行比较。i、 e.第一次提交,在这种情况下,也是在将主服务器合并到主服务器之前的提交

我跑了

git pull origin master 
在我的开发分支中,将master合并到其中。现在

git rebase -i origin/master
表示存在不真实的合并冲突。传入更改是dev分支中的第一次提交(合并之前),而不是dev分支的当前情况

dev分支的当前情况和master没有任何冲突,因为master刚刚合并。问题是git认为存在合并冲突,因为它将master与旧版本的dev分支进行比较。i、 e.第一次提交,在这种情况下,也是在将主服务器合并到主服务器之前的提交


那么应该怎么做呢?

如果您面临合并冲突,那么除非您解决了冲突,否则您将无法运行任何git操作,除非您解决了冲突。 如果您试图更改某些文件的远程/主版本也有一些更改,则会发生合并冲突 例如,您在abhi.text文件中有一些更改,而在master branch中abhi.text也有一些更改,这些更改不会被拉到本地 现在你做git pull…然后你就面临这个问题 解决方案-->>

在git拉之前,请尝试

吉特藏品

保存当前新更改的文件,然后执行以下操作

git pull

现在做->>>

git隐藏应用

获取隐藏的本地更改 然后您可能会面临冲突(内容):合并特定文件上的冲突,然后转到特定文件进行更改,如…您可能会以未经安排的方式获得远程更改和本地更改。因此,只需安排它,即可在远程更改后保留本地更改

现在做->>>


git提交和推送

作为一种一般规则,不应该在存在合并时进行重定基。有一些例外情况,如果您包含实际的提交图(例如,足够的
git日志--all--decoration--oneline--graph
输出)以及您想要的结果,可能有人可以回答这个更具体的变体。我理解。然而,我有8个小提交在我的分支,并希望有一个干净的历史。有一次,我通过创建一个新的分支并重新设置基址解决了这个问题。在解决了冲突之后,只有你才能运行命令,比如重新设置基址,或者我在问一个特定的问题。我不是问什么是合并冲突。在将主机合并到开发分支后,即使只是拉取主机并且所有合并冲突都已解决,重新基址仍然认为存在冲突。重新基址一次重新基址一个提交。合并冲突最终将通过合并解决,这并不重要,现在还必须解决单个提交。这是重定基址和合并之间的主要区别之一,通过合并,您可以一次性解决所有合并冲突(甚至可能没有),而通过重定基址,所有单个提交都必须符合目标,并且每个提交都可能有合并冲突。谢谢@LasseV.Karlsen!现在我明白了。那么,如果我重新设置了基准,而不是更早地合并,以解决我的开发分支中的冲突呢?在合并到master之前,在几次提交后再次重定基础?我不知道这将如何工作,很可能您将不得不经历相同的冲突