Git 仅推送裸存储库?

标签 git git-push git-pull

当我尝试“git push origin master”到我的外部磁盘上的远程存储库时,出现了 git 警告,指出在下一版本的 git 中默认拒绝使用 checkout 存储库。在外部磁盘上,我已经 checkout 项目,我想将我在计算机上所做的更改发送到这些存储库。 “git push origin master”不是正确的方法吗?我是否必须在外部磁盘上的存储库上“git pull ...”?所以我不能 push 更​​改而只能 pull 它们?仅使用“裸”存储库是不同的?因此,如果我的外部磁盘上的存储库是一个裸存储库,我可以将更改推送到它吗?我理解正确吗?

最佳答案

仔细阅读警告。新的默认禁止仅适用于推送到非裸存储库中当前 checkout 的分支。推送到非裸存储库中的任何其他分支是完全可以的。

这是因为推送进程无法直接访问工作树,因此索引和分支头在工作树下发生了变化。当您随后转到工作树时,看起来工作树已经撤消了推送的更改以及真正在开发中的任何更改。这使得很难将两组更改分开。

推送到其他分支没有这样的缺点。然后,您可以转到该存储库,并根据需要将这些更改 merge 到 checkout 的分支中。

关于Git 仅推送裸存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2147741/

相关文章:

git - 无法强制添加 Git

git - 将代码推送到多个源

Android studio git 消息 : following untracked working tree files would be overwritten by merge, 但未显示哪些文件

git - 如何查看裸存储库中的所有 pull ?

java - 如何使用 JGit 查找最后更改文件的人

Git:试图回溯已删除分支上的压缩提交 - 这可能吗?

Git 挤压 merge 还是 git 强制推送?

git push origin branchname 总是推送到 master

git - pull-only repo 的 'git status' 表示该分支位于 origin/master 之前。为什么?

r - 使用 RStudio 在 Git 中发起 pull 请求