我有一个git仓库,有2个分支:master和test。

主分支和测试分支之间存在差异。

两个分支都提交了所有更改。

如果我这样做:

git checkout master
git diff test

屏幕上会出现一个充满变化的屏幕,显示不同之处。我想合并测试分支中的更改,这样做:

git merge test

但是得到的信息是"Already - updated "

但是,检查每个不同分支下的文件可以清楚地显示出差异。

这里的问题是什么,我如何解决它?


当前回答

使用Git Bash面对这个场景。

我们的存储库有多个分支,每个分支都有不同的提交周期,合并偶尔会发生一次。 Old_Branch被用作New_Branch的父类

Old_Branch更新了一些更改,需要与New_Branch合并

正在使用下面的拉命令,没有任何分支,从所有分支获得所有来源。

Git拉源

奇怪的是,这并没有从所有分支中拉出所有的提交。曾经认为它正如所示显示几乎所有的分支和标签。

所以要解决这个问题,已经检查出Old_Branch拉了最新的使用

git checkout Old_Branch git拉原点Old_Branch

现在查看New_Branch

git checkout New_Branch

拉了一下,确认一下

git拉原点New_Branch git合并Old_Branch

viola得到了从Old_Branch到New_Branch的冲突来修复:),这是预期的

其他回答

这对我来说很有效。假设你有一个branch1,你想把它合并到branch2。

你打开git命令行,进入branch2的根文件夹,输入:

git checkout branch1
git pull branch1
git checkout branch2
git merge branch1
git push

如果你有冲突,在git推送之前解决它们。

发生在我身上并被发送到这个页面,不确定我是否有相同的场景,但我的是我试图“重新合并”“测试”分支。

所以我之前合并了它,但我故意在合并过程中排除了一些特定的更改,所以它在分支之间显然有一些差异。然后,我试图重新合并它,因为我意识到/忘记我应该添加一个特定的更改/文件,我之前已经排除了,我希望如果我再次进行合并,将显示我之前排除的所有更改,但我错了,我得到了“已经更新”的消息。

在阅读@Bombe的评论/回答后,他是对的,我认为git是这样做的,所以我所做的是在测试分支上对文件进行硬备份,然后签出主分支,手动将文件粘贴到其中,并提交它,就像它是新的更改一样。

我不确定这是否是正确的方法,或者是否可以帮助其他有同样问题的人,但它确实为我的特殊情况提供了解决方案。

Git merge origin/master而不是Git merge master为我工作。所以要合并master到feature分支,你可以使用:

git checkout feature_branch
git merge origin/master

使用Git Bash面对这个场景。

我们的存储库有多个分支,每个分支都有不同的提交周期,合并偶尔会发生一次。 Old_Branch被用作New_Branch的父类

Old_Branch更新了一些更改,需要与New_Branch合并

正在使用下面的拉命令,没有任何分支,从所有分支获得所有来源。

Git拉源

奇怪的是,这并没有从所有分支中拉出所有的提交。曾经认为它正如所示显示几乎所有的分支和标签。

所以要解决这个问题,已经检查出Old_Branch拉了最新的使用

git checkout Old_Branch git拉原点Old_Branch

现在查看New_Branch

git checkout New_Branch

拉了一下,确认一下

git拉原点New_Branch git合并Old_Branch

viola得到了从Old_Branch到New_Branch的冲突来修复:),这是预期的

我已经修复了这样的问题,重新基于当前的分支本身。