54

我有一个 master 分支和一个 working branch_1. 我想branch_1完全按原样“移动” master。所以我想要这样的东西:

git checkout master
git merge branch_1 # I don't know what is correct...

我做过的事情,但我得到了大量的文件,因为烦人的冲突搞砸了。所以现在 master 包含完全相同的文件,branch_1避免任何冲突,只是覆盖文件。有什么帮助吗?

4

3 回答 3

62

如果两个分支都对文件进行了更改,就会发生冲突。这是一件好事。 使您的分支彼此保持最新将阻止其中一些分支 。但总的来说,冲突并不坏。rebase 选项还可以防止其中许多情况发生。

git merge branch_1

如果您在master,合并将按您的预期带来更改。

http://www.kernel.org/pub/software/scm/git/docs/git-merge.html

你也可以

git rebase branch_1

这将在branch_1没有合并提交的情况下获取更改并将它们附加到 master。

http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html

于 2013-01-30T13:33:22.690 回答
4

也许你不应该合并?

  1. 结帐 branch_1
  2. 将 master 更改重新设置为 branch_1
  3. 修复测试代码后可能发生的任何错误
  4. 结帐大师
  5. 将 branch_1 更改为 master

或在代码中:

git checkout branch_1
git rebase master
(...)
git checkout master
git rebase branch_1

如果你想让你的变更集更密集,这也让你有机会将多个提交压缩为一个,并防止这些烦人的合并提交出现在你的历史记录中。

于 2013-01-30T13:59:32.543 回答
0

我从thenetninja youtube频道获取了这段代码,它对我有用。

在非主分支上

  git add .
  git commit -m "msg"
  git checkout master

在主分支上

  git merge <non master branch name>
  # fix any conflicts and try to run the software to test any error
  git add .
  # commit w/o any msg, as follows
  git commit
  git push -u origin master
于 2022-03-06T03:24:11.537 回答