Git:如何将远程文件与本地文件合并?

4

我是Git的新手,正在努力理解它。

我已经克隆了一个远程仓库,比如说ssh://repo到我的本地机器。在克隆之后,我编辑了一些文件,在此期间远程仓库也发生了变化。

我该如何更新我的本地仓库以与远程仓库保持同步,同时保留两组更改呢?

3个回答

4

只需使用以下命令将更改提交到本地代码库:

git commit

命令。现在您永远不会丢失您的更改!然后使用以下命令从远程存储库拉取新更改:

git pull

fetch命令。此命令获取新的更改并将其与您的更改合并。通常情况下没有冲突。在这种情况下,您可以自由地将更改推送到远程存储库。否则,您需要解决所有冲突,并使用标记将它们标记为已解决。

git add

使用 git status 命令(只需使用提示)来提交合并,并使用以下命令提交此合并:

git commit

命令。


每次我使用git pull命令时,都会得到“Already up-to date”的响应,但是我的本地文件并没有更新为远程代码所做的更改。有任何想法为什么会这样? - kz3
1
@htrk123 在这种情况下可能会发生:您切换到XXX分支,而其他人将其更改推送到YYY分支。 - Oleksandr Pryimak
@htrk123 这些更改已提交到远程存储库了吗? - Oleksandr Pryimak
另一个人编辑了文件并将它们推送到远程仓库,现在我需要将我本地所做的更改添加到远程仓库中已有的更改中。 - kz3
@htrk123 然后 git pull 必须正常工作。检查远程分支的名称。使用 git branch -a 命令来执行此操作。 - Oleksandr Pryimak
你看到别人的改变了吗?尝试运行“git fetch --all”从远程仓库获取所有更改,然后再次运行“git log remotes/origin/master”。 - Oleksandr Pryimak

2
"

git pull"会将远程的更改合并到你本地的副本中。如果你想要独立地保留你的更改,你可以在拉取之前将更改移动到一个新分支上。因此,如果你还没有提交你的更改,你可以像这样操作:

"
> git stash #stash the changes
> git branch dev_branch #create a new branch
> git checkout dev_branch #move to the new branch
> git stash apply #paste the changes into the new branch
> git checkout master #switch back to the master branch
> git pull #update the master branch

在此之后,你将获得一个包含你所做更改的代码版本(dev_branch),以及与远程代码匹配的版本(master)。现在你可以独立于远程代码进行dev_branch的工作。(当你了解git时,你会发现这是一种更“git”的工作方式——只在主分支上工作,并使用“git pull”来合并远程更改是一种更“subversion”的工作方式。)

0

你可以使用命令“git pull”和此标志合并任何冲突。 如果有冲突,请解决它并执行git commit。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接