【发布时间】:2017-06-21 12:20:18
【问题描述】:
当我尝试从裸露的远程存储库 pull 时,git 返回 Already up-to-date。
据我了解,如果本地存储库有一些更改,并且我提交它们从而推进HEAD,pull 不应该从裸远程存储库(其工作树已正确配置)并将它们与覆盖更改的本地合并?
如果本地存储库已更改并且这些更改已提交,那么推送当然可以工作 - 另一方面,拉取则不行。如果远程存储库发生更改并且我从中 pull、fetch --all 或 clone,我会收到相同的 up-to-date 消息或旧文件/以前推送的文件。
我做错了什么?
编辑,提供有关我想要做什么的更多信息。
我确实有一个本地存储库,其中包含两个文件,foo.c 和 foo.exe,以及一个配置了 post-receive 挂钩的裸远程存储库,用于将所有推送的文件放入工作树中。
发出git push remote master 后,我可以在工作树目录上看到foo.c 和foo.exe。如果在本地存储库上修改了这两个文件中的任何一个,git add . 和git commit -m "commit" 将跟踪修改后的文件,随后的git push remote master 将更新服务器上的文件。
如果在服务器上添加了foo.h,无论如何,我尝试git fetch remote master,git 说本地分支是最新的并且没有合并(它将获取的提交文件替换为本地的,是吗?)是必需的。怎么会这样?我需要先在远程存储库上提交更改吗?
【问题讨论】:
-
您说“如果在服务器上添加了 foo.h”,但似乎您没有提交它(进入服务器的仓库),所以没有什么可以从服务器中提取(只能推送/提交)拉/取)。
标签: git version-control git-bare