网址:Learn Git Branching
一、基础篇
1.1 git commit
1.1.1 示例(git commit)
git commit
1.1.2 题目(两次提交记录)
git commit git commit
1.2 git branch
1.2.1 示例(git branch <>、git checkout <>、git checkout -b <>)
git branch newImage
git branch Image git commit
git branch newImage git checkout newImage git commit
1.2.2 题目(创建新分支并切换到新创建的分支)
git branch bugFix git checkout bugFix
有更简洁的方式:想创建一个新的分支同时切换到新创建的分支的话,可以通过git checkout -b<your branch name>来实现。
git checkout -b bugFix
1.3 git merge
1.3.1 示例(git merge <>)
git merge bugFix
git merge bugFix git checkout bugFix git merge main
1.3.2 题目
git checkout -b bugFix git commit git checkout main git commit git merge bugFix
1.4 git rebase
1.4.1 示例(git rebase <>)
git rebase main
git rebase main git checkout main git rebase bugFix
1.4.2 题目
git checkout -b bugFix git commit git checkout main git commit git checkout bugFix git rebase main
二、高级篇
2.1 git checkout
2.1.1 示例
git checkout C1 git checkout main git commit git checkout C2
分离的HEAD
2.1.2 题目
方式一:鼠标点击C4
方式二:命令行
git checkout C4
2.2 相对引用(^)
2.2.1 示例(git checkout <>^)
git checkout main^
git checkout C3 git checkout HEAD^ git checkout HEAD^ git checkout HEAD^
2.2.2 题目(切换到父节点)
git checkout bugFix^
2.3 相对引用2(~)
2.3.1 示例(git checkout HEAD~<num>、git branch -f <> HEAD~<num>)
git checkout HEAD~4
git branch -f main HEAD~3
2.3.2 题目
方式一:
git checkout C1 git branch -f main C6 git branch -f bugFix C0
方式二:
git checkout HEAD^ git branch -f main C6 git branch -f bugFix HEAD^
2.4 撤销变更
2.4.1 示例(git reset HEAD~<num>、git revert HEAD)
git reset HEAD~1
git revert HEAD
2.4.2 题目
git reset HEAD~1 git checkout pushed git revert HEAD
三、移动提交记录
3.1 git cherry-pick
3.1.1 示例
git cherry-pick C2 C4
3.1.2 题目
git cherry-pick C3 C4 C7
3.2 交互式rebase
3.2.1 示例
git rebase -i HEAD~4
3.2.2 题目
git rebase -i HEAD~4
四、杂项
4.1 只取一个提交记录
git checkout main git cherry-pick C4
4.2 提交的技巧#1
git rebase -i HEAD~2 git commit --amend git rebase -i HEAD~2 git branch -f main HEAD
4.3 提交的技巧#2
4.3.1 示例
git cherry-pick C2
4.3.2 题目
git checkout main git cherry-pick C2 git commit --amend git cherry-pick C3
4.4 git tag
4.4.1 示例
git tag v1 C1
4.4.2 题目
git tag v1 C2 git tag v0 C1 git checkout C2
4.5 git describe
4.5.1 示例
git tag v2 C3
4.5.2 题目
五、高级话题
5.1 多次rebase
git rebase main bugFix git rebase bugFix side git rebase side another git rebase another main
5.2 两个parent节点
5.2.1 举例
git checkout main^
git checkout main^2
git checkout HEAD~ git checkout HEAD^2 git checkout HEAD~2
git checkout HEAD~^2~2
5.2.2 题目
方式一:
git checkout HEAD~^2~ git branch bugWork git checkout main
方式二:
git branch bugWork main~^2~
5.3 纠缠不清的分支
git checkout one git cherry-pick C4 C3 C2 git checkout two git cherry-pick C5 C4 C3 C2 git branch -f three C2
六、Push&Pull——Git 远程仓库!
6.1 git clone
6.1.1 示例
git clone
6.1.2 题目
git clone
6.2 远程分支
6.2.1 示例
git checkout o/main git commit
6.2.2 题目
git commit git checkout o/main git commit
6.3 git fetch
6.3.1 示例
git fetch
6.3.2 题目
git fetch
6.4 git pull
6.4.1 示例
git fetch git merge o/main
git pull
6.4.2 题目
git pull
6.5 模拟团队合作
6.5.1 示例
git fakeTeamwork
git fakeTeamwork foo 3
6.5.2 题目
git clone git fakeTeamwork 2 git commit git pull
6.6 git push
6.6.1 示例
git push
6.6.2 题目
git commit git commit git push