mkdir git-turorial
cd git-turorial/
git init
git status
touch README.md
git status
git add README.md
git status
git commit -m "First commit"
vi README.md
git status
git add README.md
git status
git commit
git log
git log --pretty=short
git log README.md
git log -p README.md
vi README.md
# 工作树与暂存区的差别
git diff
# 工作区与最新提交之间的差别
git add README.md
git diff HEAD
git commit -m "Add index"
git checkout -b feature-A
git branch
git add README.md
git commit -m "Add feature-A"
git checkout master
git merge --no-ff feature-A
git log --graph
git reset --hard [回溯到feature-A创建前,值填写对应的哈希值]
git checkout -b fix-B
vi README.md
git add README.md
git commit -m "Fix-B"
git reflog
git checkout master
git reset --hard [推进历史到feature-A合并后的状态,填写从git reflog中对应状态的哈希值]
git merge --no-ff fix-B
# 有冲突,编辑文档解决冲突
vi README.md
git add README.md
git commit -m "Fix conflict"
git commit --amend
git log --graph
git checkout -b feature-C
git commit -am "Add feature-C"
# 修正错误
vi README.md
git diff
git commit -am "Fix typo"
git log --graph
# 更改历史
git rebase -i HEAD~2
git log --graph
git checkout master
git merge --no-ff feature-C
git log --graph
git remote add origin [email protected]:WilsonYangLiu/git-turorial.git
git push -u origin master
git checkout -b feature-D
git push -u origin feature-D
[I am programer B! I'll add something]
git clone [email protected]:WilsonYangLiu/git-turorial.git
git branch -a
git checkout -b feature-D origin/feature-D
vi README.md
git commit -am "Add feature-D"
git push
[I am programer A!]
# in any branch. Here i am in master!
git pull origin feature-D
git log --graph
git checkout master
git pull origin
will fetch and merge the origin/master branch (you may just say git pull as origin is the default).