sách gpt4 ăn đã đi

git pull Origin master không cập nhật Origin/master?

In lại 作者:IT王子 更新时间:2023-10-29 00:55:01 29 4
mua khóa gpt4 giày nike

根据文档,git pull thực hiện git fetch 然后执行 git merge,但是在那种情况下执行 git pull origin master 应该执行 git fetch origin master 对吗?然而,它似乎并没有这样做。这是一个例子。

假设我的远程 origin master(在我的例子中是在 GitHub 上)有以下历史:

commit 1111111 : my first commit
commit 2222222 : a commit from someone else

而且我只在本地进行第一次提交,如下所示

git checkout master
git log --pretty=format:'%h' -n 1
1111111

git checkout origin/master
git log --pretty=format:'%h' -n 1
1111111

从这里我开始 pull 并查看如下结果:

git checkout master
git pull origin master

git log --pretty=format:'%h' -n 1
2222222

git checkout origin/master
git log --pretty=format:'%h' -n 1
1111111

可以看出, pull 实际上用来自远程源的新提交更新了我的 master 分支,但我的本地源/master 仍然在原处。强制我做以下事情

git fetch origin master

git checkout origin/master
git log --pretty=format:'%h' -n 1
2222222

这是 git pull 的正确行为,还是我配置有误?我查看了 git pull 手册页,没有看到任何提示,但我可能错过了。

câu trả lời hay nhất

有点奇怪,但是如果你使用git pull [remote] 它实际上不会更新远程引用。如果您以某种方式考虑它,这有点有意义:因为您指定了要获取的特定引用,所以它不必查找有关您的远程分支的任何信息,因此它本身并不知道它是哪个远程分支应该更新。它当然可以弄清楚,如果它最终得到修复我也不会感到惊讶,但这是现有的行为。 (邮件列表中可能有关于它的消息 - 我不知道。)

不过,您可以轻松解决它。如果你使用 git pull origin/master ,因为您正在指定通过远程分支获取的内容,所以它应该更新该远程分支。如果你无论如何都在你的主分支上(或任何其他分支跟踪源/主),你可以做 git pull并让它填充默认值,它会更新远程分支。

这记录在 git-pull 中手册页,最简洁地在 EXAMPLES 下,但也在其他地方。相关部分:

Merge into the current branch the remote branch next:

$ git pull origin next

This leaves a copy of next temporarily in FETCH_HEAD, but does not update any remote-tracking branches. Using remote-tracking branches, the same can be done by invoking fetch and merge:

$ git fetch origin
$ git merge origin/next

关于git pull origin master 不更新 origin/master?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8689054/

29 4 0
IT王子
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress