TLDR:执行 git reset --hard origin/mybranch 将本地存储库重置为更早的版本而不是最新版本。
开发分支看起来像这样:

我认为这最好用一个例子来解释
[myusername@myhost myapp]$ git branch
* dev
[myusername@myhost myapp]$ git pull origin dev
From bitbucket.org:
* branch dev -> FETCH_HEAD
Already up-to-date.
[myusername@myhost myapp]$ git reset --hard origin/dev
HEAD is now at 2be5b0e Merged in mybranch (pull request #57)
[myusername@myhost myapp]$ git pull origin dev
From github.com:myusername/myapp
* branch dev -> FETCH_HEAD
Updating 2be5b0e..2cdc555
Fast-forward
--file list here--
19 files changed, 324 insertions(+), 196 deletions(-)
[myusername@myhost myapp]$ git log
commit 2cdc555dde1ef7ef187756036bb2d19dacae0c26
Merge: 6c9399d fc7d29f
Author: First Last <first.last@myhost.com>
Date: Thu Jun 4 00:53:16 2020 +0000
Merged in mybranch (pull request #81)
[myusername@myhost myappc]$ git reset --hard origin/dev
HEAD is now at 2be5b0e Merged in mybranch (pull request #57)
Run Code Online (Sandbox Code Playgroud)
我原以为执行 git reset --hard origin/dev 会将 repo 重置为最后一次提交(即拉取请求 #81)?
我还从文件系统中删除了所有文件和文件夹(包括 .git*),并在上周重新克隆了 repo。它有一段时间表现正常,这又发生了。
[myusername@myhost myapp]$ git pull origin dev
From bitbucket.org:
* branch dev -> FETCH_HEAD
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
这里origin/dev就不更新了。看来remote.origin.fetch是没设置好。尝试git -c remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* pull origin dev看看是否origin/dev更新。如果是,请运行git config remote.origin.fetch +refs/heads/*:refs/remotes/origin/*,以便从那时起origin/foo更新。git pull origin foo
旁注:在 Windows 的 git-bash 中,我经历过虽然没有打印在 的日志中,origin/foo但确实得到了更新,因此日志并不完全负责。foo -> origin/foogit pull origin foo
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |