2016-02-21 8 views
8

私はグループで敏感なプロジェクトに取り組んでいます。私たちのすべてのソースはGithubにあります。私は最近、コミットをプッシュし、後で私のプッシュで多くの間違いがあることを認識しました。私はそれ以来、私のローカルコピーにすべての間違いを修正して、もう一度やり直そうとしています。しかし、最後のコミットをプッシュして上書きする方法はありますか?私の理由は、他の人が私の最初のコミットとその変更を調べることを望んでいません...gitで新しいものでコミットを上書きする方法は?

基本的に古いコミットを私の新しいものに上書きしたいので、古いコミットに関する情報はありません他のグループメンバーが見ることができます。

ご協力いただければ幸いです!ありがとうございました。

注:この質問には重複としてマークされています。明確にするために、私の質問は、すでにプッシュされているコミットを上書きすることです。私の質問は、間違ったコミットメッセージを変更することではありません。

+1

あなたは修正することができ、あなたのコミット( 'gitのは--amend'コミット)、またはデータが命令がhttps://help.github.com/articles/remove-sensitive-data/であるより敏感である場合。 – adrianbanks

+1

これは歴史を変えています。また、すでにもう一度コミットしているので、これはもう少し難しいでしょう。将来の参照のために、最後に行ったコミットを変更するには、 'git commit --amend'を使用してください。これはまた、強制的に押す必要があります。 –

+0

@ABMagil私の質問はコミットメッセージとは関係ありません。それは変化と歴史についてです。 – sparta93

答えて

12

通常、Github(またはパブリックレポ)に何かが出たら、を確実にする方法はありません。他に誰も悪いコミットをしていません。

単純なコード履歴が必要な場合は、ローカルでもリモートプロジェクトでも履歴を上書きする必要があります。

変更して新しくコミットを作成していない場合、古いコミットを変更するには、git commit --amendを実行します。

新しいコミットをすでに作成している場合は、git rebase -iを使用して、古いものの上にコミットすることができます。

この変更をローカルで行い、コミットがあなたの望むようになったら、git push --forceにGithubリモートの履歴を上書きする必要があります。

gitで履歴を書き直す方法のチュートリアルです。this answerにリストされている両方の方法について説明しています。

+0

危険な 'Gitのプッシュ--force'が、 – Hoto

0

GITはコミットの削除や編集を目的としていないので、私はこれを行うことを勧めません。直前のコミットを元に戻し、「有効な」コードを再度コミットすることができます。

また、Rebaseブランチもあります。 またはAnswerをご覧ください。

+1

「GITを削除するためのもの、および/または編集がコミットされていない」私は良い開発手法は、そのような行為に対して助言することを言うだろうが、GITがその中に「に意味」され、それを愛しますそれは可能であり、これには非常に良い理由があります。機密情報がコミットされているときのようなものです。 – rainabba

関連する問題