<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Git 常用命令,每條都很重要!

          共 2049字,需瀏覽 5分鐘

           ·

          2022-02-27 02:33



          這篇文章系統(tǒng)性的總結(jié)下 git 常見命令的使用方法。

          1. 背景需求

          今年以來幫助實(shí)驗(yàn)室的博士生做了兩篇論文的實(shí)驗(yàn)。做 paper 的實(shí)驗(yàn)有一個(gè)特點(diǎn):需求會(huì)經(jīng)常變動(dòng),經(jīng)常是這種方法效果不行,那就需要換另外一種方法進(jìn)行試驗(yàn)。導(dǎo)致的結(jié)果就是代碼會(huì)經(jīng)常變動(dòng),并且這次改動(dòng)之后以后還有可能需要改動(dòng)回來,因?yàn)橐恢睕]有用上 git,所以就顯得代碼非?;靵y。

          最后非常尷尬的局面就是:今天需要嘗試下這個(gè)方法能不能 work,需要將整個(gè)項(xiàng)目的代碼過一遍,保證當(dāng)前的代碼、當(dāng)前需要執(zhí)行的程序、當(dāng)前的參數(shù)是和這個(gè)需求符合的;明天可能又換了一種方法;后來又需要重新切換會(huì)第一天的方法,又得整個(gè)把代碼給過一遍,將一些注釋給重新注釋回來,反正就是非常非常麻煩,人工一遍一遍進(jìn)行代碼控制非常累。

          但是在實(shí)驗(yàn)過程中間又不想去使用新的技術(shù),即使使用 git 是一件非常直覺的事情,知道 deadline 也沒有用 git 來管理項(xiàng)目代碼……

          paper 投出去之后,就覺得將 git 使用熟練真的太太太重要了。

          2. 常見命令使用方法

          創(chuàng)建一個(gè) git 倉庫

          手下,我們可以在 github 上面找到任意一個(gè) repository,在本地 git clone 下來(注意,不是下載 github 上面的 .zip 壓縮包),那么這個(gè)項(xiàng)目對應(yīng)的文件夾本身就是一個(gè) git repository。

          如果我們從零開始創(chuàng)建 git 倉庫,也很簡單,先新建一個(gè)文件夾,進(jìn)入文件夾,然后:

          git?init??

          就會(huì)在當(dāng)前文件夾下面生成?.git?文件夾,默認(rèn)是不可見的。這個(gè)?.git?就是用來存儲(chǔ)我們對目錄文件的所有操作歷史的。

          git add?&?git commit

          這里首先需要解釋下 git 的工作原理,如下圖所示:

          當(dāng)我們使用?git add xxx.txt?命令時(shí),當(dāng)前對?xxx.txt?的修改將會(huì)被提交到?staging area;接著當(dāng)我們繼續(xù)使用?git commit -m "message"?時(shí),這個(gè)修改才會(huì)被提交到 repository。

          • add 單個(gè)文件:
          git?add?xxx.txt?#?xxx.txt?是文件名??
          • add 多個(gè)文件
          git?add?*?#?or?git?add?.??

          git commit 時(shí)必須要帶入提交信息(commit message):

          git?commit?-m?"your?message?about?this?commit"??

          git status?&?git diff

          要查看當(dāng)前 repository 的狀態(tài):

          git?status??

          如果要查看某個(gè)文件前后兩次修改的差異:

          git?diff?xxx.txt??

          git log?&?git reflog

          查看我們 commit 的歷史,可以:

          git?log??

          因?yàn)?git log 輸出的信息很多,如果只想要簡潔的輸出,可以:

          git?log?--pretty=oneline??

          假設(shè)我們現(xiàn)在有這樣一串提交歷史:

          a1?->?a2?->?a3?->?a4?->?a5??

          我們從?a5?回退到?a3,這時(shí)候使用?git log?將只能查看到?a1?a2?a3?這 3 次的提交歷史,a4?a5?的提交歷史是查看不到的。這時(shí)候,如果我們改變主意,又想從?a3?回到?a5?該怎么辦呢,就可以使用:

          git?reflog??

          可以查看所有的提交歷史記錄。我們只需要知道我們在?a5?時(shí)的?commit message?然后找到對應(yīng)的?commit id,就可以回退到?a5。

          下面具體講怎么進(jìn)行版本回退或者版本切換。

          git reset

          和之前一樣,假如我們有下面這一串 commit 的歷史,我們希望從?a5?回退到?a3。

          a1?->?a2?->?a3?->?a4?->?a5??

          首先在?a5?我們輸入?git log?查看?a3?對應(yīng)的?commit id,是一段很長的字母數(shù)字序列,假設(shè)前 4 位是?ab42,并且在所有的 commit id 里面是唯一的(方便我們做簡寫)。

          接著執(zhí)行:

          git?reset?--hard?ab42?#?commit?id?不用寫全,寫明能夠標(biāo)識該?commit?id?的前幾位即可??

          我們還有更方便的方法,可以不用知道?commit id?:

          git?reset?--hard?HEAD^^??

          其中?HEAD^^?標(biāo)識我們切換會(huì)上上一個(gè)版本。如果指向切換為上一個(gè)版本,也就是?a4,那可以:

          git?reset?--hard?HEAD^??

          來源:https://tanjuntao.github.io/





          如有文章對你有幫助,

          在看”和轉(zhuǎn)發(fā)是對我最大的支持!

          一款牛逼的Java面試題庫,點(diǎn)擊下圖查看詳細(xì)內(nèi)容


          瀏覽 23
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  肏屄视频网址 | 国产裸体XXXX187 | 欧美性爱福利视频 | 偷拍色区图 | 操操网继续操用力豆花 |