<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 目的 > 學習如何從分支移除最近的提交。 上一小節的?`revert`?是一個讓我們撤銷倉庫中的任意提交的強 大命令。然而,原始提交和“撤銷”提交在分支歷史中都可見(使 用?`git log`?命令)。 我們經常做提交,并很快意識到犯了錯誤。如果有一個“收回”命 令能允許我們假裝不正確的提交從未發生過該多好啊。“收回”命 令甚至還會阻止錯誤的提交在?`git log`?歷史中的顯示。這就 像錯誤的提交從未發生過一樣。 ### 重置命令 我們已經介紹過?`reset`?命令,并用它來設置暫存區以便與特 定的提交保持一致(我們在之前的實驗中使用?`HEAD`?提交)。 當給定提交引用(如哈希、分支或標簽名)時,`reset`?命令 將: * 重寫當前分支到指向的特定提交 * 重置暫存區到匹配特定的提交(可選) * 重置工作目錄到匹配特定的提交(可選) ### 檢查歷史 讓我們快速的檢查我們的提交歷史。 ~~~ $ git hist ~~~ ~~~ $ git hist * a10293f 2013-04-13 | Revert "Oops, we didn't want this commit" (HEAD, master) [Jim Weirich] * 838742c 2013-04-13 | Oops, we didn't want this commit [Jim Weirich] * 1f7ec5e 2013-04-13 | Added a comment (v1) [Jim Weirich] * 582495a 2013-04-13 | Added a default value (v1-beta) [Jim Weirich] * 323e28d 2013-04-13 | Using ARGV [Jim Weirich] * 9416416 2013-04-13 | First Commit [Jim Weirich] ~~~ 我們看到在該分支中的最后兩個提交為“Oops”和“Revert Oops”。 讓我們使用?`reset`來移除它們。 ### 首先,標記分支 但在我們移除提交前,讓我們使用一個標簽來標記最新的提 交以便能夠再次找到它。 ~~~ $ git tag oops ~~~ ### 重置到 Oops 前 看看上面的日志歷史,我們將知道標記為“v1”的提交是錯誤 提交之前的正確提交。讓我們重置分支到該位置。因為分支 已經標記,所以我們可以在?`reset`?命令中使用標簽名( 如果它沒有被標記,那么我們只能使用哈希值)。 ~~~ $ git reset --hard v1 $ git hist ~~~ ~~~ $ git reset --hard v1 HEAD is now at 1f7ec5e Added a comment $ git hist * 1f7ec5e 2013-04-13 | Added a comment (HEAD, v1, master) [Jim Weirich] * 582495a 2013-04-13 | Added a default value (v1-beta) [Jim Weirich] * 323e28d 2013-04-13 | Using ARGV [Jim Weirich] * 9416416 2013-04-13 | First Commit [Jim Weirich] ~~~ 我們的 master 分支現在指到 v1 提交,并且 Oops 和 Revert Oops 提 交已經不在分支中。`--hard`?參數表示應當更新工作目錄以便與新的分 支頭保持一致。 ### 什么也沒丟 但錯誤的提交發生了什么?結果是提交仍然在倉庫中。事實上,我們仍然 能夠引用它們。記得在本實驗開始我們使用標簽“oops”標記了還原的提交。 讓我們看看所有的提交。 ~~~ $ git hist --all ~~~ ~~~ $ git hist --all * a10293f 2013-04-13 | Revert "Oops, we didn't want this commit" (oops) [Jim Weirich] * 838742c 2013-04-13 | Oops, we didn't want this commit [Jim Weirich] * 1f7ec5e 2013-04-13 | Added a comment (HEAD, v1, master) [Jim Weirich] * 582495a 2013-04-13 | Added a default value (v1-beta) [Jim Weirich] * 323e28d 2013-04-13 | Using ARGV [Jim Weirich] * 9416416 2013-04-13 | First Commit [Jim Weirich] ~~~ 在這兒我們看到錯誤的提交并沒有消失。它們仍然在倉庫中。它們只是不再 列到 master 分支中。如果我們沒有標記它們,它們依然在倉庫中,但除了 使用哈希值外沒有別的方法引用它們。未引用的提交保留在倉庫中,一直到 系統運行垃圾回收軟件時。 ### 重置的危險性 在本地分支上重置一般是安全的。任何“事故”通常都能通過重置到想要的提 交來恢復。 然而,如果分支在共享的遠程倉庫上,那么重置可能使其他用戶共享的分支 混亂。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看