需要Git Setup(远程和本地repo)建议

时间:2010-08-31 02:13:09

标签: git installation

我买了一个个人开发盒,用于部署我在笔记本电脑上创建的东西。我认为使用Git进行代码管理是个好主意。我的想法是,我将继续在我的笔记本电脑上提交,并在需要时,将更改推送到远程开发框。

  1. 我在盒子上初始化了一个Git仓库并且
  2. 将其克隆到我的笔记本电脑上。
  3. 但在做git push后我收到此错误:

    remote:错误:拒绝更新签出的分支:refs / heads / master remote:错误:默认情况下,更新非裸存储库中的当前分支 remote:error:被拒绝,因为它会使索引和工作树不一致 remote:错误:你推了什么,并且需要'git reset --hard'来匹配

  4. 我知道远程回购不是裸露的。

    我想问一下,采用我的设置的唯一方法是:

    1. 在服务器上初始化一个裸仓库
    2. 在笔记本电脑上克隆
    3. 将新文件添加到本地笔记本电脑仓库并提交文件
    4. 推送到远程开发箱仓库
    5. 即使这样设置也会给我带来错误:

      No refs in common and none specified; doing nothing.
      Perhaps you should specify a branch such as 'master'.
      fatal: The remote end hung up unexpectedly
      

      修改

      我试过

      git push origin master
      

      出现此错误:

      error: unable to create directory for .git/refs/remotes/origin/master
      error: Cannot lock the ref 'refs/remotes/origin/master'.
      

      哦,愚蠢的我...我认为它是sudo,如

      sudo make me intelligent

2 个答案:

答案 0 :(得分:10)

正如你所说,第一条消息是因为遥控器不是一个简单的回购。

第二条消息是因为您创建的裸仓库没有分支开头。克隆存储库并签出工作副本时,它会为您创建主分支。但是当你试图推动时,远程仓库上没有主分支,所以它会抱怨。

尝试使用git push origin master(或调用遥控器),它应该为您在遥控器上创建分支。

答案 1 :(得分:0)

第二个问题:

error: unable to create directory for .git/refs/remotes/origin/master
error: Cannot lock the ref 'refs/remotes/origin/master'.
您的文件所有权和权限错误时,

会显示。此消息表示在当前的workin repo中,您尝试从某些文件推送是不可写的。看一下.git/refs/remotes/origin/master的整个路径来发现问题。 我建议不要使用git sudo,因为这会创建文件等作为unix用户root,并阻止其他人以后使用此repo而不用sudo一直在使用。

如果您发现自己处于多用户环境中,您可能会创建一个新的user git,其中包含空密码(该用户没有ssh!),可以通过{{切换到1}}(su =切换用户)处理所有推送/抓取/克隆等。这基本上是 deamonized setup 也会做的(任何元文件的一个用户)但可能有一些优点在某些情况下。