[解決済み】gitの親ポインタを別の親に設定する
2022-04-04 12:39:13
質問
ある親を指す過去のコミットがあり、それが指す親を変更したい場合、どのようにすればよいでしょうか?
どのように解決するのですか?
使用方法
git rebase
. これは、Git の一般的なコマンドである "take commit(s) and plop it/them on a different parent (base)" のことです。
ただし、いくつか知っておくべきことがあります。
-
コミットの SHA はその親を含むので、あるコミットの親を変更すると、その SHA も変更されます。 すべて は、開発ライン上でこのコミットより後 (このコミットより新しい) にあるコミットです。
-
もしあなたが他の人と一緒に仕事をしていて、問題のコミットを相手がプルした場所にすでにプッシュしてしまった場合、そのコミットを修正することはおそらくBad Idea™でしょう。その結果、他のユーザーのリポジトリは、あなたのコミットの SHA が彼らのコミットの SHA と一致しなくなり、何が起こったのかを知るために混乱することになるからです。 (詳細はリンク先のマニュアルページの "RECOVERING FROM UPSTREAM REBASE" のセクションを参照してください)。
とはいえ、現在あるブランチにあるコミットを新しい親に移動させたい場合は、次のようになります。
git rebase --onto <new-parent> <old-parent>
これですべて移動します
後
<old-parent>
を現在のブランチに追加し、その上に
<new-parent>
の代わりに
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] 既存の、プッシュされていないコミットメッセージを修正するには?
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] git rebase の取り消し
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ローカルにない作業がリモートに含まれているため、アップデートが拒否された
-
[解決済み】Git:コミットに何も追加されていないが、未追跡のファイルが存在する
-
[解決済み】git rev-parseは何をするのですか?
-
[解決済み】「オリジン/マスターへのプッシュが拒否されました」というエラーが常に発生するのはなぜですか?
-
Gitのプッシュでエラーが発生! [リモート拒否] master -> master (pre-receive hook declined) error: failed to push some refs to .......
-
[解決済み] GitHubに空のブランチを作成する
-
[解決済み] 無効なVCSルートマッピング - 私のプロジェクトで3つのエラーが発生しました。
-
[解決済み] Git エラー : 'upstream' は git リポジトリでないようです。
-
[解決済み] git rebase: "error: cannot stat 'file': パーミッションが拒否されました"
-
[解決済み】Git: 特定のコミットにリベースする方法は?