一个简单的git配置,允许从本地推送到远程?

时间:2012-01-01 09:19:10

标签: git

我有两台机器:远程本地。我希望远程成为我可以从本地推送的主存储库。

我有一个当前project,它位于远程上,我想存储到git的存储库中。

答案

由于这些文件最初位于远程,而且我还需要一个可以推送到远程的裸存储库,这有点棘手。该程序本质上是 bootstrap ,直到我将裸目录启动。

我用来设置和测试的序列,正如 Paolo Capriotti 在下面的简短回答中所建议的那样:

  1. 远程上,在/home/me/depot/project
  2. 上创建一个裸仓库
  3. 远程上,还可以创建一个有效的.git repo
  4. 本地上,从远程上的工作回购中克隆
  5. 本地上,编辑.git / config,以便[远程“来源”]的网址指向远程
  6. 上的裸仓库
  7. 本地上,编辑一些文件,提交工作回购
  8. 本地上,git push origin master发布到远程上的裸仓库
  9. 远程上,编辑.git / config指向远程上的裸仓库
  10. 远程git pull从裸仓库中提取
  11. 更简单的序列将涉及完全忽略本地目录。首先在远程上设置工作和裸仓库,最后在本地上,从远程上的裸仓库中克隆。

    原始问题

    我尝试了以下内容:

    1. 远程> git init&& git add。 &安培;&安培; git commit -m“initial commit”
    2. 本地> git clone ssh:// remote / path_to_remote_git
    3. edit a file on local
    4. 本地> git commit -a
    5. 本地> git pull
    6. 本地> git push origin master
    7. 失败

        

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

      所以我重新开始:远程的rm -rf .git目录,本地的rm -rf。

      我尝试在remote上创建一个裸目录:

      1. 远程> export GIT_DIR = / home / me / depot / project.git
      2. 远程> git init&& git add。
      3. 失败

          

        致命:此操作必须在工作树中运行

        我需要执行哪些步骤才能从本地计算机推送到远程计算机,从project但没有存储库开始?

        如果可能,我更喜欢远程/home/me/depot目录中的软件仓库。

        这是否意味着我需要远程裸机和非裸机库?

1 个答案:

答案 0 :(得分:4)

使用git init --bare在远程创建裸存储库,但不要添加任何文件。在本地创建存储库,添加文件,然后推送到远程。