如何共享同一台PC上两个不同目录中的本地存储库

时间:2018-10-17 16:24:13

标签: git

我正在尝试在脱机的Windows笔记本电脑上准备Git演示。 使用Git Bash,我在/ c / demo / git-demo /中创建了一个小项目,并进行了git init,并添加了文件test.txt并提交了它。

然后在另一个外壳中,我做了

cd /c/demo
git clone /c/demo/git-demo git-demo-clone
cd git-demo-clone
ls -l

那很好,我看到了test.txt。

然后我从git-demo-clone修改文件并执行一次提交,再次工作正常。

但是,当我下次从git-demo-clone中执行git push时,却出现错误

remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: is denied, because it will make the index and work tree inconsistent
remote: with what you pushed, and will require 'git reset --hard' to match
remote: the work tree to HEAD

该怎么办?

1 个答案:

答案 0 :(得分:2)

之所以发生这种情况,是因为在另一个存储库中,检出的分支是您要尝试推动的分支(通常不行,因为这就像在操作给定对象时将地毯从脚下移开科)。您可以通过4种方式避免这种情况:

  • 有一种方法(通过回购配置)告诉git以避免此检查(但我不知道详细信息)。
  • 转到另一个遥控器并签出另一个分支,或将其设置为处于分离的HEAD(git checkout --detach
  • 进入另一个分支
  • 代替推入另一个存储库,而转到另一个存储库,将此远程对象添加到您作为远程对象提交的位置,然后从中拉出。