制作視頻網(wǎng)站教程網(wǎng)站測(cè)速工具
1.分離頭指針情況下的注意事項(xiàng)
分離頭指針指的是變更沒(méi)有基于某個(gè)branch去做,所以當(dāng)進(jìn)行分支切換的時(shí)候,在分離頭指針上產(chǎn)生的commit,很可能會(huì)被git當(dāng)作垃圾清理掉,如果你認(rèn)為是重要的內(nèi)容,切記需要綁定分支
2.進(jìn)一步理解HEAD和branch
git checkout -b fix_readme fix_css 在fix_css分支上創(chuàng)建新分支,并切換到改分支
HEAD最終會(huì)落腳于某個(gè)commit,不管處于分離頭狀態(tài)還是HEAD指向分支的最新一次提交的commit
HEAD
HEAD^ (HEAD~1)代表HEAD的父親?
HEAD^^ (HEAD~2)代表HEAD父親的父親
?
?
3.怎么刪除不需要的分支?
一般-d 刪除,如果報(bào)沒(méi)有被merge,則用-D 進(jìn)行刪除分支
4.怎么修改最新commit的message?
git commit --amend 修理一下
對(duì)最近一次提交的commit做變更
5.怎么修改老舊commit的message?
對(duì)發(fā)展分支上的任何一個(gè)commit進(jìn)行調(diào)整,用rebase,前提是這些變基行為是在自己的分支上做變更,還沒(méi)有貢獻(xiàn)到團(tuán)隊(duì)的集成分支上,如果已經(jīng)在集成分支上,就不能隨意的變基
git log -3 最近3次提交
基于父親文件進(jìn)行
git rebase -i 選擇被變的父親? ? 其中-i交互式
修改后進(jìn)行保存,保存后會(huì)自動(dòng)跳轉(zhuǎn)新的頁(yè)面
?
6.怎樣把連續(xù)的多個(gè)commit整理成1個(gè)?
把之前不清晰的更改成更加清晰的commit
?
下面是git rebase -i cb3ca9451f5cbdb 之后的結(jié)果?
自動(dòng)跳轉(zhuǎn)到新的頁(yè)面
7.怎樣把間隔的幾個(gè)commit整理成1個(gè)?
8.怎么比較暫存區(qū)和HEAD所含文件的差異??
git diff --cached 暫存區(qū)和HEAD的差異
9.怎么比較工作區(qū)和暫存區(qū)所含文件的差異?
指定幾個(gè)文件就可以比較幾個(gè)文件的差異
git diff 默認(rèn)比較工作區(qū)和暫存區(qū)的區(qū)別
git diff 把所有的差異都展示出來(lái)
git diff -- 文件名? ? 是對(duì)具體文件的差異展示出來(lái)
git diff -- 文件名1?文件名2?文件名3? ? 可以是多個(gè)文件的差異
10.如何讓暫存區(qū)恢復(fù)成和HEAD的一樣?
git reset 更強(qiáng)大,可以修改提交歷史和分支引用,而git reset 更專(zhuān)注于工作區(qū)和暫存區(qū)的文件還原
git diff --cached 返回為空,則表明暫存區(qū)和工作區(qū)一致
git reset HEAD 暫存區(qū)所做的變更不想要了,一刀切,恢復(fù)成現(xiàn)在最新的分支commit,也就是HEAD指向的這些文件的模樣