質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Git

    1343questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • GitHub

    805questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

rebase --continueと打ったらファイルに変な文字列が書き込まれてしまいました

解決済

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 987

Run_ner

score 10

github初心者です。(ド素人)

タイトルの通り、rebase --continueと打ったら「=======」など「>>>>>>>  commit」と勝手にファイルに書き込まれていました。
手動で消そうと試みたのですが、よく見ると追加されただけでなくコードも同じ行が幾つかあったり異様でした。

これを元に戻す方法はありますか?
どなたかご教授ください......

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+3

競合が発生しています.「git 競合 解決」でググるといろいろ知見が得られると思います.

 絶対に読むべきページ

この順番で読むことを推奨

 想定する状況

  1. あるコミットからブランチがmasterとsubに分岐した
  2. それぞれのブランチで同じ部分に対して異なる編集をコミットをしてしまった
  3. subのコミットを全部masterのほうに取り込みたい

 とりあえずやること

git rebase --abortでリベース作業を中断 (編集内容は破棄されます)

 解決策A: リベースの代わりにマージを使う

"こわくないGit" にて「ブランチは先頭コミットの別名」とされていますが,便宜上ここでは「ブランチの先頭」という言葉を使って説明します. (厳密には正しくない言葉です)

  1. git checkout masterで「masterブランチの先頭」に移動
  2. git merge --no-ff subで「subブランチの先頭」+「masterブランチの先頭」の合成結果を「masterブランチの先頭」の上に追加する (ここで競合が発生)
  3. すべての競合したファイルに関して以下のどれかを実行し,git add ファイル名する
    (3-A)手動で競合部分を編集する
    (3-B)git checkout ファイル名 --oursを実行して「masterブランチの先頭」を優先的に反映する
    (3-C)git checkout ファイル名 --theirsを実行して「subブランチの先頭」を優先的に反映する
  4. すべての競合を解決したらgit commit -m 'コミットメッセージ'で2の作業を完結させる

 解決策B: リベースを頑張る

  1. git checkout subで「subブランチの先頭」に移動
  2. git rebase masterで「分岐点からsubブランチの先頭」までのすべてのコミットを適用するためのパッチを作成し,それをもとに「masterブランチの先頭」の上に逐次コミットを追加していく (ここで競合が発生)
  3. すべての競合したファイルに関して以下のどれかを実行し,git add ファイル名する
    (3-A)手動で競合部分を編集する
    (3-B)git checkout ファイル名 --oursを実行して「subブランチの先頭」を優先的に反映する
    (3-C)git checkout ファイル名 --theirsを実行してパッチを優先的に反映する
  4. すべての競合を解決したらgit rebase --continueで次のパッチの適用作業に進む (これが終わるまで2〜4の繰り返しが続く)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

git rebaseコマンドがまだ完了していない(git statusと実行して、何やら"Unmerged paths:"などとファイル名が表示される状態)なら、

git rebase --abort

で、元に戻せます。
https://git-scm.com/docs/git-rebase

もう完了してしまったなら、

git reset --hard ORIG_HEAD

で、戻せます。
https://git-scm.com/docs/git-reset

git rebaseコマンドが完了して、さらに別の変更を加えてしまっている場合は、、
もっと詳しい状況を教えていただかないと、何とも言えません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

関連した質問

同じタグがついた質問を見る

  • Git

    1343questions

    Gitはオープンソースの分散バージョン管理システム(DVCS)です。

  • GitHub

    805questions

    GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。