Git is a popular software for version control, synchronization, and collaboration.
Here are some useful links to help you learn:
How do I undo a commit?
git reset --soft HEAD~
How do I spin-off a new repo from an existing one?
git clone old_repo new_repo
git filter-branch --prune-empty --subdirectory-filter my_subdirectory master
How do I push tags upstream?
git push --tags
This will push all
tags. To push a single tag:
git push origin my_tag
How do I add specific lines to a commit?
git add -p
This will give you an interactive dialog. Type s
to split chunks smaller.
How do I merge a specific commit?
git cherry-pick c2b62e
How do I unstage a file that I've already git-added?
git reset <file>
To unstage everything that you've git-added:
How do I compare the same file from two different branches ?
Either this way:
git diff branch1 branch2 -- file.txt
git diff branch1:path/to/file.txt branch2:path/to/file.txt
How do I delete a remote branch?
git push origin --delete mybranch
How do I follow/add/track someone else's remote branch?
git checkout the-remote-branch
You can list all remote and local branches:
git branch -a
How do I find out who edited/messed up a specific line in a file?
git blame file.txt
For the same on a directory
(eg. who moved a file):
git log -p mydirectory