如何将更改合并到本地存储库

时间:2014-07-10 19:29:50

标签: github

我在github.com上有一个存储库,我在网站上对README.md文件进行了一些更改,我的本地存储库(位于本地主机上)已经创建,并且已经完成了提交。需要您的专家建议,我如何将我从github网站上所做的更改合并到我的本地存储库。

我没有尝试过pull请求,因为它会对我现有的文件进行更改。

请帮忙建议。

3 个答案:

答案 0 :(得分:1)

当双方都修改了同一个文件时,会发生合并冲突。

首先,确保提交您的本地更改。然后是git pull。当存在无法自动解决的合并冲突时,您必须在文本编辑器中打开相应的文件,并从哪一侧手动选择所需的行。这就是它的样子。

<<<<<<< HEAD
Text added locally
=======
Text added on the remote
>>>>>>> master

更正该行并删除git添加的分隔符后,git add文件并完成与git commit的合并。由于您之前提交了本地更改,因此您可以随时回滚以防止冲突的文件混乱。

有关详细信息,我建议您阅读有关resolving merge conflicts的Github指南。

答案 1 :(得分:0)

在合并到本地存储库之前,最好先提交所有挂起的更改。

合并更改的最简单方法是使用git merge

git fetch origin
git merge origin/master

(捷径:git pull origin master

另一种选择是使用git rebase

对变更进行重新定位
git fetch origin
git rebase origin/master

(捷径:git pull --rebase origin master

使用这两个选项,如果您使用GitHub的Web界面所做的更改与您在本地执行的更改相冲突,则您将遇到必须手动解决的冲突。

如果一切顺利(没有冲突),两个操作(merge或rebase)将产生相同的内容,但提交的顺序不同。使用合并,如果您使用gitk查看历史记录,您将看到两个合并为一个的分支。使用rebase,您将看到一条直线,首先显示Web界面上的更改,并在稍后显示您的本地更改。这也意味着重新修订的修订版的提交ID将被重写。有些人发现历史的直线看起来更有条理。但无论如何,正如我之前所说,你的文件内容将完全相同。

我知道您要求将更改合并到一个特定文件。但是两个Git分支(GitHub和你的本地分支)已经分歧,只有合并或rebase操作可以将它们重新组合在一起。还有其他更简洁的方法来获得你想要的东西,但最好是使用这些推荐方法中的任何一种。

答案 2 :(得分:-1)

使用git,Pull实际上是一个获取和合并,因此只要你提交了本地更改,它们仍然会在你的本地存储库中,你只需要添加另一个提交,即README。 md版。您错过了分支的VCS重点,这对您本地存储库来说是一个好主意。