按当前日期和时间的提交顺序推送到远程 git 提交?
Push to remote git commits in commit order with current date and time?
有没有一种简单的方法可以在本地管理许多 git 提交,然后按照它们的创建顺序单独推送,并且在我推送时将日期和时间设置为每次提交的当前日期时间?
原始顺序和在不同时间单独执行的能力很重要。
如果解决方案有意义,我也愿意在 git 项目之上使用等效的代码版本控制工具。目标是尽可能减少压力。
您可以按照您需要的时间表照常提交您的分支机构。然后,在推送到原点之前,你可以做一个交互式的变基:
git rebase -i <first commit hash>
例如,git rebase -i HEAD~10
.
这将打开一个文本编辑器(Vim 可能),您可以在其中 select 提交并使用 edit
/[= 更改默认的 pick
选项14=] 编辑要修改日期的提交。
完成后,您可以关闭 rebase 编辑器,然后 git 将逐个提交,让您可以选择编辑它们中的每一个。对于第一个,你可以这样做:
git commit --amend --date "April 5th 2020 13:00"
然后 git rebase --continue
进入下一次提交。然后下一个,再下一个……直到你完成。
在那之后,你可以git push
到你的原始分支,或者如果你之前推送过,则强制推送。
当然,这很繁琐,所以你也可以压缩提交来减少这项工作。
有没有一种简单的方法可以在本地管理许多 git 提交,然后按照它们的创建顺序单独推送,并且在我推送时将日期和时间设置为每次提交的当前日期时间?
原始顺序和在不同时间单独执行的能力很重要。
如果解决方案有意义,我也愿意在 git 项目之上使用等效的代码版本控制工具。目标是尽可能减少压力。
您可以按照您需要的时间表照常提交您的分支机构。然后,在推送到原点之前,你可以做一个交互式的变基:
git rebase -i <first commit hash>
例如,git rebase -i HEAD~10
.
这将打开一个文本编辑器(Vim 可能),您可以在其中 select 提交并使用 edit
/[= 更改默认的 pick
选项14=] 编辑要修改日期的提交。
完成后,您可以关闭 rebase 编辑器,然后 git 将逐个提交,让您可以选择编辑它们中的每一个。对于第一个,你可以这样做:
git commit --amend --date "April 5th 2020 13:00"
然后 git rebase --continue
进入下一次提交。然后下一个,再下一个……直到你完成。
在那之后,你可以git push
到你的原始分支,或者如果你之前推送过,则强制推送。
当然,这很繁琐,所以你也可以压缩提交来减少这项工作。