タグ付けされた質問 「git-filter-branch」

30
Gitで複数のコミットの作成者とコミッターの名前と電子メールを変更するにはどうすればよいですか?
OverаэтотвопросестьответынаStack Overflowнарусском:Поменятьуавтораикоммитераемейлиимявовсехк 私は学校のコンピューターで簡単なスクリプトを書いて、Gitへの変更をコミットしていました(自宅のコンピューターから複製した、ペンドライブにあるリポジトリで)。いくつかのコミットの後、私はrootユーザーとして何かをコミットしていることに気付きました。 これらのコミットの作者を私の名前に変更する方法はありますか?

25
サブディレクトリを別のGitリポジトリにデタッチ(移動)する
私が持っているGitのサブディレクトリの数を含むリポジトリを。ここで、サブディレクトリの1つが他のサブディレクトリとは無関係であり、別のリポジトリに分離する必要があることがわかりました。 サブディレクトリ内のファイルの履歴を保持しながらこれを行うにはどうすればよいですか? クローンを作成して、各クローンの不要な部分を削除することはできると思いますが、これにより、古いリビジョンなどをチェックアウトしたときに完全なツリーが得られると思います。これは許容できるかもしれませんが、 2つのリポジトリには共有履歴がありません。 明確にするために、私は次のような構造になっています。 XYZ/ .git/ XY1/ ABC/ XY2/ しかし、私は代わりにこれを望みます: XYZ/ .git/ XY1/ XY2/ ABC/ .git/ ABC/

12
悪いマージをどのように修正し、良いコミットを修正されたマージに再生しますか?
(filename.origマージの解決中に)不要なファイルを数回前に自分のリポジトリに誤ってコミットしましたが、今まで気付かなかった。リポジトリの履歴からファイルを完全に削除したい。 filename.origそもそもリポジトリに追加されなかった変更履歴を書き換えることはできますか?

11
機密ファイルとそのコミットをGit履歴から削除する
GitHubにGitプロジェクトを配置したいのですが、機密データ(ユーザー名とパスワード、capistranoの/config/deploy.rbなど)を含む特定のファイルが含まれています。 これらのファイル名を.gitignoreに追加できることはわかっていますが、Git内の履歴は削除されません。 また、/。gitディレクトリを削除してやり直したくありません。 Git履歴で特定のファイルのすべてのトレースを削除する方法はありますか?

11
gitリポジトリから古い履歴を削除するにはどうすればよいですか?
この特定のシナリオのようなものを見つけることができなかったと思います。 2007年半ばまでさかのぼって、500以上のブランチ、500以上のタグを含む、多くの履歴を持つgitリポジトリがあります。約19,500件のコミットが含まれています。2010年1月1日より前にすべての履歴を削除して、処理を小さく簡単にできるようにします(履歴の完全なコピーをアーカイブリポジトリに保存します)。 新しいリポジトリのルートになりたいコミットを知っています。しかし、そのコミットで開始するためにリポジトリを切り詰める正しいgit mojoを理解することはできません。私はいくつかの変種を推測している git filter-branch 移植を含むことが必要でしょう。また、個別に保持したい200以上のブランチを個別に処理してから、リポジトリにパッチを再度適用する必要がある場合もあります(私が行う方法を知っています)。 誰かがこのようなことをしたことがありますか?それが重要であれば、私はgit 1.7.2.3を持っています。

10
多くのサブディレクトリを新しい個別のGitリポジトリにデタッチします
この質問は、別のGitリポジトリへのサブディレクトリのデタッチに基づいています 単一のサブディレクトリーを切り離す代わりに、いくつかを切り離したいと思います。たとえば、現在のディレクトリツリーは次のようになります。 /apps /AAA /BBB /CCC /libs /XXX /YYY /ZZZ そして、私は代わりにこれを望みます: /apps /AAA /libs /XXX への--subdirectory-filter引数git filter-branchは、最初に実行されたときに指定されたディレクトリ以外のすべてを取り除くため、機能しません。--index-filterすべての不要なファイルに引数を使用するとうまくいくと思いましたが(面倒ではありますが)、複数回実行しようとすると、次のメッセージが表示されます。 Cannot create a new backup. A previous backup already exists in refs/original/ Force overwriting the backup with -f 何か案は?TIA


4
Gitリポジトリからのファイルのパージに失敗し、新しいバックアップを作成できません
次のコマンドを実行して、リモートリポジトリからファイルを削除しようとしました。 git filter-branch --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD しかしGitは不平を言います 新しいバックアップを作成できません。以前のバックアップはrefs / original /にすでに存在し ます-fでバックアップを強制的に上書きします rm:/. git-rewrite /backup-refsを削除できません:権限が拒否されました rm:ディレクトリを削除できません/.git-rewrite:ディレクトリが空ではありません これは、Windowsで.git-rewriteディレクトリをすでに削除した後です。 どうすればそのファイルを削除できますか?これは私のリポジトリにある29Mbファイルなので、ファイルを削除する必要があります。 でコミットを削除しようとしましgit rebase -iたが、コミットが多くの異なるファイルに影響を与えたためと思われ、Gitは競合を訴え、安全のために中止しました。

8
git rm-致命的:pathspecがどのファイルとも一致しませんでした
誤って9000枚以上の写真をプロジェクトフォルダに追加しました。そしてそれらをコミットしました。次に、それらをディスクから削除しました。関与する。 今、私は変更をgitサーバーにプッシュしようとしています。しかし、時間がかかりすぎて、12Gbのデータを送信しようとします。 ディスク上のファイルサイズを確認したところ、実際に確認できました .gitフォルダに12Gbかかる。 そこから写真を削除するにはどうすればよいですか?試しましたgit rmが失敗しました: ❯ git rm public/photos fatal: pathspec 'public/photos' did not match any files 私はすでにそれらをディスクから削除しましたが、それらはまだ.gitフォルダにあります。 私はに追加しようとしpublic/photosました.gitignore: public/photos/ *.zip しかし、結果はありません。もちろんhard reset head、プロジェクトにジャンク写真があまりなかった瞬間もありました。しかし、それ以来、私は何度もコミットし、コードに多くの変更を加えました。

5
大きなGitリポジトリを多くの小さなリポジトリに分割する
SVNリポジトリをGitに正常に変換した後、非常に大きなGitリポジトリができたので、複数の小さなリポジトリに分割して履歴を維持したいと思います。 だから、誰かがこのように見えるかもしれないレポを分割するのを手伝うことができますか? MyHugeRepo/ .git/ DIR_A/ DIR_B/ DIR_1/ DIR_2/ 次のような2つのリポジトリに: MyABRepo/ .git DIR_A/ DIR_B/ My12Repo/ .git DIR_1/ DIR_2/ この前の質問の指示に従ってみましたが、複数のディレクトリを別のリポジトリに配置しようとすると、実際には適合しません(サブディレクトリを別のGitリポジトリにデタッチ(移動)します)。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.