git push branch已经签出;裸露后需要工作目录

时间:2017-08-24 08:15:57

标签: git

我很难理解这个;几乎所有我通过堆栈溢出发现并且博客似乎暗示使用--bool core.bare true解决了这个问题,但我相信有些东西缺失。

示例:

"cd $HOME"
git init thing

cd existingrepo
git remote add origin "$HOME/thing"
git push origin master

这样做,我收到错误! [remote rejected] master -> master (branch is currently checked out)

我找到的答案基本上就是说,转到thing/并运行

git config --bool core.bare true

当我这样做时,我确实可以推动,但是当我再次去thing/时,它处于一种奇怪的状态 - 没有文件,并且我被告知了git-status

fatal: This operation must be run in a work tree

所以我反转了布尔操作

git config --bool core.bare true
git status

我发现有变化,但也有delete个阶段

~/thing$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    .gitignore
        deleted:    registry.py
        deleted:    static/css/normalize.css
        deleted:    static/css/skeleton.css

我只能通过执行git reset --hard来解决此问题,此时我的thing/存储库与我的原始存储库匹配。

(我正在使用本地文件夹执行此操作,但在SSH上也会发生相同的行为,这是我的目标工作流程 - 基于SSH的基本存储库)

请问有人在这里赐教?

1 个答案:

答案 0 :(得分:1)

你好,请你试着删除你的东西&#39; repo并用git init --bare thing.git重新启动它。您不需要运行git config --bool core.bare true