137

I have a local branch named 'my_local_branch', which tracks a remote branch origin/my_remote_branch.

Now, the remote branch has been updated, and I am on the 'my_local_branch' and want to pull in those changes. Should I just do:

git pull origin my_remote_branch:my_local_branch

Is this the correct way?

4

4 回答 4

137

您不使用:语法 -pull始终修改当前签出的分支。因此:

git pull origin my_remote_branch

当你my_local_branch签出时,你会做你想做的事。

由于您已经设置了跟踪分支,因此您甚至不需要指定 - 您可以这样做...

git pull

当您my_local_branch签出时,它将从跟踪的分支更新。

于 2012-07-01T00:01:26.560 回答
85

您已设置该分支的上游

(看:

git branch -f --track my_local_branch origin/my_remote_branch
# 或者(如果 my_local_branch 当前已签出):
$ git branch --set-upstream-to my_local_branch origin/my_remote_branch

git branch -f --track如果分支被签出则不起作用:使用第二个命令git branch --set-upstream-to ,否则你会得到“ fatal: Cannot force update the current branch.”)

这意味着您的分支已经配置了:

branch.my_local_branch.remote origin
branch.my_local_branch.merge my_remote_branch

Git 已经拥有所有必要的信息。
在这种情况下:

# if you weren't already on my_local_branch branch:
git checkout my_local_branch 
# then:
git pull

足够的。


如果你在推送' my_local_branch'时没有建立上游分支关系,那么一个简单的推送设置上游分支git push -u origin my_local_branch:my_remote_branch就足够了。 在那之后,对于随后的拉/推,或者再次,已经足够了。
git pullgit push

于 2012-06-30T23:58:03.150 回答
0

因为有人不小心弄乱了本地提交。

删除本地脏分支

git branch -D master

然后从远程重建一个分支

git checkout -b master origin/master

于 2022-01-24T07:49:04.870 回答
0

注意:我是一个 git 新手。

当我执行“git pull”时,我通常会看到“错误:您对以下文件的本地更改将被合并覆盖:”“请在合并之前提交您的更改或存储它们。” (因为我做了一些我并不真正关心的细微的临时更改。)

如果我从远程拉动,我通常不关心我的更改。我只想要团队推送的最新消息。(我有时会使用“stash”来保留一些更改。)

因此,我如何从远程获取最新信息并清除我的任何本地更改:

git reset --hard (对于当前分支)

或者

git reset --hard origin/master(用于返回 master)

然后:

git pull (将当前远程文件拉到我的本地)

于 2021-08-19T16:20:04.303 回答