3 ms·
Sadly I guess they most of them don't make much sense without context or the discussion/thinking that led to them. But for example, this is my snippet for merg
by moe 17y ago
Sadly I guess they most of them don't make much sense without context or the discussion/thinking that led to them.
But for example, this is my snippet for merging my current branch into master and pushing that to origin (hopefully merging/cleaning up in between as appropiate):
# on local branch
git fetch origin master
git rebase origin/master
# tidy up
git rebase -i origin/master
# merge to master
git checkout master
git merge $my_branch
# push to master
git push origin master
# go back to local branch
git checkout $my_branch
I didn't originally come up with all that, mind you. It's pulled from a workflow tutorial and you'll find basically the same procedure recommended in every tutorial (keywords: feature branches and "don't work directly on master").
And yes, I paste that multiple times per day and still throw up a little bit inside my mouth every time.
- dlsspy 17y agoYour first two commands can be replaced with (one time): git config --global branch.autosetuprebase always Then "git pull" Without doing the config change, you can just do a "git pull --rebase" Your "git push origin master" is typically what I spell "git push" (recommend "git config --global push.default tracking" just to make sure you're pushing the same stuff that's tracked automatically). So, my every day workflow (rebasing upstream and building on top of stuff) looks like this: git pull [edit a bunch of files] git add -p git commit git push My mouth is minty fresh.
- moe 17y agoI guessed I'd have something like that coming and yes, that might work. Except when you regularly need to create new working copies on varying git versions where those config details tend to differ in subtle ways. Too often did I have to wrestle problems on someones MacBook simply because the config or command syntax changed slightly between a few git revisions. I'd go as far as to say that local (i.e. not repository-wide) config settings that change the semantics of how the commands work are deeply harmful in a team-setting. It's yet another layer of complexity that you have to keep in mind when debugging problems. Sure, it can save typing when everyone involved uses the same git version and has a good understanding of git. Unfortunately neither has been the case on most projects I've been involved with.