I would like to have branch-specific files with the same name. I need to be able to merge from my development branch to master without changes made in this file.
For example:
Let's assume that I would like to have two different readme.md
files. In one I would like to have content: MASTER
and in another DEV
. But if I try to do it, while creating pull-request GitHub will try to merge this file, which is exactly my problem. I don't want GitHub to merge this file each time I make changes.
What would be the best way to solve this problem?
You can clone a specific branch from a Git repository using the git clone –single-branch –branch command. This command retrieves all the files and metadata associated with one branch. To retrieve other branches, you'll need to fetch them later on.
First, checkout the branch that you want to take the specific commit to make a new branch. Then look at the toolbar, select Repository > Branch ... the shortcut is Command + Shift + B. And select the specific commit you want to take. And give a new branch name then create a branch!
Let's say project
is a name of the branch to be merged, and README.md
is a name of the file that keep branch specific information.
I would suggest the following steps:
Merge project branch, but make sure changes are not committed, and not fast-forwarded
$ git merge --no-commit --no-ff project
Unstage README.md
file and checkout its current branch version
$ git checkout HEAD -- README.md
Complete merge
$ git commit
Also, it makes sense to install merge driver that will keep branch specific version of a file in case of merge conflict. In such case, you will never need to resolve conflicts in branch specific files manually.
Such merge driver is usually called ours
and defined as:
$ git config --global merge.ours.driver true
Now, you can specify in .gitattributes
file, when this merger should be used.
In our case, it is needed to add the following rule to .gitattributes
and commit it:
README.md merge=ours
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With