タグ付けされた質問 「git-rewrite-history」

たとえば古いコミットの編集、不要なデータ(プライベートデータや大きなファイルなど)の削除、ファイル構造の再配置、コミットメタデータの修正などのために、Gitリポジトリの履歴を書き換えます。

27
既存のプッシュされていないコミットメッセージを変更する方法
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 コミットメッセージに間違ったものを書いた。 メッセージを変更するにはどうすればよいですか?コミットはまだプッシュされていません。

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

16
指定したコミットを変更する方法は?
私は通常、確認のためにコミットのリストを送信します。次のコミットがある場合: HEAD Commit3 Commit2 Commit1 ...でヘッドコミットを変更できることはわかっていますgit commit --amend。しかしCommit1、それがHEADコミットではない場合、どのように変更できますか?

19
Gitで古いコミットのタイムスタンプを変更するにはどうすればよいですか?
既存のプッシュされていないコミットを変更する方法への答えは?まだ上流にプッシュされていない以前のコミットメッセージを修正する方法を説明します。新しいメッセージは、元のコミットのタイムスタンプを継承します。これは理にかなっているようですが、時間を再設定する方法はありますか?

18
Gitリポジトリのコミット履歴から大きなファイルを削除/削除する方法は?
たまに、DVDリッピングをWebサイトのプロジェクトに落とし込んだ後、不注意に落としgit commit -a -m ...たり、ザップをしたりして、リポジトリが2.2ギグ膨らみました。次回、編集、ビデオファイルの削除、すべてのコミットを行いましたが、圧縮ファイルはリポジトリの履歴に残っています。 私はそれらのコミットからブランチを開始し、あるブランチを別のブランチにリベースできることを知っています。しかし、大きなファイルが履歴に表示されず、ガベージコレクション手順でクリーンアップされるように、2つのコミットをマージするにはどうすればよいですか?


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

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


8
Gitリポジトリの最初の2つのコミットを結合しますか?
3つのコミットA、B、Cを含む履歴があるとします。 A-B-C 2つのコミットAとBを1つのコミットABに結合したいと思います。 AB-C 私は試した git rebase -i A 次の内容でエディターが開きます。 pick e97a17b B pick asd314f C これを次のように変更します squash e97a17b B pick asd314f C それからGit 1.6.0.4は言う: Cannot 'squash' without a previous commit 方法はありますか、これは単に不可能ですか?

5
Gitマージコミットのリベース
次のケースを考えてみましょう: 私はトピックブランチでいくつかの作業をしており、マスターにマージする準備ができています: * eb3b733 3 [master] [origin/master] | * b62cae6 2 [topic] |/ * 38abeae 1 マスターからマージを実行し、競合を解決すると、次のようになります。 * 8101fe3 Merge branch 'topic' [master] |\ | * b62cae6 2 [topic] * | eb3b733 3 [origin/master] |/ * 38abeae 1 マージには少し時間がかかったので、別のフェッチを実行すると、リモートマスターブランチに新しい変更が加えられています。 * 8101fe3 Merge branch 'topic' [master] |\ | * b62cae6 2 …

3
filter-branch --tree-filterの後でgit repoからrefs / original / heads / masterを削除しますか?
私がここで尋ねたのと同じ質問がありました:サブディレクトリに存在するリポジトリを包含するためのルートディレクトリの新しいgitリポジトリ 私はここでこの答えに従いました:サブディレクトリに存在するリポジトリを包含するためにルートディレクトリに新しいgitリポジトリ 現在、gitk --all2つの履歴が表示されています。1つは現在masterので終わり、もう1つはという名前original/refs/heads/masterです。 この2番目の履歴が何であるか、またはリポジトリから削除する方法はわかりません。リポジトリに2つの履歴は必要ありません。 どうすれば取り除くことができますか? 自分を再現するには: mkdir -p project-root/path/to/module cd project-root/path/to/module mkdir dir1 dir2 dir3 for dir in * ; do touch $dir/source-file-$dir.py ; done git init git add . git commit -m 'Initial commit' 今、私たちは元のポスターの問題を抱えています。上記のリンクを使用して、gitリポジトリのルートをproject-rootに移動してみましょう。 git filter-branch --tree-filter 'mkdir -p path/to/module ; git mv dir1 dir2 dir3 path/to/module' …

6
著者を変更するためにGitのいくつかのコミットを修正する方法
私はGitで一連のコミットを行いましたが、ユーザー名とユーザーのメールプロパティを正しく設定するのを忘れたことに気づきました(新しいマシン)。これらのコミットをリポジトリにまだプッシュしていません。そうする前に、これらのコミットを修正するにはどうすればよいですか(masterブランチの最新の3つのコミットのみ)。 とを見てきましたが、正しい方向に進んでいるgit resetとgit commit -C <id> --reset-authorは思いません。

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は競合を訴え、安全のために中止しました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.