Github全面详解-13解决文件冲突

来源:互联网 发布:淘宝千人千面收费吗 编辑:程序博客网 时间:2024/06/15 16:55
视频教程观看地址:http://study.163.com/course/courseMain.htm?courseId=1003674052假设在合并我们的pull request到主分支之前,我们想要对add-readme分支添加额外的修改。这真的很简单。我们需要做的是在我们的文本编辑器中对文件进行所需的更改,然后提交更改,并再push回add-readme分支就可以了。然而,在这节课,我们将通过在GitHub网站上以及在我们的本地副本上提交更改来故意创建冲突。当你刚开始使用Git和GitHub时,我的建议是不要在网站上文件进行任何编辑。而是,在本地计算机中执行所有工作,这样将帮助您有效的避免冲突。如果你只是从本地计算机上push更改而且这个项目就你一个人维护的话,那么你将永远与远程代码仓库同步。但是,如果您开始在一个团队中和他人协作,他们可能在你工作时,向远程分支push一个更改,而且这个更改和你正在本地做的更改是同一个文件,那么,就会导致冲突。这是一个相当普遍的问题,它并不意味着世界末日,但是它是很可怕的,所以让我们练习创建和修复合并冲突。所以,回到我的代码视图,这里,切换到到add-readme分支。图 2-49假如说现在,我想添加一个表情到我的README文件。我将点击README.md文件,然后点击这里的编辑按钮。图 2-50图 2-51在里面修改这个文件:图 2-52然后预览这次修改:图 2-53看起来不错。所以这里我将添加一个提交更改的说明:“更新README.md,添加表情”。图 2-54这里还可以添加一个可选的扩展描述,然后我单击commit changes来直接提交对add-readme分支的更改。现在,来到打开本地的readme文件:图 2-55通常情况下,如果我们对远程代码仓库有任何更改,我们将会使用命令git pull来获取远程更改。这样可以保持同步,总之,一定要在你push之前pull。但是,假如这里,我忘记了我在远程存储库上进行了更改,并且我还继续在这里为我的README添加一些信息。然后保存。图 2-56所以在控制台中,我将运行git branch。让我们确保我在正确的分支。图 2-57我还在add-readme分支,很好。所以现在,我将添加和提交我的更改。git add.git commit –m “add profile”还是一样,接着git push origin add-readme。图 2-58出现了这个情况,这是怎么回事?这里提示说:push失败,更新被拒绝,因为您远程所做的工作没有包含在本地,这通常是由另一个代码仓库推送到同一个引用引起的:好吧,这是对的,我并没有在push之前pull,对吧?所以现在我键入git pull origin add-readme。然后,我得到一个新的错误消息。图 2-59CONFLICT:README.md文件的合并冲突。自动合并失败;修复冲突,然后提交结果。好吧,所以这里我们可以重新打开README.md。图 2-60我们可以看到这里有一堆东西。它看起来有点可怕,但我们会通过它。好吧,我们可以看到有很多错误和冲突标记,它显示我们在哪里发生冲突。在中间,有一系列等号来分隔两个版本。在顶部,是我在本地计算机上的最近的提交,在等号下面是我在GitHub上所做的改变。这里,我需要选择保留哪些内容。这里,我想保留表情的那部分,所以我只需要删除“自由自在学知识,就用虚幻账号”,和所有这些冲突标记,并保存。图 2-61然后回到我们的控制台,我们将做一个git status。没毛病,接着,会做一个git add . 。git commit –m”解决合并冲突”,我会去git push origin add-readme。现在我们回到远程代码仓库。来到Pull request标签下。图 2-62点击进去,你可以在这里看到我的提交历史,更新README.md文件添加此外,如果我们切换到提交视图,我们可以看到文件提交的历史。现在我已经添加了我们的额外的评论,而且修复了提交冲突,那么,现在让我们回到会话视图,点击Merge pull request并确认合并。点击确认合并。这里提示:pull request成功合并,并且关闭。图 2-63那么恭喜。您已完成第一次提出请求。由于我们不再使用add-readme分支,我们可以在这里删除分支。如果我们重新访问问题页面,我们看到add-readme问题现在已关闭。这是因为我们在我们的请求正文中包含了fixed 1#,当pull request被合并时,GitHub负责关闭这个问题。如果我们转到我们的个人资料,我们将在我们的贡献图表上看到一个绿色方块。最后,让我们快速回顾一下我们做了什么。在我们打开一个pull request后,我们对GitHub网站上的代码仓库进行了更改。由于我们忘了在push之前pull,而且我们对本地计算机上的同一个文件进行了更改,所以就创建了一个冲突。最后,我们是通过在文本编辑器中,删除了我们不想保留的内容,然后提交并推送到GitHub上的远程代码仓库来解决这个冲突的。在下一阶段,我们将展示如何使用这些功能在团队中进行协作。更多精彩内容尽在视频中!本文固定链接:http://www.oxox.work/web/github/conflict/ | 虚幻大学

查看原文:http://www.oxox.work/web/github/conflict/
0 0
原创粉丝点击