文章目錄
- 7.6重寫歷史
- 7.6.1修改最近一次提交
- 本大王覺得奇怪的現象
- 7.6.2修改多個提交訊息
7.6重寫歷史
- 你想修訂提交歷史
- 你可在提交暫存區之前決定哪些檔案歸入哪些提交
- stash決定暫時擱置的作業
- 可重寫已經完成的提交,使其呈現出另一種完成方式
- 這些涉及改變提交次序
- 修改提交中
- 包含的資訊或檔案,壓縮、拆分、完全洗掉提交
- 這一切都可以在你尚未同他人共享作業成果之前進行
?
- 學習到如何完成這些有用的任務
- 以便在與他人共享提交歷史之前能夠將其修改成需要的樣子
7.6.1修改最近一次提交
- 你經常會對最近一次提交做兩件事:
- 修改提交訊息
- 或是修改由于檔案添加、改動、洗掉所記錄下的快照,
- 只想修改最近的提交訊息,執行以下命令即可,
git commit --amend
- 這條命令打開編輯器并在其中顯示最近的提交訊息,以供修改,
- 保存并關『閉編輯器后】
我的是直接在git bash里出來類似vim的東西呦西!
- 編輯器會寫入一個包含已修改資訊的提交,并將其作為你最近的提交
?
- 如果你已完成提交
- 但提交時忘記加入一個新創建檔案
- 希望能通過添加或更改檔案來修改所提交的快照
- 也可通過類似操作完成
- 你可通過修改檔案來暫存所需改動
- 然后對其用git add,或對一個已跟蹤的檔案使用git rm
- 隨后git commit --amend會獲取你當前的暫存區并將它作為新提交的快照
?
- 小心用這種用法
- 修正會改變提交的SHA-1值
- 像是一次微型變基
- 不要在已經推送了最近一次提交之后還去修正它
不要在push到遠程之后還去修改它是這個意思吧!
本大王覺得奇怪的現象
- 比如我這個倉庫本地commit啦!
- 然后push到遠程啦
- 這個時候你在本地想要修改本地的commit內容
- 然后git commit --amend
- 居然還和遠程的分叉了,我草你媽的啥意思啊
?
- 可是如果我本地改了
- 本地commit了
- 還沒有push到遠程
- 這個時候你可以用git commit --amend修改
- 然后再搞到遠程,就不分叉啦!
7.6.2修改多個提交訊息
- 要修改歷史記錄中較早的提交,須用復雜工具
- Git沒有歷史記錄修改工具
- 但可用變基工具將一系列的提交
- 変基到它們原來所在的HEAD上,
- 而不用移動到新位置
- 但可用變基工具將一系列的提交
- 借助互動式的變基工具
- 可在每個想要修改的提交后停下,
- 然后改變提交訊息、添加檔案或是做任何想做的事
- git base的-i
- 可將你帶入変基命令的互動模式
- 須通過告知命令需要變基到哪次提交來表明希望重寫多久遠的提交
?
- 想改變最近3次或其中任意一次的提交訊息
- 需要將待修改的最近一次提交的父提交作為引數提供給
- git rebase -i,也就是HEAD~2^或HEAD~3
- ~3更易記,
- 要修改的是最近3次提交
- 需要將待修改的最近一次提交的父提交作為引數提供給
- 你實際上指定了之前4次提交,即要修改提交的父提交
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/195010.html
標籤:其他
上一篇:2020-10-26
下一篇:智能合約Dapp系統開發(方案)
