I had two branches, heavy_refactoring and master branch in git.
I have already merged heavy_refactoring into master, but I had some trouble since master looks different than heavy_refactoring at the end due to some changes that took place on master before the merge. These changes I dont want.
What I wanted is that the 'master' branch look exactly like heavy_refactoring.
So here are the steps:
1. Go to the master branch first.
git checkout master
2. First you do a git diff between the two branches:
git diff --summary master heavy_refactoring
This will shows us the differences that should take place for master to become heavy_refactoring. It is very important that you type 'master' before 'heavy_refactoring' to advise the git diffing to give the differences so that I can get from master to heavy_refactoring.
The --summary is a switch to tell the diff not to show the contents inside each file.
3. After running the command, a list of deleted, modified and created files show up.
4. If the diff tells you that I file is "deleted", this means it should be removed from the master branch using:
git rm file_to_remove
5. If the diff tells you that I file is "created", this means you have to copy it from the heavy_refactoring branch to the master branch using:
# Copying a file from another branch to the current branch
git checkout heavy_refactoring src/main/java/com/basil/TargetFile.java
6. If the diff tells you that I file got "modified", this means you also have to copy it from heavy_refactoring branch to the master branch. Notice that my objective here is to make master exactly like heavy_refactoring.
git checkout heavy_refactoring srcmain/java/com/basil/TargetFile2.java
At the end, I can run the git diff again and it will show me an empty result which will indicate that the two branches are exact:
git diff --summary master heavy_refactoring
I have already merged heavy_refactoring into master, but I had some trouble since master looks different than heavy_refactoring at the end due to some changes that took place on master before the merge. These changes I dont want.
What I wanted is that the 'master' branch look exactly like heavy_refactoring.
So here are the steps:
1. Go to the master branch first.
git checkout master
2. First you do a git diff between the two branches:
git diff --summary master heavy_refactoring
This will shows us the differences that should take place for master to become heavy_refactoring. It is very important that you type 'master' before 'heavy_refactoring' to advise the git diffing to give the differences so that I can get from master to heavy_refactoring.
The --summary is a switch to tell the diff not to show the contents inside each file.
3. After running the command, a list of deleted, modified and created files show up.
4. If the diff tells you that I file is "deleted", this means it should be removed from the master branch using:
git rm file_to_remove
5. If the diff tells you that I file is "created", this means you have to copy it from the heavy_refactoring branch to the master branch using:
# Copying a file from another branch to the current branch
git checkout heavy_refactoring src/main/java/com/basil/TargetFile.java
6. If the diff tells you that I file got "modified", this means you also have to copy it from heavy_refactoring branch to the master branch. Notice that my objective here is to make master exactly like heavy_refactoring.
git checkout heavy_refactoring srcmain/java/com/basil/TargetFile2.java
At the end, I can run the git diff again and it will show me an empty result which will indicate that the two branches are exact:
git diff --summary master heavy_refactoring
No comments:
Post a Comment