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

Github 如何将更改合并到本地存储库,github,Github,我在github.com上有一个存储库,在那里我从网站对README.md文件进行了某些更改,我的本地存储库(位于本地主机上)已经创建并对其进行了提交。我需要你的专家建议,如何将我从github网站上所做的更改合并到我的本地存储库中 我没有尝试拉取请求,因为它将对现有文件进行更改 请帮助建议。使用git时,Pull实际上是一种获取和合并,因此只要您提交了本地更改,它们仍将位于本地存储库中,您只需添加另一个提交,即README.md版本。您缺少了VCS的一个要点,即分支,这对本地存储库来说是个好主

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

我没有尝试拉取请求,因为它将对现有文件进行更改


请帮助建议。

使用git时,Pull实际上是一种获取和合并,因此只要您提交了本地更改,它们仍将位于本地存储库中,您只需添加另一个提交,即README.md版本。您缺少了VCS的一个要点,即分支,这对本地存储库来说是个好主意。

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

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

<<<<<<< HEAD
Text added locally
=======
Text added on the remote
>>>>>>> master
>主机
更正行并删除git添加的分隔符后,
git添加文件并使用
git提交完成合并。因为您以前提交了本地更改,所以您可以随时回滚,以防弄乱冲突文件


有关更多信息,我建议阅读Github指南。

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

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

git fetch origin
git merge origin/master
(快捷方式:
git pull origin master

另一个选项是使用git rebase
在更改的顶部重新设置基址:

git fetch origin
git rebase origin/master
(快捷方式:
git pull——重新设置原点主控形状的基础

对于这两个选项,如果您使用GitHub的web界面所做的更改与您在本地所做的更改相冲突,那么您将有需要手动解决的冲突

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


我知道您要求将更改合并到一个特定文件。但是这两个Git分支(GitHub和您的local)已经出现分歧,只有合并或重新基址操作才能将它们重新组合在一起。还有其他不太干净的方法可以得到你想要的东西,但最好使用这两种推荐的方法。

Sync不会合并文件?我没有使用任何客户端(github客户端),我正在尝试从Linux上实现。我不认为手动应用通过web界面所做的更改是一个好建议。@danijar我同意,然而,作为最后的手段,这是一种选择,它只是没有利用VCS或git。鉴于这种情况,我认为现在是线程启动者了解合并冲突的最佳时机。所以你删除了那一段很好。谢谢,但是是否可以只提取一个文件,我的意思是只提取完成更改的文件。你可以提取提交,而不是文件。Git可以合并单个文件,但在这里您不必担心,因为web界面为您的更改创建了提交。此外,无论如何,只有更改才会被删除。