2017-08-17 2 views
1

私はリモートブランチに変更をプッシュしてから間違ったGitHubユーザ名を使用していたことに気づきました。成功。私はちょうどgit reset HEAD^ 私の変更をリモートにプッシュしなかった使用することができることを読んだが、リモートのリポジトリに既にコミットされたので動作しませんでした。リモートに押し込んだ後に最後のgitコミットを削除してからリモートのマスターブランチからローカルに移動する

git reset @~1を使用しました。私のローカルコミット履歴は最初のものに戻って、最初のものからコミット履歴全体が消去されました。私の目標は最後のコミットだけだったので、私はgit pull origin mastergit fetch --all私のローカルにリモートのリポジトリを取得するが、それはローカルでコミット履歴を更新しませんでした。

どうすればよいですか: 1)ローカル履歴をリモート履歴と一致させてローカルコミット履歴を更新しますか? 2)リモートリポジトリで最新のコミットをコミットしますか?

最後に、別のユーザーがコミット履歴を削除しても問題はありますか(どちらにもかかわらず)。

答えて

1

変更を既にプッシュしているので、変更履歴を変更する必要はありません。

git push -f origin <branch name that you want to push> 

-fオプションは、リモートリポジトリに変更を強制的に:しかし、あなたは本当に、今あなたが持っているあなたはあなただけで実行することができますしたい状態にローカルリポジトリをリセットしたい場合。

これを行う適切な方法は、コミットを元に戻すことです。コミットを元に戻すと、元に戻すコミットと逆の新しいコミットが作成され、履歴を変更せずに変更を効果的に消去します。

  • 最初のshaを取得し、あなたがローカルで `gitのは、通常は変更git push origin <branch you want to push>
  • プッシュを元に戻す(それも最後にコミットする必要はありません)
  • は、コマンドを実行元に戻すコミット

ここでは強制的に押すことはありません。歴史の書き直しはありません。

ユーザー名の違いは、使用するユーザー名やメールアドレスの違いがほとんどありません。彼らは情報的なので、あなたのgitの設定で。 gitの設定で自分の名前と電子メールを好きなものに変更することができます。これはgitログに表示されます。この理由から、コミットのGPG署名を使用して、そのコミットを行った人物が実際に自分の人物であることを実際に検証することができます。 description of signing hereが表示されます。

関連する問題