2016-07-27 13 views
0

私はgitの新人です。私は自分の支店に多くの不必要なコミットをしています。 ファイルの現在の状態を保持し、すべてのコミット履歴を削除します。私は支店をリセットしても構いません。これを行う最善の方法は何ですか?Gitは、ブランチ上のファイルの現在の状態のみを表示し、コミット履歴を削除します。

私は、これは助けが高く評価され

git stash 
git reset --hard 
git pop 
git add file 
git commit -m 'commit' 
git push -f origin 

のようなものであるべきだと思います。

答えて

1

おそらくベストあなたがしたいことをする方法は、まずすべてのローカル変更をコミットにすることです。

その後
$ git commit -a -m "work-in-progress" 

、与えられた<sha>をコミットする前に、バックだけにコミットを潰すために、対話型リベースを使用します。

$ git rebase -i <sha>^ 

インタラクティブリベースはコミットのリストを編集ウィンドウが表示されます。各1つにつき には、pick,squash,fixupなどのアクションのいずれかを指定できます。コミットごとにsquashを入力すると、それらが選択されて一緒に折りたたまれ、コミット・メッセージを編集することができます。コミット・メッセージは、最初は個々のコミット・メッセージのカテナネーションに基づいています。

インタラクティブリベースワークフローは、実際に学ぶ価値のあるgitの機能の1つです。

関連する問題