我有一个带有目录的(主)文件夹“ prj”,并在git init
那里创建一个存储库,并添加并提交了所有文件。git add *
我创建了另一个目录“ prj2”,git init
然后执行了一个git pull
将所有内容复制到“ prj2”的目录
现在,当我对prj2 repo中的文件进行更改并提交时,然后git push
对prj(main)进行操作,将出现错误:
远程:错误:拒绝更新签出的分支:refs / heads / master [K远程:错误:默认情况下,更新非裸存储库中的当前分支[K远程:错误:被拒绝,因为它将使索引和工作树不一致[K remote:error:与您推送的内容一致,并且需要'git r........。
这是设置主项目(prj)和第二个项目(prj2)的正确方法,我可以从该项目推送到主项目吗?
如果由于主项目存储库是一个裸git init..etc而无法进行推送,那么应该如何将其推送到主存储库呢?
还是其他设置更好?
更简单的方法是克隆主项目并将其配置为remote
。它是本地的事实不是问题
换句话说,不是复制init
两个存储库,而是init --bare
复制一个存储库。
或者,如果它们都需要有一个工作副本(即不是裸露的),那么只有两个仓库都不在同一分支中时,才可以使它工作。如果是这样,则意味着当prj2推送其更改时,prj1的工作副本将变得无效(这基本上就是您得到该错误的原因)。
最后,如果您需要位于同一分支中,则git是使用错误的工具,因为您谈论的更多是mirror。在这种情况下,类似的东西rsync
会更好
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句