• 解决冲突
    • Windows
    • Mac
    • 主控台

    教程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的基本使用方法的说明到这里就告一段落了。有关分支以及修改等更高阶的内容,请参见高级篇!

    前一页