<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命令速查表

          共 3470字,需瀏覽 7分鐘

           ·

          2020-10-15 05:31

          英文 |?https://medium.com/swlh/git-ready-a-git-cheatsheet-of-commands-you-might-need-daily-8f4bfb7b79cf


          我每天都使用Git。

          我想,大多數(shù)軟件開發(fā)人員也是如此。

          老實說,萊納斯·托瓦爾茲(Linus Torvalds)的小項目幾乎感覺像是一個奇跡。

          但是,該工具功能強大且使用廣泛,以至于很容易在其所有可能的命令中迷失方向。

          因此,根據(jù)我自己的經(jīng)驗,以下是我經(jīng)常遇到的關于"如何使用Git進行X運算"的常見問題的解答。我們中有些人甚至可能每天使用這些解決方案。

          確實,這里解決的許多命令將非常簡單,并且通常為大多數(shù)開發(fā)人員所熟知。

          但是,我認為這對于記住一處你遺忘的命令可能是一個一站式服務的場所,并且為初學者提供了良好的基礎。

          相反,如果您希望深入了解Git,可以查看這篇文章(地址:https://levelup.gitconnected.com/learning-the-internals-of-git-by-hacking-websites-c70c59303b12)。

          Git速查表

          在不提交更改的情況下存儲更改

          這是一個簡單的示例,只需運行:

          git stash

          然后,要恢復這些存儲的更改,并確保你位于同一分支,可以運行:

          git stash apply

          干掉所有未提交的更改

          有時你想嘗試一些方法,但效果不佳。要擺脫自上一次提交以來所做的所有更改,只需運行:

          git checkout -- .

          要僅清除特定文件或目錄中的更改,請??梢蕴鎿Q為您希望從中刪除更改的文件和/或目錄的列表。

          將fork與主倉庫同步

          分支項目時,請務必保持最新狀態(tài),以避免在發(fā)出請求時出現(xiàn)復雜的合并沖突,或者只是確保您具有所有新功能和安全補丁。

          因此,這是同步叉子的方法:

          1、添加一個遠程倉庫

          從分支的位置獲取上游(主)存儲庫的地址。然后運行以下命令,替換URL:

          git remote add upstream 

          你可以通過運行git remote -v來檢查是否有效。

          2、將fork與上游倉庫同步

          要同步派生,請獲取上游存儲庫:

          git fetch upstream

          然后,在你要與之同步的分支(通常是主節(jié)點)上,運行:

          git merge upstream/master

          或git根據(jù)你選擇的策略對上游/主服務器進行重新設置。

          刪除最后的X次提交

          做出一些你最終需要還原的提交?你可以通過兩種方式進行操作:

          git reset HEAD~2 # undo the commits but keep the changesgit reset --hard HEAD~2 # undo the commits and discard changes

          使用第二個選項,就好像提交從未發(fā)生過。

          你應該將2替換為你希望從最新提交(HEAD)返回的提交數(shù)。

          將各種提交壓縮為一個(無需重新設置?。?/span>

          如果你想擺脫所有的"修訂錯誤"提交,并將它們?nèi)亢喜橐粋€,則可以使用以下方法:

          git reset --soft HEAD~2 && git commit -m "your message"

          請記住將2替換為您要從HEAD計數(shù)的提交次數(shù)。

          在上一次提交時簽出項目的狀態(tài)

          要返回過去查看過去一次給定提交的項目狀態(tài),請首先運行git log以查看提交歷史記錄,然后選擇要返回的提交。

          然后,復制其哈希并僅運行git checkout 。這將使你處于"分離頭"模式。要返回,只需按名稱簽出分支即可。

          忽略已經(jīng)添加到Git的文件

          我們到過那里-添加或提交我們不應該擁有的東西。要將文件從Git跟蹤中刪除并保留在系統(tǒng)中,只需執(zhí)行以下操作:

          git reset <file> && echo <file> >> .gitignore

          提交后添加到提交中

          如果要更改提交消息或向其中添加新文件,可以使用git ammend。

          要更改消息,請使用:

          git commit --amend -m ""

          并向上一次提交添加新文件:

          git add  && git commit --amend

          請注意,這"省去了創(chuàng)建新提交的麻煩",但實際上確實在后臺創(chuàng)建了新提交。因此,只有在尚未將更改推送到遠程存儲庫時,才應該這樣做。

          從Git刪除文件并修剪其整個歷史記錄

          如果你曾經(jīng)將敏感數(shù)據(jù)推送到遠程存儲庫(例如,在GitHub上),則不僅需要從Git跟蹤中刪除文件,還需要刪除其整個歷史記錄。

          你也不應該再使用該數(shù)據(jù),例如在使用API密鑰,密碼等的情況下。

          這樣做的過程并不是最簡單的,但是GitHub已經(jīng)編寫了一個整頁的教程,因此我認為我應該在這里鏈接它。

          "從存儲庫中刪除敏感數(shù)據(jù)-GitHub"。(地址:https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/removing-sensitive-data-from-a-repository

          記錄合并沖突解決方案

          為了避免多次解決相同的確切合并沖突,可以啟用合并沖突解決方案的Git緩存。這將存儲合并沖突的解決方式,如果再次出現(xiàn),將自動解決相同的沖突:

          git config --global rerere.enabled true

          在Git Docs上了解有關此內(nèi)容的更多信息。

          錯誤分支上的提交

          如果你在錯誤的分支上進行了提交,則應該能夠使用我們有關刪除提交的知識來解決該問題,如下所示:

          git branch <new_branch> && git reset HEAD~2 --hard

          這將創(chuàng)建一個新分支,并從你錯誤地添加了提交的當前分支中刪除指定數(shù)量的提交。

          如果你實際上希望這些提交在現(xiàn)有分支上而不是在新分支上進行,則可以執(zhí)行以下操作:

          git checkout <desired_branch> && git merge <branch_with_commits>git checkout <branch_with_commits> && git reset HEAD~2 --hard

          但是,如果不能合并,則可以使用git cherry-pick,如下所示:

          git checkout <desired_branch>git cherry-pick <branch_with_commits> <branch_with_commits>~2git checkout <branch_with_commits> && git reset HEAD~2 --hard

          更改分支名稱

          要更改分支的名稱,請使用git branch -m。你可以更改當前分支的名稱:

          git branch -m <new_name>

          或更改任何分支的名稱:

          git branch -m <old_name> <new_name>

          查找?guī)в绣e誤的提交

          如果你遇到與提交無關的問題,則需要確定過去是哪種提交導致了此問題。這在測試中很常見,例如,由于一項與你的工作完全無關的測試而無法通過時。

          在這種情況下,要查找"不良"提交,可以使用git bisect。

          它的工作方式如下:

          1、開始過程

          git bisect start

          2、將當前提交標記為"不良"

          git bisect bad

          3、將過去的提交標記為"良好"

          例如,使用git log查找過去的提交,其中事情按預期進行(即良好)。然后,運行:

          git bisect good <commit_hash>

          4、平分秋色!

          你現(xiàn)在應該收到以下消息:

          Bisecting: 2 revisions left to test after this (roughly 3 steps)[6ca4a67aeb4b0d9835ecf15e44505c48f93642c9] my-branch

          數(shù)字,哈希和分支名稱自然會與您不同。

          在這里,Git正在做的事情是一步一步地完成提交,直到找到被破壞的提交為止。你無需運行git checkout,因為它已為你處理。

          在每次提交時,都應檢查一切是否正常。如果不是,請使用git bisect bad將提交標記為錯誤。如果是,則使用git bisect good將其標記為好。

          將提交標記為良好后,Git會將您帶到第一個"不良"提交(即,你標記為不良的最后一個),以便你可以正確地調(diào)查錯誤。完成后,只需通過簽出分支(git checkout )返回分支的頭并解決問題。

          以上就是我解決問題的方案。Git是一個很棒的工具,我希望這個備忘單可以幫助你解決一路上可能遇到的一些問題。

          它絕對不會涵蓋你需要了解的所有內(nèi)容,但這是一個好的開始。

          感謝你的閱讀,并在留言區(qū)告訴我,你最喜歡的Git命令。


          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  亚洲第一毛片 | 亚洲天堂中文字幕在线观看 | 美女啪啪啪免费网站 | 视频在线精品 | 国产综合在线色 |