教你玩转Git-合并冲突

教你玩转Git-合并冲突

首页战争策略合成与冲突更新时间:2024-06-01

合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。

$ git branch * master $ cat runoob.php

首先,我们创建一个叫做 change_site 的分支,切换过去,我们将 runoob.php 内容改为:

< ?php echo 'runoob'; ?>

创建 change_site 分支:

$ git checkout -b change_site Switched to a new branch 'change_site' $ vim runoob.php $ head -3 runoob.php < ?php echo 'runoob'; ?> $ git commit -am 'changed the runoob.php' [change_site 7774248] changed the runoob.php 1 file changed, 3 insertions( )

将修改的内容提交到 change_site 分支中。 现在,假如切换回 master 分支我们可以看内容恢复到我们修改前的(空文件,没有代码),我们再次修改 runoob.php 文件。

$ git checkout master Switched to branch 'master' $ cat runoob.php $ vim runoob.php # 修改内容如下 $ cat runoob.php < ?php echo 1; ?> $ git diff diff --git a/runoob.php b/runoob.php index e69de29..ac60739 100644 --- a/runoob.php b/runoob.php @@ -0,0 1,3 @@ < ?php echo 1; ?> $ git commit -am '修改代码' [master c68142b] 修改代码 1 file changed, 3 insertions( )

现在这些改变已经记录到我的 "master" 分支了。接下来我们将 "change_site" 分支合并过来。

$ git merge change_site Auto-merging runoob.php CONFLICT (content): Merge conflict in runoob.php Automatic merge failed; fix conflicts and then commit the result. $ cat runoob.php # 代开文件,看到冲突内容 < ?php <<<<<<< HEAD echo 1; ======= echo 'runoob'; >>>>>>> change_site ?>

我们将前一个分支合并到 master 分支,一个合并冲突就出现了,接下来我们需要手动去修改它。

$ vim runoob.php $ cat runoob.php < ?php echo 1; echo 'runoob'; ?> $ git diff diff --cc runoob.php index ac60739,b63d7d7..0000000 --- a/runoob.php b/runoob.php @@@ -1,3 -1,3 1,4 @@@ < ?php echo 1; echo 'runoob'; ?>

在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决

$ git status -s UU runoob.php $ git add runoob.php $ git status -s M runoob.php $ git commit [master 88afe0e] Merge branch 'change_site'

现在我们成功解决了合并中的冲突,并提交了结果。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved