当前位置:  开发笔记 > 编程语言 > 正文

如何更改提交时间(尚未推送)?

如何解决《如何更改提交时间(尚未推送)?》经验,为你挑选了3个好方法。

如何更改我在本地存储库中提交的时间?

假设我已经完成了几次提交,并注意到我的计算机上的日期是错误的.假设这些提交还没有推到任何地方.



1> Ry4an Brase..:

您可以使用MQ(Mercurial Queues)轻松完成:

设置一个糟糕的日期回购

+ 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 
date:        Thu Dec 03 00:00:00 2009 -0600
summary:     third

changeset:   1:c1fe70008824
user:        Ry4an Brase 
date:        Wed Dec 02 00:00:00 2009 -0600
summary:     second

changeset:   0:abb97adaa541
user:        Ry4an Brase 
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 
date:        Wed Feb 25 22:29:01 2009 -0600
summary:     third

changeset:   1:5cbb9fc51bcc
user:        Ry4an Brase 
date:        Wed Feb 25 22:29:02 2009 -0600
summary:     second

changeset:   0:ec58d1f24278
user:        Ry4an Brase 
date:        Wed Feb 25 22:29:02 2009 -0600
summary:     first



2> Eric..:

如果它只是一个单一的承诺,那承诺是最近的一次(在你在任何分支),一个快速班轮这样做是:

hg commit --amend -d now



3> Alexander Le..:

--date标志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我尚未在练习中使用的补丁.


您可以使用"hg strip"删除违规修订而不是克隆.
推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有