Git
Resources:
Installing git repo with pip
pip install -e \ git+ssh://git@github.com/username/repository@[branch|tag|commit]#egg=common[&subdirectory=dir_name]
Remove file from git but not from local machine
# for a single file git rm --cached file_name # for a single directory git rm --cached -r directory_name
Add files to git
# add all files or filename/folder git add --all # add updated files only git add -u
Show the diff
# know the difference with not staged git diff # what will be committed git diff --staged
Create a commit
# use commit message from command line git commit -m # change and rewrite existing files git commit -a # the same but with a comment git commit -am # change only the message if commit was not pushed git commit --amend -m "New commit message"
Make right commit messages
- Separate subject from body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how
Work with branches
# list both local and remote branches git branch -a # list only remote branches git branch -r # update list of local branches git remote update origin --prune # delete branch git branch -d $branch_name
Revert some things
## Undoing local changes # reset one file to the last committed version git checkout HEAD file/to/restore.ext # reset all files git reset --hard HEAD ## Undoing Committed Changes # revert commit == reapply some commit one more time, history will be saved git revert 2b504be # reset commit == all next commits will be erased, last history will be destroyed git reset --hard 2be18d9
Additional topics
# if you want use some tool to display diff(meld, for example) git difftool -y -t meld some_filename # committed messages by one line git log --oneline