質問: リモートリポジトリから最新の取り込みをするため 「git fetch origin」 を実行し、そのあと「git merge origin/master」 を実行して、現在の作業ブランチを最新の状態に更新しました。 ファイル自体は最新に更新できたのですが、 マージしたものをコミット→プッシュしようとすると、 過去にこのプロジェクトを編集した、数年分のコミットがプッシュされてしまいます。 (まだプッシュはしていません。 プッシュ結果のプレビューをeclispe上で確認している状態です。) 過去のコミットが大量に含んでしまう状態を修正したいと思っています。 ↓を試しましたが、同じ結果(大量のコミットを含んでしまう)になってしまい、どうすべきかがわかりません。 ・「git reset --hard マージした時のコミットID」でマージを取り消し ・「git merge origin/master」 ーーーーーーーーーーーーーーーーー ちなみにgit branch -a で表示されるのは↓の通りです。 ・作業しているブランチA ・master ・remotes/origin/HEAD -> origin/master ・remotes/origin/master ーーーーーーーーーーーーーーーーー 根本的なところからわかっておらず申し訳ありませんが、 お答えいただけると助かります。 (疑問) ・「git fetch origin」の時点で過去の大量のコミットが同期されたのか。だとするとfetchを取り消したらよいのか? ・「git fetch origin」→リモートのmasterから、ローカルのorigin/masterを最新に上書きするという理解であっているか? ・「git merge origin/master」→ローカルのorigin/masterから、作業ブランチAを最新に上書きするという理解で合っているか? ・remotes/origin/HEAD -> origin/master remotes/origin/master →この2つの違いがよくわかりません。fetchしたときにできたものか。 「remotes/origin/master」は不要なものだとしたら消した方が良いか。
回答: > > 過去にこのプロジェクトを編集した、数年分のコミットがプッシュされてしまいます。 > > > その履歴まで含めてすべて保存するのが適切なGitの運用だと思うのですが、なにか問題があるのでしょうか?