1. ホーム
  2. git

[解決済み] Git マージでファイルに HEAD マークが残った

2022-10-14 20:27:20

質問

Gitを使ってコマンドラインでファイルをマージしようとしたら、マージが中断されたというエラーメッセージが表示されました。

それで終わりかと思いきや、私のファイルに gitmark があることに気づきました。このように。

start =
    expression

validchar = 
    [0-9a-zA-Z_?!+\-=@#$%^&*/.]

integer = 
<<<<<<< HEAD
    digits:[0-9]+
        { return digits.join(""); }
=======
    sign:"-"* digits:[0-9]+
        { return sign + digits.join(""); }
>>>>>>> gh-pages

このファイルは私以外が編集したもので、以下のような行が挿入されています。

  • より小さい記号の後のHEAD ( <<<<<<< HEAD )
  • 変更されたコードの行数
  • 等号の文字列 ( ======= )
  • 新バージョンのコード
  • より大きい記号とブランチの名前で始まる別の行 ( >>>>>>> gh-pages )

さらに悪いことに、ファイルの中身はもはや順番通りではありません。これらのファイルを正常に戻し、gh-branch で行った変更を master ブランチにマージする方法をご存知の方はいらっしゃいますか?

どのように解決するのですか?

これらは コンフリクトマーカー . まだマージの途中ですが、Git が自動的にマージできない部分があったのですね。あなたは は手作業で編集する必要があります。 を手作業で編集し、その結果をコミットする必要があります。


たとえば、あなたの特定のケースでは、おそらく次のように解決したいと思います (注意 - 右側の矢印/テキストは私のメモであり、ファイルに入力するものではありません)。

integer = 
<<<<<<< HEAD                                  <-+ remove the bits here
    digits:[0-9]+                               |
        { return digits.join(""); }             |
=======                                       <-+
    sign:"-"* digits:[0-9]+
        { return sign + digits.join(""); }
>>>>>>> gh-pages                              <-- and this

というように保存します。

integer = 
    sign:"-"* digits:[0-9]+
        { return sign + digits.join(""); }