教程3 整合修改记录

解决冲突

为了把变更内容推送到远程数据库,我们必须手动解决冲突。首先请运行pull,以从远程数据库取得最新的变更记录吧。

Windows

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

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

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

点击‘确定’

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

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

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

请点击‘Yes’

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

发生冲突

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

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

进行修改

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

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

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

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

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

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

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

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

Mac

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

实行pull

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

点击OK按钮

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

合并中发生冲突

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

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

进行修改

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

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

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

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

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

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

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

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

主控台

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

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

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

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

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

用tutorial进行的操作

进行修改

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

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

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

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

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

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

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

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

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

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

前一页