Jon Dehdari

Git Logo


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
cd 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:
git reset

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 fetch
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

External Links