I had some weird thing working with git. While I was testing, my master branch seems to be off from the develop branch.
I tested and development branch seems to be good state. When I checkout back to master branch, nothing seems to work how it suppose to. Why is this? I just can't check all files each and compare with the working ones?
Suddenly I got genius idea. How about saving the best current state then go back to master branch and copy from the Save State? I don't mean about Git stash. About zipping the directory while excluding .git
directory and node_modules
from the develop
good state branch, then set to master
branch and extract it. Then check with git status and commit changes. Boom! master
is in sync with develop
.
I don’t know why git do this, but perhaps I was running old version on my Mac. It was git version 2.4.9. And now it suppose to be 2.7.0.
Time for upgrade that is.
How did you fix your problem?
Let's say I show you the path of my git repository directory.
/data/my/git/myproject
.
And my git is inside that directory, like so:
/data/my/git/myproject/.git
First I go the branch that seems the best files and best state, for me it's develop
.
git checkout develop
I can with confidence make an exact clone for this with: tar
So I go to my sub directory
/data/my/git
And I do the compressing with tar
tar -cvzpf develop-branch.tar.gz --exclude='myproject/.git' --exclude='myproject/node_modules' myproject
See I use
--exclude
to exclude.git
directory. This is very important.
You just make a Save Point! YEAH!
then head to:
/data/my/git/myproject
and set to weird branch; master
git checkout master
and go back to the sub directory
/data/my/git
Extract the tar.gz
file.
tar -xvzpf develop-branch.tar.gz
and go back to your project directory:
/data/my/git/myproject
and check your status
git status
BAM.. weird changes that should be there!
Add the files and Commit it and call it a day!
git add .
git commit -avm "Everything is in sync!!!"
And now back to sleep!