17
A
回答
11
你可以用MQ(水銀隊列)輕鬆地做到這一點:
設置了錯誤的日期回購
+ hg init
+ echo line
+ hg commit -A -d 12/1 -m first
adding file
+ echo line
+ hg commit -A -d 12/2 -m second
+ echo line
+ hg commit -A -d 12/3 -m third
+ hg log
changeset: 2:81c88de729a8
tag: tip
user: Ry4an Brase <[email protected]>
date: Thu Dec 03 00:00:00 2009 -0600
summary: third
changeset: 1:c1fe70008824
user: Ry4an Brase <[email protected]>
date: Wed Dec 02 00:00:00 2009 -0600
summary: second
changeset: 0:abb97adaa541
user: Ry4an Brase <[email protected]>
date: Tue Dec 01 00:00:00 2009 -0600
summary: first
打開的變更到補丁隊列
+ hg qimport -r 2
+ hg qimport -r 1
+ hg qimport -r 0
使每個依次修補qtip並修復日期
+ hg qrefresh -D
+ hg qpop
Now at: 1.diff
+ hg qrefresh -D
+ hg qpop
Now at: 0.diff
+ hg qrefresh -D
重新應用補丁
+ hg qpush
applying 1.diff
Now at: 1.diff
+ hg qpush
applying 2.diff
Now at: 2.diff
打開每個補丁回到現實的變更
+ hg qdel -r 0
+ hg qdel -r 1
+ hg qdel -r 2
要好:
+ hg log
changeset: 2:6b51e14aadfc
tag: tip
user: Ry4an Brase <[email protected]>
date: Wed Feb 25 22:29:01 2009 -0600
summary: third
changeset: 1:5cbb9fc51bcc
user: Ry4an Brase <[email protected]>
date: Wed Feb 25 22:29:02 2009 -0600
summary: second
changeset: 0:ec58d1f24278
user: Ry4an Brase <[email protected]>
date: Wed Feb 25 22:29:02 2009 -0600
summary: first
10
還有標誌爲hg commit
,這是你如何覆蓋提交時間。問題在於如何在沒有工具太多痛苦的情況下重新承諾早期的更改
讓我們假設你得到本地提交下列病史:
dir1> hg commit # r100, OK
dir1> hg commit # r101, need to fix time
dir1> hg commit # r102, need to fix time
這裏是我的解決方案:
hg diff -r100:101 > 101.diff
hg diff -r101:102 > 102.diff
cd ..
hg clone -r100 dir1 dir2 # create a copy just before changesets than needs to be fixed
cd dir2
patch -i ../dir1/101.diff
hg commit -m "Same commit message" --date="required date"
patch -i ../dir1/102.diff
hg commit -m "Same commit message" --date="required date"
cd ..
rm -rf dir1 && mv dir2 dir1 # replace working copy
您可以自動與hg patch
補丁的應用程序,我沒有在我的實踐中使用且。
8
如果它只是一個單一的承諾,這承諾是最近一個(無論你在哪一個分支上),這樣做的快速單線是:
hg commit --amend -d now
相關問題
- 1. 如何找出尚未推送或拉出的提交?
- 2. 如何撤消尚未推送的提交?
- 3. 如何查看尚未推送的提交列表?
- 4. Git - 將未提交的更改推送到以前的提交
- 5. Git - 推送新提交併忽略未提交的更改
- 6. 如何放棄尚未提交的所有Mercurial更改
- 7. 從尚未推送的舊提交中移除文件(Git Extension)
- 8. 推送其他人提交的更改
- 9. 撤銷更改(提交併推送)
- 10. 更改推送提交的git註釋
- 11. Git:如何訪問另一個提交文件,但尚未推送
- 12. 如何在Git中顯示所有已提交但尚未推送的內容?
- 13. 如何善變取消提交我的最後一次提交(尚未推)
- 14. onchange在表單尚未提交時提交但尚未正常工作
- 15. 意外推送提交:更改git提交消息
- 16. 如何在形式不提交尚未
- 17. 基於舊提交推送更改,如何解決?
- 18. 如何提交併使用Git推送更改
- 19. 不推/提交更改
- 20. 在遠程提交和推送時放棄本地git更改
- 21. 使用LibGit2Sharp,Status命令是否顯示已提交但尚未推送的更改?
- 22. 何時提交更改?
- 23. 修改推送提交消息
- 24. 刪除尚未推送的文件
- 25. 推送過時的更改
- 26. 如何檢測提交可以推送
- 27. 如何不推送給定的提交
- 28. 修改推送提交的提交消息。 (Mercurial)
- 29. SVN:如何重新打造了創建但未提交尚未
- 30. hg回滾推送提交更改階段公開
一個簡單而乾淨的方式。謝謝! – 2009-02-26 12:09:56
您可以使用「hg strip」刪除有問題的修訂而不是克隆。 – skypher 2009-03-01 13:25:10