本地机器中的git存储库可以从笔记本电脑访问

时间:2012-07-04 08:58:00

标签: git version-control repository push pull

我想使用以下设置来使用git:对于给定的项目,我希望将我的“origin”存储库放在我的桌面计算机的工作目录中($ desktop)。然后我希望能够从家里或其他任何地方($ laptop)访问,提取和推送此存储库。

对于我在其他questions中看到的内容,该过程通常会涉及使用

在我的桌面创建一个裸git存储库
$desktop > git init -bare

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

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

3 个答案:

答案 0 :(得分:2)

你是对的,不建议推出带结账的存储库;这是因为推送不会更新签出的文件,因此存储库的状态很容易变得混乱。

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

请注意,即使您正在推送裸存储库,也没有什么可以阻止您首先从工作存储库中撤出 - 因此您始终可以了解自己在桌面上所做的事情。

答案 1 :(得分:1)

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

[core]
   sharedRepository true

[receive]
   denyCurrentBranch false

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

希望这有帮助!

答案 2 :(得分:1)

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

那是:

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默认情况下会根据该规范进行推送。

相关问题