Git 合并但重写一切

Git merge but rewrite everything

假设我有一个名为 test 的分支和一个名为 master 的分支。是否可以执行 git merge 使主分支具有 test 的更改,但重写整个文件?

据我所知,合并试图创建一个包含两个分支的文件。是否可以在合并后使 master 分支上的文件(假设 index.html)与 test 分支上的文件完全相同?

您可以从另一个分支签出文件并将其提交给 master,而不是进行合并:

git checkout master              # Make sure you are on master
git checkout test -- index.html  # Get the file from test branch
git commit                       # Commit the file and write a nice message

所以你可以清楚地看到你从 master 版本改变了什么,你不需要做一个 master-old.

将 master 重命名为其他名称

git checkout master

git checkout -b master_old

将您的 dev 分支更改为 master

git checkout dev_branch

git branch -f master

然后一旦你测试了你就可以清理无用的分支:)

git branch -d dev_branch

删除前请注意 master_old ,有些同事可能在那里有一些工作