KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
How can you merge two branches in git, retaining necessary files from a branch? When merging two branches, if a file was deleted in one branch and not in another, the file is ultimately deleted. For example: A file exists in master when you make a new branch you remove the file from master since we don't need it (yet) you make changes in the branch to add a feature, which relies on the file existing you make bug fixes in master (cannot be discarded) you merge some day, and the file is gone! How to Reproduce: Create a git repo with one file. git init echo "test" > test.txt git add . git commit -m "initial commit" Create a branch git branch branchA Delete the file in master git rm test.txt git commit -m "removed file from master" Make ANY changes in branchA that don't touch the deleted file (it has to be unchanged to avoid Conflict) git checkout branchA touch something.txt git add . git commit -m "some branch changes" From here, any way I've found to merge these two branches, the test.txt file is deleted. Assuming we were relying on the file for branchA , this is a big problem. Failing examples: Merge 1 git checkout branchA git merge master ls test.txt Merge 2 git checkout master git merge branchA ls test.txt Rebase 1 git checkout branchA git rebase master ls test.txt
Tags (comma-separated)
Save Edits
Cancel