ホームページ >開発ツール >Git >gitでコミット時間を変更する方法

gitでコミット時間を変更する方法

WBOY
WBOYオリジナル
2022-07-01 10:30:1215652ブラウズ

git では、「git commit --amend」コマンドを使用してコミット時刻を変更できます。このメソッドは、最新の送信の日付を変更するだけでなく、指定した送信の日付も変更できます。ここでの日付の形式は「ISO-8601」形式である必要があり、構文は「GIT_COMMITTER_DATE="time" git commit --amend --date="time"」です。

gitでコミット時間を変更する方法

この記事の動作環境: Windows 10 システム、Git バージョン 2.30.0、Dell G3 コンピューター。

git でコミット時刻を変更する方法

1. 最新のコミットの作成者日付と送信者日付を変更します

必要な場合は、最新のコミットの作成者を変更します。日付と送信者の日付については、git commit --amend を直接使用してください。

注: 日付形式は ISO-8601 形式である必要があります

GIT_COMMITTER_DATE="2017-10-08T09:51:07" git commit --amend --date="2017-10-08T09:51:07"

2特定の投稿の作成者日付と投稿者の日付を変更する

特定の投稿の作成者日付と投稿者日付 (最新または最近ではない) を変更したい場合は、次のようにします。インタラクティブ リベースを使用できます:

  • git rebase -i COMMIT_SHA を実行します。この COMMIT_SHA は、変更するコミットの前のコミットのコミット SHA です。

    vi ポップアップの対話型情報で、変更する日付を変更します。コミット前のピックが e
  • 日付変更コマンドを実行します。 GIT_COMMITTER_DATE="2017-10- 08T09:51:07" git commit --amend --date="2017-10- 08T09:51:07"
  • git rebase を実行 -- 次のコミットに進む
  • すべてのコミットが変更されるまで、このプロセスを繰り返します。進行状況は git status で確認できます。
  • 3. 変更例

現在の git ログ送信情報は次のとおりです

admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master)
$ git log --oneline
2fe64c4 (HEAD -> master) modify Readme.md 3
6b98331 modify Readme.md 2
98ddd80 modify Readme.md 1
fcfc064 add Readme.md

6b98331 の変更が Readme に必要であると仮定しますコミット md 2

の作成者日付と送信者日付 変更手順は次のとおりです:

対話型リベース コマンド git rebase -i 98ddd80

## を実行します。 #ポップアップ vi エディターで、情報内で、6b98331 が送信される前に選択を e に変更して、次を実行します。 wq Save

e  6b98331 modify Readme.md 2      # 此处原为pick,将pick修改为e / edit
pick 2fe64c4 modify Readme.md 3
# Rebase 98ddd80..2fe64c4 onto 98ddd80 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit&#39;s log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with &#39;git rebase --continue&#39;)
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit&#39;s
# .       message (or the oneline, if no original merge commit was
# .       specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.

Execute GIT_COMMITTER_DATE="2021-10-22T15:10:07" git commit --amend --date="2021 -10-22T15:10:07" 作成者日付と送信者日付の両方を 2021-10-22T15:10:07 に変更します。次に、ポップアップの vi 情報編集ウィンドウでコミット ログを変更することを選択できます。その後、:wq を実行して

を保存し、次に git rebase を実行します -- すべての変更が完了するまで次のコミットに進み続けます。保存されました。完了後、git log を使用して送信情報を表示すると、送信情報が変更されていることがわかります。

上記の例の完全なログは次のとおりです。

admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master)
$ git log --oneline
2fe64c4 (HEAD -> master) modify Readme.md 3
6b98331 modify Readme.md 2
98ddd80 modify Readme.md 1
fcfc064 add Readme.md
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master)
$ git rebase -i 98ddd80
Stopped at 6b98331...  modify Readme.md 2
You can amend the commit now, with
  git commit --amend
Once you are satisfied with your changes, run
  git rebase --continue
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master|REBASE 1/2)
$ GIT_COMMITTER_DATE="2021-10-22T15:10:07" git commit --amend --date="2021-10-22T15:10:07"
[detached HEAD 137f41d] modify Readme.md 2
 Date: Fri Oct 22 15:10:07 2021 +0800
 1 file changed, 16 insertions(+)
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master|REBASE 1/2)
$ git status
interactive rebase in progress; onto 98ddd80
Last command done (1 command done):
   edit 6b98331 modify Readme.md 2
Next command to do (1 remaining command):
   pick 2fe64c4 modify Readme.md 3
  (use "git rebase --edit-todo" to view and edit)
You are currently editing a commit while rebasing branch 'master' on '98ddd80'.
  (use "git commit --amend" to amend the current commit)
  (use "git rebase --continue" once you are satisfied with your changes)
nothing to commit, working tree clean
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master|REBASE 1/2)
$ git rebase --continue
Successfully rebased and updated refs/heads/master.
admin@DESKTOP-PC MINGW64 /e/TestProj/ModifyTimeTest (master)
$ git status
On branch master
nothing to commit, working tree clean

推奨される学習: "

Git チュートリアル

以上がgitでコミット時間を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。