日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git checkout 会把改动带过去吗_原创 | 操作失误不要慌,这个命令给你的Git一次反悔的机会...

發布時間:2025/3/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git checkout 会把改动带过去吗_原创 | 操作失误不要慌,这个命令给你的Git一次反悔的机会... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方藍字,關注并星標,和我一起學技術。

今天我們來介紹git當中兩個非常非常好用的工具,git show和reflog。

這兩個命令雖然不是必知必會,但是如果熟練使用可以極大地幫助我們查看代碼倉庫的問題,以及在我們操作失誤的時候拯救我們。可以理解成應急技能,一般情況下用不到,關鍵時候會的話可以救命的那種。

git show

首先來聊聊git show,它解決了我們日常開發場景當中非常常見的一個問題,就是回看某一個提交的內容。我們通過git log只能閱讀到commit的時候輸入的提示語。但有些開發者不遵守規范,或者是提示語寫得非常簡略,我們很難get到其中的內容,還是得需要手動checkout過去查看內容,這就非常的不方便。

而有了git show工具之后,我們可以直接通過git show命令查看到代碼層面的改動

git show接收一個參數,表示具體的commit id,比如:

git?show?40a91193d

那么git會自動展示出這個commit下所有的改動內容:

這個大家都很好理解,但是有一個小問題,就是我們怎么知道我們要看的提交的id呢?所以我們需要先查到commit id,才能git show,否則盲目亂show一通也很花時間。

查找commit id,我們之前介紹過,這里再簡單提一下。一般來說有兩種參數非常好用,第一種是--stat參數,它可以列舉出每一個commit具體到文件級別的改動:

第二個參數是pretty=oneline,它可以將git的提交記錄壓縮成一行,方便我們快速查找提交時的備注。

我們之前介紹過,在git實現的內部,分支其實只是一個指向節點的指針。所以我們也可以用git show + 分支名的方法來查看某一個分支的改動,這樣查找出來的改動是這個分支最后一個提交節點的。

比如:

git?show?test

展示的就是test這個分支最后一個提交的改動,如果我們想要查看test分支倒數第二個節點的改動呢?這就需要我們使用祖先引用了。我們之前也介紹過,我們有兩種方法可以表示一個節點的祖先。第一種方法是使用^這個符號,它表示某個節點的父節點。這個符號是可以重復引用的,比如我們要選擇倒數第三個節點,就可以寫成test^^。

第二種方法就是使用~,它和^的意思是一樣,一樣表示父節點,但是它可以后面跟一個數字表示嵌套。舉個例子,比如test^^它等價于test~2。

所以比如我們想要查看test分支倒數第三個節點的提交,我們只需要這樣就可以了:

git?show?test~3

git reflog

今天我們要介紹的第二個功能叫做reflog,這是一個非常非常有用的功能,很多次救了我的命。

reflog是reference log的縮寫,含義是引用日志,它會記錄下HEAD節點和分支引用所指向的歷史。我們可以使用git reflog命令來查看引用日志:

簡單解釋一下這個展示出來的日志,它最左側一列表示commit id。它的第二列表示的是分支,也就是這個提交屬于哪一個分支。第三列表示的是相對位置,也就是它相對于現在HEAD指針的位置。最后一列是信息,它記錄的是HEAD指針移動的情況

當我們使用reset或者是checkout等命令的時候,都會在這里留下記錄。當我們想要反悔了,我們可以通過reflog迅速找到正確的位置。

這個經常出現,比如我們checkout到了一個過去的節點查看了一些代碼,或者是使用了reset了過去的節點。當你查看完了想要回去的時候,你會發現你回不去了。使用git log只會展示再之前的日志,因為git log是以HEAD節點往前輸出的。所以這個時候我們就只能查看reflog,找到我們checkout過來的commit id,然后再通過checkout將HEAD指針移動過去。

也就是說reflog給了你一次后悔的機會,這也是我們之前說的,只要是提交過的代碼,一般情況下都不會丟失,因為我們還可以通過reflog進行查找。

今天的文章就到這里,怎么樣,你學會了嗎?如果還喜歡今天的內容的話,請來一個三連支持吧~(點贊、在看、轉發)

- END -

總結

以上是生活随笔為你收集整理的git checkout 会把改动带过去吗_原创 | 操作失误不要慌,这个命令给你的Git一次反悔的机会...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。