2015-12-03 9 views
7

コミットをGitリポジトリに作成したいが、コミットの作成者に関連付けられた名前と電子メールを情報と異なるものにする通常私と関連付けられています。特定のコミットの*、*コミット前の名前、電子メール、および/または日付を変更する

コミットのタイムスタンプを現在の現地時間と異なるものにしたいと思います。

がこの情報を変更すると、プロジェクトの履歴を書き直すことができます。しかし、私はまだコミットしていない。この情報を変更する方法はありますか?私がコミットする時に

+1

私はすでに私の質問への答えを知っているが、StackOverflowの上で答えを見つけるのに苦労していました。[今後のプログラマーのために役立つと思われる質問と回答を投稿しています。](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your- – Kevin

答えて

1

コミット中に適切な環境変数を設定することもできます。ドキュメントから:Gitリポジトリの最後の作成がコミット[1]

[...]これらが存在しない場合にのみ、設定値にフォールバック、情報のその主要な供給源として、これらの環境変数を使用しています。

  • GIT_AUTHOR_NAME
  • GIT_AUTHOR_EMAILは、「著者」フィールドに
  • GIT_AUTHOR_DATEは、著者フィールドに
  • GIT_COMMITTER_NAMEを使用したタイムスタンプである電子メールで「作者」フィールドに、人間可読な名前です"コミッター"フィールドの人名を設定します
  • GIT_COMMITTER_EMAILは、 "コミッター"フィールドの電子メールアドレスです
  • GIT_COMMITTER_DATEは「コミッター」フィールドにタイムスタンプのために使用されている

例:

GIT_AUTHOR_NAME="foo" GIT_AUTHOR_EMAIL="bar" git commit -m "baz" 
+0

コミッターとメタデータの変更方法について説明しているので、私はWhymarrhの答えを受け入れていますが、私は著者のメタデータだけを変更します。 – Kevin

7

、コミットの作者を変更git commit --authorを使用するには:

git commit -m "A commit with a different author" --author="Your name here <[email protected]>" 

コミットの日付を変更するには、git commit --date="YYYY-MM-DD HH:MMxmを使用します。

git commit -m "A commit made to celebrate Christmas" --date="2015-12-25 12:00am" 

これらのオプションを組み合わせることができます。

git commit -m "Ho ho ho" --author="Santa Claus <[email protected]>" --date="2015-12-25 12:00am" 

git mergeコマンドには、--authorおよび​​オプションがありません。限りマージが作成されたコミットとして、マージのコミットのメタデータを変更するためにプッシュする前にgit commit --amendを使用することができ、その後

git merge other_branch 

:マージコマンドの日付や作者を変更するには、まず定期的にマージを行う

git commit --amend --author=... --date=... 
+0

タイムゾーンの設定方法を含め、 '--date'オプションの形式の詳細については、この質問を参照してください:https://stackoverflow.com/questions/19742345/what-is-the- git-commit-date-parameter-of-git-commit – Kevin

+0

デフォルトでは、 '--date'オプションを使うと、Gitはあなたのローカルタイムゾーンを日付として使います。 – Kevin

関連する問題