git實踐總結

場景一:代碼回退

1.1  git add . 后,從暫存區(qū),回到工作區(qū):
git restore --staged <file>(.表示全部撤回)
1.2 git commit后,從commit回到Change to be commited: 
git reset --soft HEAD^
1.3 push到倉庫后回滾到上一次提交
git reset --soft HEAD^
(可千萬不能用—hard,不然工作區(qū)修改也不保了)
然后所有回到待commit狀態(tài) ,遠程記錄不變,遠程代碼會回到上一版本
注:git reset --soft HEAD^大法真好用,保留修改在工作區(qū)—soft,不想保留—hard,但是hard真的得慎用,git add后的代碼還有救,如果都沒有add,git無法追蹤那就真的找不回來咯
 
使用soft后再次push可能會報錯,比如目前版本落后于線上版本
此時git push -f origin //注意-f強制性覆蓋,只能用于自己分支,慎用

情景二:回退代碼丟失找回代碼 git reset –hard HEAD^的鍋

Git commit 后發(fā)現(xiàn)代碼commit多了,回退,回退,回退。
Git reset --hard HEAD^  哦豁,本地代碼一起丟了。
瘋狂找回中……
git reset --hard HEAD@{2}// HEAD@{2}為最后那次commit時的版本,目前已回到commit狀態(tài),想要回到add或add前參考情景一(有驚無險奧)
(這里會有一個疑惑如果此時git reset --soft HEAD^會不會回到剛剛丟失代碼的時候,結果是回到了change to be commited狀態(tài))

情景三:Merge時與其他分支有沖突

命令:
Git fetch是將遠程主機的最新內(nèi)容拉到本地,用戶在檢查了以后決定是否合并到工作本機分支中(順便提一句區(qū)別git pull則是將遠程主機的最新內(nèi)容拉下來后直接合并,git pull = git fetch + git merge這樣可能會產(chǎn)生沖突,需要手動解決)
Git checkout -b <branch> 新建分支并切換到該分支
Git merge <branch> 將branch合并到當前分支
Git log 查看提交日志
Git push origin feature-merge 把當前分支推送到遠程
 
Git fetch origin <遠端分支>:<本地分支>   本地分支沒有會自動新建(也可以分兩步先建分支,再拉代碼)
Git checkout -b feature-merge//新建用于合并的分支
Git merge dev//將dev合并到當前merge分支
…………解決沖突
Git log//查看自己的提交有沒有和進去
Git push origin feature-merge//把合并分支提交到遠程
在遠程倉庫提merge

刪除命令:

刪除本地分支: git branch -D [branchName]
刪除遠程分支:git push origin –delete [branchName]//同時刪除本地分支和遠程分支

場景四:提交代碼,注釋搞了一堆代碼,哈哈哈哈嗝

1、git commit --amend
2、在命令行的最上面會顯示上次提交的備注,然后我們需要進入編輯模式進行修改,按i鍵
3、開始編輯,修改備注
4、修改完成后,按Esc退出編輯模式
5、再按組合鍵 Shift + :
6、輸入wq,然后回車(w的意思是保存,q的意思是退出,這一步也可以拆成兩步:輸入w按回車、輸入q按回車)
7、修改完成,git push提交服務器
8、push不上去?
![image.png](https://upload-images.jianshu.io/upload_images/15034020-359fca18ac7d10d8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
因為hash值改變了
安全強制push:git push origin [branchName] --force-with-lease
刷新遠程....

后續(xù)實踐補充......

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • ###git分支###: 分支:即是平行空間,假設你在為某個手機系統(tǒng)研發(fā)拍照功能,代碼已經(jīng)完成了80%,但如果將這...
    你好樹洞先生閱讀 282評論 0 1
  • 關于Git的總結: 一、Git的安裝: 1、系統(tǒng)環(huán)境準備 [root@git ~]# cat /etc/redha...
    你好樹洞先生閱讀 844評論 0 1
  • 一.Git簡介 Git是目前世界上最先進的分布式版本控制系統(tǒng)。它就沒有中央服務器的,每個人的電腦就是一個完整的版本...
    大鵬的鵬閱讀 657評論 0 0
  • 1、 如果通過git add命令增加了文件進入版本控制,git并不知道這個文件是之前不存在的,還是之前已經(jīng)存在但是...
    naiyi閱讀 2,184評論 0 1
  • 16宿命:用概率思維提高你的勝算 以前的我是風險厭惡者,不喜歡去冒險,但是人生放棄了冒險,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 7,693評論 0 4

友情鏈接更多精彩內(nèi)容