問題タブ [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.
git - すべての単一ファイルの単語を置き換えて git 履歴を書き換えます
リポジトリの git 履歴を git-filter-branch で書き換えて、すべてのファイルで "foo.bar" をすべて "bar.foo" に置き換えたいと考えています。
どうすればこれを達成できますか?
更新:
--tree-filter パラメーターで遊んでいて、指定されたファイル内の単語を次のように置き換えることができました。
これは、私が望んでいたことを達成するのに最も近いようです。
git - ブランチを保持して範囲を絞り込みながら、git リポジトリを分割する
大きな git リポジトリ (LargeRepo) を小さなリポジトリ (SmallRepoA、SmallRepoB) に分割し、コミットを保持する方法については、多数のチュートリアルがあります。私は、各 SmallRepo が SmallRepo 内のファイルに関連するブランチとブランチ コミットのみを継承するという追加の要件でそれを行いたいと考えています。
各 SmallRepo について:
- ブランチが SmallRepo のファイルに影響を与えない場合は、ブランチを維持しないでください
- 残りのブランチについては、SmallRepo 内のファイルに影響を与えないコミットを削除します。
事実上、最初に個々の SmallRepos があった場合に世界がどのように見えるかを模倣する最終結果を得ようとしています。
次に例を示します。
LargeRepo が次のようになっているとしましょう。
そして、高レベルのフォルダーごとに 1 つずつ、3 つの SmallRepos に分割したいと考えています。
LargeRepo に Branch1 と Branch23 があるとします。Branch1 は Folder1 のファイルを変更し、Branch23 は Folder2 と Folder3 のファイルを変更しました。
ブランチ ビューは次のようになります。
理想的には、このソリューションは Windows の git コマンドラインで実装でき、BASH は必要ありません。
git - Git コミットがプッシュされない
リモートリポジトリからクローンされたローカルリポジトリがありました。そこから多くのコミットを行いましたが、リモートリポジトリにプッシュバックせずにそのリポジトリを愚かに削除しました。なんとかディレクトリを復元できました。今、コミットも回復で回復されるかどうか疑問に思っていますか?
git - 2 つのブランチを 1 つのブランチにマージする
GITでは、単一のリポジトリに2つのブランチがあります-ブランチ「A」とブランチ「B」(古いSVNリポジトリの2つのフォルダーから作成)
これらのブランチは完全に分離されています。共通の祖先はありません。
これらの各ブランチは、異なるディレクトリに書き込みます。例: ブランチ A はディレクトリ "~/A" にのみ書き込み、ブランチ B はディレクトリ "~/B" にのみ書き込みます (したがって競合はありません)。
これらの 2 つのブランチを単一のブランチにマージして、単一のブランチ リポジトリのように見せたいと思います。
私が試してみました:
- git merge - ブランチをマージしますが、履歴には両方のブランチが表示されます
- git rebase - 動作しますが、コミットの順序が間違っています - コミットを時間順に並べたいです
これを行う最善の方法は、両方のブランチからすべての変更を取得し、時間順に並べ替えて、新しいブランチで 1 つずつ「再生」することです。しかし、私はそれを行う方法がわかりません。
答えてくれてありがとう!
編集:これは現在の様子です(左から右へ):
git - Git 履歴を書き換えて、押しつぶされたマージ コミットを元に戻すにはどうすればよいですか?
最近 Subversion から Git に移行したプロジェクトに取り組んでいます。git-svn移行前にSubversion リポジトリにコミットしていました。移行後、かなりの量の履歴が失われていることに気付きました。これは、トピック ブランチからの各マージ コミットが (git-svnブリッジを介して、または移行によって) 押しつぶされ、保持したいコミット メッセージの一部が失われたためです。移行前のリポジトリのローカル コピーを使用して、移行後のリポジトリのマージ コミットを、おそらくチェリー ピッキングのような方法で解除することはできますか?
git - BFG repo-cleaner を使用した後に git repo を検査する
非常に基本的な git の質問:
危うい情報を Github にアップロードし、bfg を使用してレポをクリーンアップしています。ドキュメントに従い、次のアクションを実行しました。
次の出力を受け取りました。
個人情報がリポジトリから消去されたかどうかを確認したいのですが、ミラー化されたリポジトリ内のファイルを確認する方法がわかりません。何か案は?
git - github からのファイルの削除
私はしばらくの間、1 つのプロジェクトで github を使用していますが、課題トラッカーとしてのみ使用しています。そのため、今夜はコードの処理にも時間を割きましたが、初歩的なミスを犯してしまいました。資格情報ファイルやその他の不要なデータをコミットしてしまったのです。それらをファイルに追加した.gitignoreので、もう問題はないはずですが、履歴で利用できることがわかります。
これはセキュリティ上の問題を引き起こすため、これを整理して機密データを削除する必要があります。私は現在唯一の開発者であるため、コードを自分の PC と実際のサーバーにのみ保持していましたが、これもコツをつかみたいと思っていました。
これまでのところ、この記事、これも試してみましたが、SOに関するいくつかの質問が見つかりましたが、これを理解することはできませんでした. ほとんどの場合、次のようなエラーが発生します。fatal: ambiguous argument 'rm': unknown revision or path not in the working tree.
レポ全体を削除しますが、そこにはかなり多くの問題追跡データがあるため、それを保持する必要があるため、これはオプションではありません。他のコミットは気にしません。ローカル マシンのコードを使用してゼロから始めることもできますが、古いコミットとその完全な履歴を失うか、それらのファイルを変更する何らかの方法が必要です (一部.gitignoreはディレクトリであるため、非常に難しい場合があります)。外すの面倒)。
で試してみましgit rebase -iたが、プッシュされていない最後の 3 つのコミット (テスト) のみが表示され、残りのオンラインのものは 10 個ほど表示されません。
私が使用しているリポジトリはプライベートなもので、私とクライアントのみがアクセスできるため、サードパーティはこれを見たことはありません.
私は git を初めて使用するので、お時間をいただきありがとうございます。
git-rewrite-history - 特定のパスからファイル名を削除しますか?
ディレクトリ階層のいくつかの場所から(一時的/大きな)ファイルを削除してgitリポジトリの履歴をクリーンアップするために、BFG Repo-Cleanerツールをいじっています...
すなわち /root/test/a.txt /root/test2/a.txt
ここで、「test/a.txt」のすべての参照を削除したいのですが、/test2/ a.txt バージョンは保持します。
BFGを使用してそれをきれいに削除する方法はありますか? ( https://help.github.com/articles/remove-sensitive-dataで述べたように)
リポジトリにはかなり大きな履歴 (10K コミット) があるため、BFG はこれまでに見た他の方法よりもはるかに高速です...