我正在尝试设置一个服务,该服务将在检测到远程分支上的更改时自动更新我的存储库。在任何人提到它之前,我知道在 URL 中嵌入密码是不好的做法。我目前正在使用:
git fetch https://<user>:<pass>@github.com/<org>/<repo>
这给出了以下输出:
From https://github.com/<org>/<repo>
* branch development -> FETCH_HEAD
当我git status
在获取后运行时,它不会检测到最新的更改。
如果我在没有 URL 的情况下运行正常git fetch
并手动提供用户名和密码,我会得到不同的输出:
From https://github.com/<org>/<repo>
96353f7..e88782c development -> origin/development
然后git status
按预期运行并检测到远程分支上有更改。
我对 Git 不是很有经验,我觉得我错过了一些非常明显的东西。我的错误在哪里?
编辑
所以看起来缺少的部分是我在 URL 之后指定本地和远程分支:
git fetch https://<user>:<pass>@github.com/<org>/<repo> development:origin/development
正如公认的答案指出的那样:如果您不指定远程名称,git 会将远程更改放在默认的 FETCH_HEAD 中。这可以通过明确指定本地和远程分支来解决。
我仍然有点困惑为什么git fetch
知道默认情况下从源远程获取,但是指定 URL 会改变这个默认值。但无论如何它现在都在工作