如何在git中合并两个分支,从分支中保留必要的文件?
合并两个分支时,如果文件在一个分支中删除而在另一个分支中没有删除,则最终删除该文件.
例如:
如何再现:
用一个文件创建一个git repo.
git init
echo "test" > test.txt
git add .
git commit -m "initial commit"
Run Code Online (Sandbox Code Playgroud)创建一个分支
git branch branchA
Run Code Online (Sandbox Code Playgroud)删除master中的文件
git rm test.txt
git commit -m "removed file from master"
Run Code Online (Sandbox Code Playgroud)在branchA中进行任何不接触已删除文件的更改(必须保持不变以避免冲突)
git checkout branchA
touch something.txt
git add .
git commit -m "some branch changes"
Run Code Online (Sandbox Code Playgroud)从这里,我发现合并这两个分支的任何方式都删除了test.txt文件.假设我们依靠文件的branchA,这是一个很大的问题.
失败的例子:
合并1
git checkout branchA
git merge master
ls test.txt
Run Code Online (Sandbox Code Playgroud)
合并2
git checkout master
git merge …Run Code Online (Sandbox Code Playgroud)