Git合并但重写所有内容

Git合并但重写所有内容,git,merge,branch,git-merge,branching-and-merging,Git,Merge,Branch,Git Merge,Branching And Merging,假设我有一个名为test的分支和一个名为master的分支。是否可以执行git merge以使主分支具有来自test的更改,但重写整个文件 据我所知,merge试图创建一个包含两个分支的文件。合并后,是否可以使主分支上的文件(例如index.html)与test分支上的文件完全相同?您可以从另一个分支签出文件并将其提交给主分支,而不是执行合并: git checkout master # Make sure you are on master git checkout

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


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

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

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设置为旧版本

将master重命名为其他版本

git签出主机

git签出-b master_old

将dev分支更改为master

git签出开发分支

git分支-f主机

然后,一旦您进行了测试,您就可以清理无用的分支:)

git branch-d dev_branch


在删除master_old之前,请注意,有些同事可能有一些工作要做

您假设master的所有更改都是无效的interest@jo_我会先创建一个master分支,名为
masterold
或其他什么东西,但是如果我想保留两个分支的提交历史呢?在这个场景中,分支是我一直在并行开发的两种完全不同的策略。那么,做一个正常的合并,然后进行这个签出怎么样?但这会在我的最终文档中留下两个代码的位吗?