問題タブ [git-history-rewrite]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Git 履歴が重複していますが、コミットをつぶすことはできますか?
ヘルプ: Git 履歴が重複しています (O_O)
API キーを含むファイルを取得しようとしたため、git 履歴からファイルを削除する方法について調査し、ここで提供されているコマンドを使用しました: https://youtu.be/Bo-8EfDpKxA
コマンドを使用しました
git filter-branch --index-filter 'git rm --cached --ignore-unmatch .env.development' HEAD
git filter-branch --index-filter 'git rm --cached --ignore-unmatch .env.production' HEAD
これはうまくいきましたが、変更をテストするために変更された履歴を 2 番目のローカル リポジトリにプルするときに失敗したと思います。古い履歴がなくなったことを確認するには、2 番目のリポジトリにリベースする必要がありました。しかし、私は拒否したと思います(早送りマージなど)ので、今では大量のコミットが複製されています! (O_O) コードの変更とタイムスタンプは同じですが、コミット ID が異なります。
質問
履歴の重複を修正する方法はありますか? 同じタイムスタンプを持つすべてのコミットを押しつぶす履歴の書き換えはどうですか?
または、2回目のコミットごとに(ほぼ)手動でドロップするリベースですか?
2番目の質問
私は開発ブランチでこれらの変更を行い、ファイルの削除はうまくいきました。ただし、開発をマスターにマージしても(もちろん)うまくいきませんでした。マスターの歴史も書いたのかな?
しかし、マスターブランチの履歴にコミットを再度複製するのではないかと心配しています...
git - BFG リポジトリ クリーナーがリモートのリポジトリをクリーニングしない
こんにちは、Azure DevOps に 13.2 GB の非常に大きな git リポジトリがあります。この git リポジトリの履歴を書き換えたかったのです。リポジトリのサイズを縮小するには。bfg repo クリーナーを使用しました。このリンクのすべての手順に従いました:[ここにリンクの説明を入力][1]。git リポジトリのサイズは、ローカル リポジトリで 1.86 GB に縮小されました。しかし、リモートリポジトリを複製すると、まだ13.2 GBの大きさです。gitを正常にプッシュできましたが。
私が従った手順:
java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git
$ cd some-big-repo.git $ git reflog expire --expire=now --all && git gc --prune=now --aggressive
git push --force
誰が私が間違っているのか教えてもらえますか?
git - git 履歴をタグに折りたたむ (タグ間のコミットを結合する)
かなり大きな (1000 件以上のコミット) リポジトリがあり、7 年分の変更と 6 つのリリース バージョン (各バージョンは git タグで表されます) があります。履歴を折りたたんで、最後のタグの前に、2 つのタグ間のすべてのコミットがバージョン タグを持つ 1 つのコミットに折りたたまれます。したがって、リポジトリの履歴を約 15 件のコミットに減らします。バージョン間で元に戻すことはありません。おまけとして、理想的には、コミットを折りたたむすべての人を として保持したいと考えていco-authored-by
ます。重要な場合、タグの前からタグを新しいバージョンにスキップするマージはありません。
から:
の中へ
続行する方法についてのアイデアはありますか?