解决冲突

优质
小牛编辑
142浏览
2023-12-01

Windows

用tutorial进行的操作
若要进行pull操作,请右击tutorial目录,并选择‘拉取’。

从右侧的点击菜单中点击pull

用tutorial进行的操作
在以下画面点击‘确定’。

点击‘确定’

用tutorial进行的操作
我们看到画面上的警告信息表示自动合并失败。请点击‘关闭’以退出窗口。

请点击‘关闭’以退出窗口

用tutorial进行的操作
若您确认变更,请点击‘Yes’。

请点击‘Yes’

用tutorial进行的操作
TortoiseGit告诉我们:因"sample.txt"出现了合并冲突,所以自动合并失败。请点击‘确定’以关闭画面。

发生冲突

用tutorial进行的操作
当打开sample.txt,您会看到Git已添加标示以显示冲突部分。

连猴子都懂的Git命令
add 把变更录入到索引中
<<<<<<< HEAD
commit 记录索引的状态
=======
pull 取得远端数据库的内容
>>>>>>> 17c860612953c0f9d88f313c8dfbf7d858e02e91

进行修改

我们将保留两方的修改,并删除多余的标示行以解决冲突。

连猴子都懂的Git命令
add 把变更录入到索引中
commit 记录索引的状态
pull 取得远端数据库的内容

用tutorial进行的操作
既然解决了冲突,并且文件的内容已修改,现在我们需要提交。请右击并从菜单中选择‘提交’。

这样,我们已成功地从远程数据库导入最新的修改内容。

我们已成功地从远程数据库导入最新的修改内容

这表明两个修改记录通过新的合并提交已经成功整合了。

这时候可以把修改推送到远程数据库,应该不会发生合并冲突了。

辛苦了!Git的基本使用方法的说明到这里就告一段落了。有关分支以及修改等更高阶的内容,请参见高级篇!

Mac

用tutorial进行的操作
点击工具栏的“pull” 按钮。

实行pull

用tutorial进行的操作
显示如下画面,点击OK按钮。

点击OK按钮

用tutorial进行的操作
显示对话框,表明在合并中发生了冲突。

合并中发生冲突

用tutorial进行的操作
打开sample.txt文档进行确认。
对Git发生冲突的部分进行如下修改。

连猴子都懂的Git命令
add 把变更录入到索引中
<<<<<<< HEAD
commit 记录索引的状态
=======
pull 取得远端数据库的内容
>>>>>>> 17c860612953c0f9d88f313c8dfbf7d858e02e91

进行修改

在这里导入两方的修改,并删除多余的标示行。

连猴子都懂的Git命令
add 把变更录入到索引中
commit 记录索引的状态
pull 取得远端数据库的内容

用tutorial进行的操作
修改了文件的内容之后,我们需要进行提交了。

这样就完成了从远程数据库导入最新的修改内容。

从远程资源库读取最新修改内容完毕

这表明两个修改记录已经整合了。

这时候,之前被拒绝的push应该可以通过了,push一下看看吧。

辛苦了!Git的基本使用方法的说明到这里就告一段落了。有关分支以及修改等更高阶的内容,请参见高级篇!

主控台

用tutorial进行的操作
请执行以下指令。

$ git pull origin master
Username: <用户名>
Password: <密码>
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://nulab.backlog.jp/git/BLG/tutorial
 * branch            master     -> FETCH_HEAD
Auto-merging sample.txt
CONFLICT (content): Merge conflict in sample.txt
Automatic merge failed; fix conflicts and then commit the result.

显示合并时发生冲突的讯息。

用tutorial进行的操作
讯息显示「Merge conflict in sample.txt」。请打开sample.txt文件,我们看到Git已添加标示以显示冲突部分。请为Git无法完成主动合并的部分做以下的修改。

连猴子都懂的Git命令
add 把变更录入到索引中
<<<<<<< HEAD
commit 记录索引的状态
=======
pull 取得远端数据库的内容
>>>>>>> 4c0182374230cd6eaa93b30049ef2386264fe12a

用tutorial进行的操作

进行修改

导入两方的修改,并删除多余的标示行以解决冲突。

连猴子都懂的Git命令
add 把变更录入到索引中
commit 记录索引的状态
pull 取得远端数据库的内容

用tutorial进行的操作
文件的内容发生了修改,所以需要进行提交。

$ git add sample.txt
$ git commit -m "合并"
[master d845b81] 合并

这样就完成了从远程数据库导入最新的修改内容。

用tutorial进行的操作
我们可以用log命令来确认数据库的历史记录是否准确。指定--graph选项,能以文本形式显示更新记录的流程图。指定--oneline选项,能在一行中显示提交的信息。

$ git log --graph --oneline
*   d845b81 合并
|\
| * 4c01823 添加pull的说明
* | 95f15c9 添加commit的说明
|/
* 3da09c1 添加add的说明
* ac56e47 first commit

这表明两个修改记录已经整合了。

这时候,之前被拒绝的push应该可以通过了,push一下看看吧。

辛苦了!Git的基本使用方法的说明到这里就告一段落了。有关分支以及修改等更高阶的内容,请参见高级篇!