• 締切済み

gitで過去のコミット履歴を非表示にしたい

gitで過去のコミット履歴を非表示にすることは可能でしょうか? 現在プログラム編集を行っているリポジトリ内の一部ブランチだけを別のリポジトリにコピーして作業を行いたいと思い、 git remote add origin 追加したいリポジトリ このコマンドで、追加したいリポジトリに、一部ブランチをコピーしました。 新しいリポジトリ側でlogを確認してみたところ、コピーしたブランチがどのようにmasterから分岐してきたかの履歴もコピーされてきました。 基本的には、コピーしたブランチの最新の状態のみのコピーされていればよかったのですが、過去の履歴を非表示にする方法などはありますでしょうか? どうぞ、ご教示の程よろしくお願い致します。

みんなの回答

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.2

2回目の回答をしたつもりだったのですが、投稿ボタンを押していなかったか、貼り付けたURLに問題があって運営中かもで、そのことに気づくのが遅くなってすみません。 何を書いたかいろいろ書きすぎて覚えていないため、見つけた別の方法だけをお知らせしておきます。 「git のコミット履歴をすべて消す」 qiita.com/okashoi/items/6b1a8ca9a4b001200167 手順はこれだけでした。 ---- git checkout --orphan tmp git commit -m "Initial Commit" git checkout -B master git branch -d tmp ----

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.2

エラーになってしまいましたか。 「HEAD~20」の「20」を「2」にして、マージが混雑しているところをひとつずつ進めてみるとどうでしょうか。 エラーのままだと何もできないかも知れませんので、「git rebase --abort」とかでなかったことにしてから試してみてください。 本当は適切なコマンドで、エラーを回避しながら進めることができると思うのですが、私はそこまで詳しくないため説明できなくて申し訳ありません。 実は、私はコマンドでgit操作することがなくて、このようなことはTortoiseGitと言うGUIツールで行なっています。 今回のようなコミットをひとつにすると言うのはよくやっているので、GUIの裏でこのようなコマンドが実行されているのかなと思ったほどです。 とは言え、前回URLを紹介する前には、その情報に従ってコマンドで実行して、何かのエラーになって失敗して、最初からやり直したりして、どうにかうまくいくことは確認していますが、ブランチやマージの状態によって、何かしら起こってしまうようです。 もし少しずつ進めてもエラーになるようでしたら、コマンドではどうするのかわかりませんが、一番最初のコミットからブランチを作って、それ以降をすべてチェリーピックする方法もありそうです。 TortoiseGitでそのような操作(すべてをチェリーピックして融合)をしてみると、もしかしたら質問者さまのエラーと同じような原因でか、「どちらの親を採用しますか?」と聞かれるのですが、進めることができます。 どちらを採用しても最終的には最後のコミットと同じ状態になりました。 お使いのOSがWindowsでこのツールが導入可能でしたら検討してみてください。 あと、全然別の方法ですが、元のリポジトリにプッシュして戻すことがないのでしたら、最終コミットの状態で、.gitフォルダを削除して、新しくローカルリポジトリを作成する方法はどうでしょうか。 フォルダを削除しないで履歴だけ初期化するコマンドがあるかと思って調べてみたのですが見つけられませんでした。 が、調べていて別の方法がみつかりました。 こちらの方が本来したいことかも。 https://qiita.com/okashoi/items/6b1a8ca9a4b001200167

  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.1

非表示ではないのですが、ひとつのコミットにまとめる方法はどうでしょうか。 https://dev.classmethod.jp/articles/git-rebase-fixup/

techhouse
質問者

補足

回答頂きありがとうございます。 教えて頂いたコミットをまとめるコマンドでコミットをまとめることができました。 ただ、コマンドで、どんどんコミットをまとめていったところ次のようなエラーが出てきました。 (エラー内容) PS D:\mywork\GitHub\lvglEsp32Screen> git rebase -i HEAD~20 interactive rebase in progress; onto ffb237a Last commands done (4 commands done): pick 0fa142e ライブラリ整理でビルド成功を確認 pick 2043a5d 一部修正でビルド成功をコミット Next commands to do (26 remaining commands): pick c28c7af ライブラリの整理でビルド成功を確認。 pick 51ac8c0 ライブラリ整理でビルド成功を確認 You are currently rebasing branch 'wifiErrfix' on 'ffb237a'. nothing to commit, working tree clean The previous cherry-pick is now empty, possibly due to conflict resolution. If you wish to commit it anyway, use: git commit --allow-empty Otherwise, please use 'git cherry-pick --skip' Could not apply 2043a5d... 一部修正でビルド成功をコミット PS D:\mywork\GitHub\lvglEsp32Screen> $ git rebase -i HEAD~20 このコマンドで、まとめたいコミット行にfixupをしていったところ、上記のようなエラーが発生して、コミットまとめがうまくいかなくなる箇所がでてきました。 何となくなんですが、この辺のコミット内容は、別のブランチからのマージ等の操作が入っている個所がたくさんあるのですが、それが原因のエラーでしょうか? それらのコミットもうまくまとめる方法などはありますでしょうか?

関連するQ&A