LoginSignup
0
0

More than 5 years have passed since last update.

Git のマージ メモ

Last updated at Posted at 2016-10-03

マージ (merge) とは?

  • 加えた修正を統合する作業
  • 自分の変更を加えたブランチを、元のブランチにマージすることによって、修正を流し込む。
  • 変更を持ってるブランチと、変更を流し込まれるブランチを指定して行う。
    • git コマンドや SourceTree の場合は、流し込む先のブランチに移動してから、取り込みたい変更を持っているブランチを指定して行う。

WS000074 - コピー.jpg

競合 (conflict)

  • ほとんどの場合、Git は自動的にコミットを合成 (?) してくれるが、自動的にできない場合、競合が起きる。
  • マージする両方のブランチの同じ個所に修正があると、競合を起こす場合がある。
  • この場合は、手動でどうすべきかを指定する。

競合の例

  • 修正前
original
int main(int argc, char **argv)
{
    printf("foo");
    return 0;
}
  • master ブランチ
    • "foo""bar" に書き換えた。
master
int main(int argc, char **argv)
{
    printf("bar");
    return 0;
}
  • develop ブランチ
    • "foo""baz" に書き換えた。
develop
int main(int argc, char **argv)
{
    printf("baz");
    return 0;
}
  • これを、master ブランチに移動して、 develop ブランチをマージする
merge
int main(int argc, char **argv)
{
<<<<<<< HEAD
    printf("bar");
=======
    printf("baz");
>>>>>>> develop
    return 0;
}
  • 競合した部分を修正してコミットする
merge
int main(int argc, char **argv)
{
    printf("foo bar baz");
    return 0;
}

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0