【问题标题】:git repository in local machine to access from laptop本地计算机中的 git 存储库以从笔记本电脑访问
【发布时间】:2012-07-04 18:13:36
【问题描述】:

我希望通过以下设置与 git 一起使用:对于给定的项目,我希望将我的“原始”存储库放在我工作的台式计算机的目录中 ($desktop)。然后我希望能够从家里或其他任何地方($laptop)访问、拉取和推送这个存储库。

对于我在其他 questions 中看到的内容,该过程通常涉及使用在我的桌面上创建一个裸 git 存储库

$desktop > git init -bare

但是我的理解是,这会产生一个没有工作目录的存储库。我不想要这个。我希望我的存储库是特定于项目的,位于我的台式机和笔记本电脑的给定目录中,并且只跟踪我保存在给定目录树中的内容。这显然是 git 的问题,应该“永远”不要推送到正常的存储库中。

有没有办法解决这个问题?

【问题讨论】:

    标签: git version-control repository push pull


    【解决方案1】:

    您说得对,不建议通过签出推送到存储库;这是因为推送不会更新签出的文件,因此存储库的状态很容易变得混乱。

    解决此问题的一种简单方法是在您的桌面上创建两个存储库:一个是您可以从笔记本电脑推送到的裸存储库,另一个是您想要在桌面上编码时使用的工作存储库。另一种方法是让您的笔记本电脑存储库在您的桌面上可见,这样您就可以双向拉动。

    请注意,即使您要推送到裸存储库,也没有什么能阻止您先从工作存储库中提取 - 因此您可以随时了解您在桌面上所做的事情。

    【讨论】:

      【解决方案2】:

      一种可能性是简单地从桌面上的正常存储库中提取,而不是直接推送到那里的签出分支,而是推送到仅用于在笔记本电脑上接收更新的其他分支,然后单独合并它们.

      即:

      laptop$ git clone desktop:path/to/project
      laptop$ cd project
      [... make changes...]
      laptop$ git push -f desktop:path/to/project master:from-laptop
      
      desktop$ cd path/to/project
      desktop$ git merge from-laptop
      

      您可以在笔记本电脑存储库中配置branch.master.push master:from-laptop,以便git push 默认根据该规范推送。

      【讨论】:

        【解决方案3】:

        在您的桌面存储库中,您需要在 .git/config 中添加:

        [core]
           sharedRepository true
        
        [receive]
           denyCurrentBranch false
        

        第一个配置允许您推送到存储库,第二个配置允许您推送远程存储库已签出的分支。

        希望有帮助!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-04-06
          • 1970-01-01
          • 2016-02-07
          • 2011-12-17
          • 2017-08-19
          • 1970-01-01
          • 2014-07-06
          • 2013-08-03
          相关资源
          最近更新 更多