Some basics git commands

git cheatsheet

Basic workflow

# setup the project  
git clone github/project.git  
git branch FeatureX  
git co FeatureX

# make some changes  
git status  
git add .

# commit changes  
git commit -m 'commit message'

# push changes to branch  
git push origin branch-name

# next pull request/merge with master on github or command line  

Sometimes you don’t want to track some files(like local env configuration settings)

# no track file  
git update-index --assume-unchanged Gemfile .ruby-version

# track file again  
git update-index --no-assume-unchanged path/to/file.txt  

About branch

# view hidden branch or detached  
git branch -a

# track branch  
git branch branch_name origin/branch_name

# sync a branch with master

# update master  
git checkout master  
git pull

# change to the branch  
git checkout branch  
git merge origin/master

# fix conflicts  
# commit changes  
# branch is updated

Steps to merge pull request from branch, take it from Github

# Step 1: From your project repository, bring in the changes and test.

git fetch origin  
git checkout -b branch-name origin/branch-name  
git merge master

# Step 2: Merge the changes and update on GitHub.

git checkout master  
git merge --no-ff branch  
git push origin master  

Alias for .gitconfig

[alias]  
co = checkout  
ci = commit  
st = status  
br = branch  
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short  
type = cat-file -t  
dump = cat-file -p  
tree = log --oneline --graph --decorate --all  
bra = branch -a  
cbr = branch -l  

Some reference
https://help.github.com/articles/syncing-a-fork
https://help.github.com/articles/configuring-a-remote-for-a-fork

linux  git  shell