【Git】Git-常用命令备忘录(二)
開發過程中,各種問題都會出現,比如手殘,眼花,頭昏,導致了誤操作,那么git作為一款由Linus親自操刀,替換掉BitMover公司的BitKeeper的優秀源代碼管理工具,讓您在各種亂七八糟的誤操作中,總有后悔藥吃,就是git的能力。
了解這種能力之前,首先還是要了解他的幾個重要邏輯概念
邏輯概念
1.工作區
就是我們編寫代碼的區域
2.版本庫
2.1 暫存區
git add,實際上就是把要提交的所有修改放到暫存區
2.2 當前分支
git commit一次性把暫存區的所有修改提交到當前分支,提交后,如果你又沒有對工作區做任何修改,那么工作區就是“干凈”的
常用操作
1.撤銷更改
場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。
#?“哎,又有新需求,修改代碼” #?“咦,改亂了,這個邏輯好復雜,重新理一下邏輯,重頭來過” $git?checkout?--?file場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD,就回到了場景1,第二步按場景1操作(git checkout -- file)。
#?“新需求,修改代碼” #?“嗯,對,可以了” $git?add?file#?“哦,NO,不對,這里不對” $git?reset?HEAD $git?checkout?--file場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,那就需要版本回退了,不過前提是沒有推送到遠程庫。
#?“新需求,修改代碼” #?“嗯,對,可以了” $git?add?file#?提交代碼 $git?commit?-m?"功能完成"#?“完了,完了,這里不對,咋辦?” $git?log #?該命令顯示從最近到最遠的提交日志,如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上--pretty=oneline只寫?--onleline也可以,只會顯示commit?id?的前幾個字符 $git?log?--pretty=oneline #or $git?log?--oneline?#只會顯示commit?id?的前幾個字符 #和SVN不一樣,Git的commit id不是1,2,3...遞增的數字,而是一個SHA1計算出來的數字,用十六進制表示。#【回到過去】 $git?reset?--hard?HEAD^?#回退到上一個版本 $git?reset?--hard?HEAD^^?#回退到上上一個版本#【回到未來】-前提是你git沒關,還找到了未來的commit?id $git?reset?--hard?752f5c2#【不小心關閉了git,時空跳躍的按鈕不見了】 $git?reflog #記錄你的每一次命令 #找到commit?id回到過去,用git log可以查看提交歷史,以便確定要回退到哪個版本。
回到未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。
2.刪除
rm file,如果你用rm刪除的文件,就相當于只刪除了工作區的文件,如果需要恢復,直接使用 git chekout -- file就可以
git rm file,如果你用的是git rm刪除文件,那就相當于不僅刪除了文件,而且還添加到了暫存區,相當于執行了以下兩條命令:
#?刪除文件 rm?filegit?add?-A需要先 git reset HEAD <file>,然后再git checkout -- <file>
git checkout -- file其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以還原
3.參考鏈接
https://www.liaoxuefeng.com/wiki/896043488029600/896067008724000
https://blog.csdn.net/rongDang/article/details/82823399
https://blog.csdn.net/rongDang/article/details/82853332
總結
以上是生活随笔為你收集整理的【Git】Git-常用命令备忘录(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 起点低,是彪悍的最好证明!
- 下一篇: 对CORS OPTIONS预检请求的一些