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