81. Git HEAD 指针控制
git checkout 86dea
工作区 版本库
a.js 暂存区 HEAD
b.js a.js master
b.js
commit commit commit
7dae1 86dea 763da
Monday, February 27, 12
82. Git HEAD 指针控制
git checkout 86dea
工作区 版本库
a.js 暂存区 HEAD
b.js a.js master
b.js
1
commit commit commit
7dae1 86dea 763da
Monday, February 27, 12
83. Git HEAD 指针控制
git checkout 86dea
工作区 版本库
a.js 暂存区 HEAD
b.js master
2
1
commit commit commit
7dae1 86dea 763da
Monday, February 27, 12
84. detached HEAD 状态
git checkout 86dea
Note: checking out '86dea'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at 78f871f... remove doc
HEAD master
commit commit commit
7dae1 86dea 763da
Monday, February 27, 12
85. detached HEAD 状态
HEAD
commit
45cdd
master
commit commit commit
7dae1 86dea 763da
Monday, February 27, 12
86. detached HEAD 状态
git checkout master
HEAD
commit
45cdd
master
commit commit commit
7dae1 86dea 763da
Monday, February 27, 12
87. detached HEAD 状态
I’m lost
HEAD
commit
45cdd
master
commit commit commit
7dae1 86dea 763da
Monday, February 27, 12
88. 在 detached HEAD 状态上创建分支
git checkout -b branch
HEAD
branch
commit
45cdd
master
commit commit commit
7dae1 86dea 763da
Monday, February 27, 12
89. 在 detached HEAD 状态上创建分支
git checkout master
branch
HEAD
commit
45cdd
master
commit commit commit
7dae1 86dea 763da
Monday, February 27, 12
110. git commit --amend
MOD: blahblah
commit commit
239d5 7ca54
commit
7ca54 master HEAD
MOD: ...
Monday, February 27, 12
111. 通过 rebase 合并提交记录
git rebase -i origin/master # -i 进入交互式 rebase
origin/master HEAD
commit
7ca54 master
commit commit
6539d 35ce5
Monday, February 27, 12
112. 通过 rebase 合并提交记录
git rebase -i origin/master # -i 进入交互式 rebase
origin/master HEAD
commit commit
7ca54 d32ab master
commit commit
6539d 35ce5
Monday, February 27, 12
113. 通过 rebase 合并提交记录
git rebase -i origin/master # -i 进入交互式 rebase
origin/master HEAD
commit commit
7ca54 d32ab master
Monday, February 27, 12
114. 通过 rebase 丢弃提交记录
git rebase -i origin/master # -i 进入交互式 rebase
origin/master HEAD
commit
7ca54 master
commit commit
6539d 35ce5
Monday, February 27, 12
115. 通过 rebase 丢弃提交记录
git rebase -i origin/master # -i 进入交互式 rebase
origin/master HEAD
commit commit
7ca54 d32ab master
commit commit
6539d 35ce5
Monday, February 27, 12
116. Git rebase tip
• 文件只要进了 git 的版本库,就是安全的
• rebase 本质上是基于已有提交构造新提交
• 永远不要 rebase 已经推送到公共仓库的提交
Monday, February 27, 12