So I worked all day on a new feature in my project and after I finished it, I wanted to upload my local commits into the repository.
When I tried to push my commits to the git repository, that push was rejected because of some merge conflicts. So I went through the files, choosing "mine" or "theirs" for every conflict. After I was done with that, git didn't tell me anything about wether I had to do something more or not. Since I had resolved all conflicts I went on and tried to push again, ending up with the same conflicts I had to solve just before. (I could do that over and over again if I wanted to become insane)
I'm failing in trying to work properly with this tool for some months now.
Pull data. Work work. Commit work. Push. Eventually merge conflicts. Push again. Done. - This is how I had expected git to work but that seems not to be the case. So what steps am I missing? What do I have to do in order to not using up hours after hours reading tutorials like these that still don't solve my problems as they stop right after solving the conflicts?
Oh, and I am using git via PhpStorm 10.
Here is the sequence of work in your case,
git pull
# work work
git add $files
git commit
git pull --rebase
# if conflict resolve
git add $conflict_resolved_file
git rebase --continue
git push
So,
git pull --rebase
This above command is the most useful command in my git life which saved a lots of time.
Before pushing your newly commit to server, try this command and it will automatically sync latest server changes (with a fetch + merge) and will place your commit at the top in git log. No need to worry about manual pull/merge.
Find details at: http://gitolite.com/git-pull--rebase
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