我有一个git仓库,有2个分支:master和test。
主分支和测试分支之间存在差异。
两个分支都提交了所有更改。
如果我这样做:
git checkout master
git diff test
屏幕上会出现一个充满变化的屏幕,显示不同之处。我想合并测试分支中的更改,这样做:
git merge test
但是得到的信息是"Already - updated "
但是,检查每个不同分支下的文件可以清楚地显示出差异。
这里的问题是什么,我如何解决它?
我有一个git仓库,有2个分支:master和test。
主分支和测试分支之间存在差异。
两个分支都提交了所有更改。
如果我这样做:
git checkout master
git diff test
屏幕上会出现一个充满变化的屏幕,显示不同之处。我想合并测试分支中的更改,这样做:
git merge test
但是得到的信息是"Already - updated "
但是,检查每个不同分支下的文件可以清楚地显示出差异。
这里的问题是什么,我如何解决它?
当前回答
下面是从另一个分支获得更改的方法,而不考虑合并历史(注意:这会清除工作树,所以git在尝试之前会隐藏或提交更改)
// stash changes to ensure you don't lose any edits
git checkout your-branch-that-won't-simply-merge
git stash
git checkout branch-with-changes -- .
——。参数将检出其他分支的所有文件,同时仍检出到同一分支。然后您可以按照自己的意愿添加和提交。
我还将它与 Git add -p 这将使你能够在“大块头”中进行任何变化。它会询问y/n您是否想要执行任何更改过的行块,这意味着您可以在下次提交时保留不想要的更改。
这是我找到的原始答案的链接,去点赞吧。: https://stackoverflow.com/a/15536640/8272035
89年问题 通过提供当前路径,.:
Git签出other-branch-name——。
此操作类似于在不签出文件的情况下将HEAD切换到另一个分支,但只是从“另一个方向”切换。
正如@김민준提到的,这将覆盖任何未提交的更改。如果需要的话,记得先把它们藏起来或提交到某个地方。
其他回答
下面是从另一个分支获得更改的方法,而不考虑合并历史(注意:这会清除工作树,所以git在尝试之前会隐藏或提交更改)
// stash changes to ensure you don't lose any edits
git checkout your-branch-that-won't-simply-merge
git stash
git checkout branch-with-changes -- .
——。参数将检出其他分支的所有文件,同时仍检出到同一分支。然后您可以按照自己的意愿添加和提交。
我还将它与 Git add -p 这将使你能够在“大块头”中进行任何变化。它会询问y/n您是否想要执行任何更改过的行块,这意味着您可以在下次提交时保留不想要的更改。
这是我找到的原始答案的链接,去点赞吧。: https://stackoverflow.com/a/15536640/8272035
89年问题 通过提供当前路径,.:
Git签出other-branch-name——。
此操作类似于在不签出文件的情况下将HEAD切换到另一个分支,但只是从“另一个方向”切换。
正如@김민준提到的,这将覆盖任何未提交的更改。如果需要的话,记得先把它们藏起来或提交到某个地方。
当我知道远程主机上有更改时,这种情况经常发生在我身上,所以我尝试使用git merge master合并它们。但是,这不会与远程主服务器合并,而是与本地主服务器合并。
在合并之前,签出master,然后git拉到这里。然后您将能够将新的更改合并到您的分支中。
使用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的冲突来修复:),这是预期的
我不确定在我的情况下到底是什么问题,但问题的根源似乎是branchB检出,我无法从branchA拉出最新的更改…
我必须签出branchcha,拉出,然后签出branchB并合并branchA,让它像预期的那样工作。
Git merge origin/master而不是Git merge master为我工作。所以要合并master到feature分支,你可以使用:
git checkout feature_branch
git merge origin/master