Collection ‣ How and why SHAs work ‣ The .git directory ‣ How to sign your tags ‣ Why moving/ renaming and copying files is important ‣ Advanced Git aliases ‣ Working with multiple remotes ‣ Setting up your local machine as a Git server ‣ Details about how Git clones a repository and the differences between protocols ‣ Differences between .. ... in ref specs ‣ Differences between ^ and ~ ‣ Why ‘git push’ usually Just Works
is HEAD and how does Git keep track of it ‣ How to allow Git bisect to save your sanity ‣ How to use the reflog to get yourself out of a jam ‣ What’s the difference between a submodule and a subtree
Create branches and basic merges ‣ Passing familiarity with ‘the stage’ ‣ commit but typically just using --all ‣ merge almost exclusively into master What I Expect
git rebase --interactive --onto A A D pick B Add my favorite TV Show pick C Give it some awesome sauce pick D I can’t BELIEVE I MISSPELLED IT! edit B Add my favorite TV Show pick C Give it some awesome sauce pick D I can’t BELIEVE I MISSPELLED IT!
line $ git filter-branch --index-filter ' if [ -f $FILE_WITH_SECRET_STUFF ]; then sed -i ’s/$SECRET_STRING_TO_REMOVE//g’ $FILE_WITH_SECRET_STUFF; git add -A fi' -- --all
--env-filter ' if [ "$GIT_AUTHOR_NAME" = "Edmund Dantes" ]; then GIT_AUTHOR_NAME = "The Count of Monte Cristo"; GIT_AUTHOR_EMAIL = "[email protected]"; fi if [ "$GIT_COMMITTER_NAME" = "Edmund Dantes" ]; then GIT_COMMITTER_NAME = "Sinbad the Sailor"; GIT_COMMITTER_EMAIL = "[email protected]"; fi ' -- --all
your repo $ git verify-pack -v .git/objects/pack/pack-\*.idx | sort -k 3 -n # get the name of those files $ git rev-list --objects --all | grep $SHA # remove the file like we discussed earlier