Shortcuts to recurrent Git commands
git fetch public
git checkout master
git merge public/master
List branch remote
git branch -vv
Checkout from a remote branch
git co -b <local name> upstream/master
Push to a remote upstream branch
git push <remote> <local branch>:<remote branch>
eg:
git push upstream foo:master
Read more here.
git config pull.rebase false # merge (the default strategy) git config pull.rebase true # rebase git config pull.ff only # fast-forward only
The tests
directory is a Git subtree created with the
following commands:
git remote add tests [email protected]:nextflow-io/tests.git
git subtree add --squash --prefix=tests/ tests integration
To pull changes from the tests repo use this command:
git subtree pull --squash --prefix=tests/ tests integration
To push changes to the tests repo use this command:
git subtree push --prefix=tests/ tests integration
Read more here.
git stash list
git stash pop
git stash pop stash@{1}
git showtool stash@{0}
git stash drop
git stash drop stash@{1}
git stash clear
git diff stash
git diff stash@{1} [other]
Find a commit in any branch introducing a change
git log -S <whatever> --source --all
Reset last merge pushed
git reset --hard HEAD@{1}
Read more https://stackoverflow.com/a/11722640/395921
To sign Git commits with a GPG key on Mac use GPG Suite, import your key, then:
git config --global gpg.program /usr/local/MacGPG2/bin/gpg2
git config --global user.signingkey <your key>
git config --global commit.gpgsign true
git config --global format.signoff true ## TO AVOID TO SPECIFY -S option each time
Read more: https://gist.github.com/danieleggert/b029d44d4a54b328c0bac65d46ba4c65
https://stackoverflow.com/questions/4515580/how-do-i-remove-the-old-history-from-a-git-repository
git fetch origin master:master
Use git fetch && git rebase