1.為了完成新的業(yè)務(wù)需求,創(chuàng)建了feature分支,完成開發(fā)之后,需要將代碼merge到release分支同時刪除此feature分支,刪除遠(yuǎn)程分支之后,調(diào)用git branch -a 的時候,之前創(chuàng)建的feature分支依舊存在,如何刪除本地緩存的分支呢?
- git remote prune origin
- git fetch -p
2 . git revert和git reset的區(qū)別
git reset是直接刪除指定的commit(適用于commit未push到遠(yuǎn)端到情況)。
- reset --hard 默認(rèn)將本地commit全部重置
- reset --hard HEAD~3 會將最新的3次提交全部重置
git revert是用一次新的commit來回滾之前的commit(適用于commit已經(jīng)push到遠(yuǎn)端到情況)。
- git revert commitId 撤銷指定一次commit
- git revert HEAD 撤銷前一次 commit
- git revert HEAD^ 撤銷前前一次 commit
git reset 是把HEAD向后移動了一下,而git revert是HEAD繼續(xù)前進(jìn),只是新的commit的內(nèi)容和要revert的內(nèi)容正好相反,能夠抵消要被revert的內(nèi)容。
3. git查看遠(yuǎn)程倉庫地址命令
git remote -v
3.git log查找某一個author的提交
git log --author='author'
4.基于當(dāng)前分支拉遠(yuǎn)端分支
方法1
- 1.git checkout -b branch_xxx
- 2.git push origin branch_xxx
方法2
git push --set-upstream origin branch_xxx
5.git 中如何撤銷部分修改?
1、如果沒有被git add到索引區(qū)
git checkout a 便可撤銷對文件a的修改
2、如果被git add到索引區(qū),但沒有做git commit提交
1)使用git reset將a從索引區(qū)移除(但會保留在工作區(qū))git reset HEAD a
2)撤銷工作區(qū)中文件a的修改git checkout a
3、如果已被提交,則需要先回退當(dāng)前提交到工作區(qū),然后撤銷文件a的修改
1)回退當(dāng)前提交到工作區(qū)git reset HEAD^
2)撤銷工作區(qū)
git checkout a
6.git 打標(biāo)簽并推送tag到托管服務(wù)器
git標(biāo)簽分為兩種類型:輕量標(biāo)簽和附注標(biāo)簽。輕量標(biāo)簽是指向提交對象的引用,附注標(biāo)簽則是倉庫中的一個獨(dú)立對象,建議使用附注標(biāo)簽。
1.創(chuàng)建輕量標(biāo)簽
git tag v_1.0
2. 創(chuàng)建附注標(biāo)簽
git tag -a v_1.0 -m '1.0.0版本'
創(chuàng)建輕量標(biāo)簽不需要傳遞參數(shù),直接指定標(biāo)簽名稱即可。
創(chuàng)建附注標(biāo)簽時,參數(shù)a即annotated的縮寫,指定標(biāo)簽類型,后附標(biāo)簽名。參數(shù)m指定標(biāo)簽說明,說明信息會保存在標(biāo)簽對象中。
7.合并分支報錯
error: Commit 48d4329664e66e6ccf43c3655ec1f82903ce47b8 is a merge but no -m option was given.
fatal: cherry-pick failed
增加-m 參數(shù)
git cherry-pick 48d4329664e66e6ccf43c3655ec1f82903ce47b8 -m 1