2011-12-31 5 views
1

に私はChange old commit message on Gitから段階を追った、と私はgit logで更新コミットメッセージを確認しました。しかし、Githubの「Commit History」タブをクリックすると、古いメッセージと古いSHA-1が表示されます。はgitlogでOKコミットメッセージを変更しなくgithubの

だから、私は盲目的にgit push origin masterを試してみましたが、それは失敗しました:

To [email protected]:foobar.git 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]:foobar.git' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 

エラーが「再びプッシュする前に、リモートの変更をマージ」を私に伝えますが、それは行うには間違ったことのように思える:新をマージ修正されたコミット(古いベースから)よくわかりません。

どのように私は私の改正メッセージをコミットすることができますか? @xsaceが言うように、あなたがここに歴史を書き換えている

git push --force 

答えて

4

は、あなたが呼び出す必要があります。

Aはgitのコミットにいくつかにリンクされている:

  • コミットメタデータ(著者、コミッタ、タイムスタンプ、メッセージをコミット)。
  • 親がコミット(またはそれがマージされた場合commit_s_)。
  • 木。

あなたはこれらのいずれかを変更する場合は、あなたがここにいたあなたの歴史、(あなたがコミットメッセージを変更)してgithubのの(またはそのことについては、他のリモートの)分岐:

ここ
[parent]----[[email protected]] 
    \ 
    \------[your local master] 

、あなたはgithubのにyourlocalmasterをプッシュするが、これは早送りないが、githubのに現在のマスターヘッドがあなたのコミットの直接の親ではない、すなわち。したがって、強制的に押す必要があります。

これはgit push github +masterでもを行うことができます。

+0

ありがとうございました。 – user748113

2

:あなたは歴史を書き換えている場合

関連する問題