github初心者です。(ド素人)
タイトルの通り、rebase --continueと打ったら「=======」など「>>>>>>> commit」と勝手にファイルに書き込まれていました。
手動で消そうと試みたのですが、よく見ると追加されただけでなくコードも同じ行が幾つかあったり異様でした。
これを元に戻す方法はありますか?
どなたかご教授ください......
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
競合が発生しています.「git 競合 解決」でググるといろいろ知見が得られると思います.
絶対に読むべきページ
この順番で読むことを推奨
- サルでもわかるGit入門 (発展編含めて一通り読んでください)
- こわくない Git (熟読してください)
- gitでconflictした時のours/theirs
想定する状況
- あるコミットからブランチがmasterとsubに分岐した
- それぞれのブランチで同じ部分に対して異なる編集をコミットをしてしまった
- subのコミットを全部masterのほうに取り込みたい
とりあえずやること
git rebase --abort
でリベース作業を中断 (編集内容は破棄されます)
解決策A: リベースの代わりにマージを使う
"こわくないGit" にて「ブランチは先頭コミットの別名」とされていますが,便宜上ここでは「ブランチの先頭」という言葉を使って説明します. (厳密には正しくない言葉です)
git checkout master
で「masterブランチの先頭」に移動git merge --no-ff sub
で「subブランチの先頭」+「masterブランチの先頭」の合成結果を「masterブランチの先頭」の上に追加する (ここで競合が発生)- すべての競合したファイルに関して以下のどれかを実行し,
git add ファイル名
する
(3-A)手動で競合部分を編集する
(3-B)git checkout ファイル名 --ours
を実行して「masterブランチの先頭」を優先的に反映する
(3-C)git checkout ファイル名 --theirs
を実行して「subブランチの先頭」を優先的に反映する
4. すべての競合を解決したらgit commit -m 'コミットメッセージ'
で2の作業を完結させる
解決策B: リベースを頑張る
git checkout sub
で「subブランチの先頭」に移動git rebase master
で「分岐点からsubブランチの先頭」までのすべてのコミットを適用するためのパッチを作成し,それをもとに「masterブランチの先頭」の上に逐次コミットを追加していく (ここで競合が発生)- すべての競合したファイルに関して以下のどれかを実行し,
git add ファイル名
する
(3-A)手動で競合部分を編集する
(3-B)git checkout ファイル名 --ours
を実行して「subブランチの先頭」を優先的に反映する
(3-C)git checkout ファイル名 --theirs
を実行してパッチを優先的に反映する
4. すべての競合を解決したらgit rebase --continue
で次のパッチの適用作業に進む (これが終わるまで2〜4の繰り返しが続く)
投稿2016/04/14 20:59
編集2016/04/14 21:00総合スコア5223
0
ベストアンサー
git rebase
コマンドがまだ完了していない(git status
と実行して、何やら"Unmerged paths:"などとファイル名が表示される状態)なら、
sh
1git rebase --abort
で、元に戻せます。
https://git-scm.com/docs/git-rebase
もう完了してしまったなら、
sh
1git reset --hard ORIG_HEAD
で、戻せます。
https://git-scm.com/docs/git-reset
git rebase
コマンドが完了して、さらに別の変更を加えてしまっている場合は、、
もっと詳しい状況を教えていただかないと、何とも言えません。
投稿2016/04/15 11:04
総合スコア4791
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。