Git:有可能将分支转换为主分支,忽略任何合并冲突吗?

Jef*_*oft 24 git

除了主人之外,我还有一个分支机构的git仓库.我想让那个分支成为主人 - 完全覆盖主人.显然我可以进行合并,但这会导致很多冲突,当我知道我总是希望来自附加分支的文件而不是主文件时,解决它们似乎需要做很多工作.

是否可以将分支转换为主分支,或者进行合并并告诉git始终支持来自一个分支的文件而不是另一个分支?

提前致谢!

Jay*_*rod 25

您可以使用reset命令一次性执行此操作:

git checkout master
git reset --hard topicBranch
Run Code Online (Sandbox Code Playgroud)

硬重置将使当前分支指向给定的提交.这将丢弃主机上尚未在主题分支上的任何提交; 他们不会合并.

同样适用于rebase的警告也适用于:如果您已经将master分支推送到与其他开发人员共享的任何存储库,请不要执行此操作.

  • +1,但您可能应该添加通常的警告,即git reset --hard会丢弃所有未提交的更改。 (2认同)
  • 我不得不做一个额外的步骤.Git认为有拉动的变化,当我做一个git pull我有合并冲突.相反,我做了`git push -f`来强制推动 (2认同)

Dav*_*dek 7

如果您是唯一访问此存储库且未与其他开发人员共享的开发人员,则通过创建新分支非常容易.在开始之前,请确保您的存储库是干净的(所有修改都已检入当前分支).

备份旧的主分支:

git checkout master
git branch oldMaster
Run Code Online (Sandbox Code Playgroud)

删除旧主服务器并创建新主服务器:

git checkout topicBranch
git branch -D master
git branch master
Run Code Online (Sandbox Code Playgroud)

如果托管在远程服务器上的存储库中,则需要更新远程服务器:

git push --force remoteName master:master
Run Code Online (Sandbox Code Playgroud)

重要提示:如果其他开发人员已从您的存储库中提取,则此方法将在他们下次从您的存储库中提取或推送到他们的存储库时为他们生成错误.