問題タブ [git-rewrite-history]

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.

0 投票する
1 に答える
1976 参照

windows - Git: 大きなパック ファイルの最大のファイルを見つける

Mac で git pack ファイル内の最大のファイルを明らかにするスクリプトをいくつか見つけましたが、これらが Windows で機能するかどうかは不明です。私の直感は、Macで実行すると明示的に言っているので、そうしないということです。

とはいえ、それは実行されているようです...永遠に。

質問:

  1. ここのスクリプトは Windows で動作しますか
  2. そうでない場合、何が機能しますか?
  3. そうでない場合、Mac / Windows のレポの違いは何ですか
0 投票する
2 に答える
12187 参照

git-rewrite-history - BFG は複数のフォルダーを削除します

BFG は元の git-filter-branch よりもはるかに高速であることがわかりました。

さらに多くの git リポジトリに移動する複数の svn リポジトリがあります。これは、いくつかのリポジトリ フォルダのマージと分割を意味します。プロセス中に一連のルート フォルダーを削除する必要があり、それらを履歴全体から削除したいと考えています。

BFG --delete-foldersを使用しようとしましたが、1 つのフォルダーに対しては正常に機能しますが、複数のフォルダーを削除する方法が見つかりませんでした。それは可能ですか?または、削除するフォルダーがある回数だけループして BFG を呼び出す必要がありますか?

助けてくれてありがとう。

0 投票する
1 に答える
416 参照

git - git filter-branch --tree-filter は 2 つのコミット オブジェクトを残しました

これは私がしました:

基本的に、いくつかの行末の問題を修正しています。(約 793 件のコミットが書き直されました)。次に、タブを 4 つのスペースに変換したほうがよいことに気付きました。だから私はこれをしました:

現在、1594 個のコミット オブジェクトを処理しています (いくつかの新しいコミット オブジェクトが追加されました)。

どうやら私の古いツリー全体がまだ git repo のどこかにあるのですか? もしそうなら、どうすればそれを取り除くことができますか? また、それがなくなったことを確認するにはどうすればよいですか? 「元の」書き直された〜800コミットだけを保持したいだけで、それ以上は必要ありません。

0 投票する
1 に答える
1831 参照

git - git filter-branch の正しい並列化

たくさんのブランチを含むリポジトリがあり、「git filter-branch ... -- --all」は劇的に遅くなります (約 400,000 コミ​​ット、約 7 日間の実行時間)。ただし、単一のブランチで 'git filter-branch' を実行すると、パフォーマンスが大幅に向上します (約 5 日)。

次のアルゴリズムを使用して、多数のブランチで「filter-branch」を並列化するのは正しいですか?

  1. bx (B1..Bn) の場合: git clone --bare -b bx repo.orig repo.bx
  2. repo.bx で並列化: git filter-branch --index-filter ... -- HEAD
  3. git init --bare repo.new
  4. bx (B1..Bn) の場合: cd repo.bx; git push repo.new HEAD:bx

よろしく、ゲルト

0 投票する
0 に答える
623 参照

git - git ls-files の複数のファイルで使用すると、git filter-branch が失敗する

履歴を含むいくつかのファイルをあるリポジトリから別のリポジトリに移動しようとしています。これについて議論するトピックはたくさんありますが、まだ言及されていないいくつかの問題に遭遇しました。

したがって、私が行う手順は次のとおりです。

これら 2 つのファイルのみに関連する履歴を保持し、それらを別のリポジトリに移動する意図があります。ただし、次の問題に遭遇しました。

6768c299b2b25754a558336e025ce92576c954f2 (1/200)/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core/git-filter-branch: line 329: CMakeLists.txt: command not found .... を書き換えます。

奇妙なことに、ファイルを1つずつ削除できます。これはたとえば次のように機能します。

また、これをダミーリポジトリ(ファイルが2つしかない)で試してみましたが、すべてうまくいきました!したがって、実際には機能しません。おそらく、git ls-files?..の出力の長さに多少関連しています。

更新: 私は解決策を探し続けていgit ls-filesます。改行でリストされたファイルがあります(1行に1ファイル)が、git rmファイルは1行にあるはずです。

それは問題になるでしょうか?

更新 2:

私はこのソリューションに従って目標を達成しましたが、すべてうまくいきました。

0 投票する
2 に答える
687 参照

git - 漸進的な意味でフィルターブランチを使用する任意の方法

ブランチでフィルターブランチをインクリメンタルに使用する方法はありますか?

大まかに言えば、次のようになります (ただし、これは実際には機能していません)。

0 投票する
2 に答える
82 参照

git - git : コミットされていない履歴内のファイル、どう説明すればよいですか?

多くの svn リポジトリを他の多くの git リポジトリに移行しています。これらの svn リポジトリには 113000 を超えるコミットがあります。非常に大きな git リポジトリになってしまうので、それらを縮小したいと思います。

スクリプトを使用して、最大のオブジェクトを見つけました。これらのオブジェクトはもはやどのブランチにもありません。私は、それらがどのコミットに関連しているかを知りたいと思っていました。見つかりませんでした???

コマンドを使用しました

しかし、何も返されませんでした。このファイルにコミットが関連付けられていない理由を説明してもらえますか? それが本当に当てはまる場合、コミットにリンクされていないすべてのファイルを削除する方法は?

PS : 移行プロセスは非常に重く、bfg (これは素晴らしい) を使用して既知の未使用のフォルダーをいくつか削除しています。

0 投票する
3 に答える
1424 参照

python - Gitツリーフィルターは、コミット時にPythonスクリプトを実行します

この質問は#git以前にもありましたが、かなり重要なので、ここに投稿します。filter-branchPythonスクリプトを使用して、数百のコミットで(数千の)ファイルを変更するためにレポで実行したいと考えています。clean.pyレポ ディレクトリで次のコマンドを使用してスクリプトを呼び出しています。

Clean.pyは次のようになり、パス (つまりfiles/*/*/**)

コマンドを実行すると、ターミナルに次のように出力されます。

Python スクリプトは正常に実行され、ファイルを正しく変更しますがfilter-branch、コミットの修正は完了しません。権限の問題があるようですが、昇格された権限で実行することはできませんでした。git v1.8およびv1.9を使用して、win7、win8、およびubuntuでフィルターブランチを実行してみました。
編集スクリプトは Centros でそのまま動作しますgit1.7.1

files/*/*/**目標は、コンテンツのデータベースとの同期が完了した後、CDN リポジトリのサイズ (1GB 近く) を減らすことです。
プロジェクトのソースコード
書き換え対象リポジトリ