<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 提交代碼之后的幾種后悔藥

          共 1810字,需瀏覽 4分鐘

           ·

          2020-11-13 15:38

          1. 前言

          寫代碼都會犯錯誤,不小心提交了一個錯誤我該怎么辦?提交的描述信息我該怎么辦?如果你也遇到這個問題,那么今天胖哥分享的這篇文章將非常適合你。

          DD自研的滬牌代拍業(yè)務,點擊直達

          2. Commit 錯了怎么辦

          放心都是有后悔藥吃的,我們來看看。

          場景一

          假如你git commit了一堆代碼,但是你發(fā)現(xiàn)本次Commit的描述信息有點隨意,你可以這樣:

          git?commit?--amend?-m“新的提交消息”

          場景二

          你本來打算Commit五個文件,但是由于疏忽你Commit了四個。當然你可以再Commit一次來進行彌補這個失誤。但是多了一次Commit,按道理它們應該在一次Commit中。git commit --amend也能幫你解決這個問題:

          git?add?忘記提交的文件
          git?commit?--amend?--no-edit

          場景三

          有些項目比較嚴格,對提交者的信息(author)有要求。如果你Commit的作者不規(guī)范,也可以通過git commit --amend來解決:

          git?commit?--amend?--author“felord

          盡量確保這些錯誤在你本地提交時修復,推送到遠程時使用amend命令將會使得代碼歷史變得混亂。另外git commit -am可不是git commit --amend的簡寫。

          場景四

          提交錯了想撤回本次提交,無論是撤回遠程的還是本地的,你可以使用git reset搞定,如下面這個例子:

          git?log
          #?最新的
          commit?e49850be48f25d58b977b778d59c48a41e482bb4?(HEAD?->?master)
          Author:?felord.cn?
          Date:???Sun?Nov?1?23:39:33?2020?+0800

          ????'readme'
          #?次新的
          commit?8e7089f62ad8588f5710f23d6a8ce1158490032b?(origin/master,?origin/HEAD)
          Author:?felord.cn?
          Date:???Sun?Nov?1?22:06:21?2020?+0800

          通過git log我們查詢獲得了最新的兩次提交,但是最新的提交e49850be48f25d58b977b778d59c48a41e482bb4?我們想撤回,也就是把最新的提交移動到第二個上面。我們只需要執(zhí)行?git reset --soft 目標提交commitId,上述例子中的commitId=8e7089f62ad8588f5710f23d6a8ce1158490032b?。

          git reset有四種模式?softmixedhardkeep,說明如下:

          借用IDEA的說明

          git revert?也能實現(xiàn),區(qū)別在于revert會產(chǎn)生一次Commit,需要填寫提交信息。

          場景五

          代碼已經(jīng)推送到遠程服務器了,我想撤回某個文件,你可以這么操作:

          #?查看文件歷史版本
          git?log?
          #?回滾到指定commitId
          git?checkout??
          #?提交被修改的文件
          git?commit?-m?'回滾特定文件的變動'
          #?推送
          git?push

          3. 總結(jié)

          我經(jīng)常用的也就這些了,但是吃后悔藥的時候一定要小心,最好拉一個新分支在新分支上試試,不要強吃后悔藥,不然你會后悔的。目前像 IDEA 都是可視化操作你可以不用命令操作,不過胖哥個人覺得這些命令還是要熟悉的。好了今天的分享就到這里,多多下方公眾號:碼農(nóng)小胖哥?獲取更多的干貨知識。



          往期推薦

          JIRA、Confluence等產(chǎn)品明年2月停售本地化版本,將影響中國近90%的客戶!

          妙用 Intellij IDEA 創(chuàng)建臨時文件,Git 跟蹤不到的那種

          Spring Boot 無侵入式 實現(xiàn) API 接口統(tǒng)一 JSON 格式返回

          isEmpty 和 isBlank 區(qū)別?

          國內(nèi)首個比特幣勒索病毒制作者落網(wǎng),但過程有點好笑...

          TIOBE公布11月榜單:Python勢不可擋,超越Java !


          深度內(nèi)容

          推薦加入





          阿里云全線產(chǎn)品超低價,點擊“閱讀原文”進入

          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  青春草在线免费视频 | 国产大鸡吧| 国产亚洲欧美性爱 | 亚洲无码在线直播 | 国产一级丝袜片AⅤ |