在本地机器上设置git存储库

时间:2011-03-23 22:40:00

标签: git git-workflow

如何在本地系统上设置git存储库? (我在防风盒上)

这是我想要实现的设置:(一切都在我的本地机器上)

  • 主机文件夹(其作用类似于中央存储库)
  • 客户端文件夹

我想在客户端文件夹中执行我的所有开发。完成后,我想将其推送到主机文件夹。


这就是我所做的:(在Windows上使用git bash)

  • cd d:/ adinsert
  • mkdir主持人
    • cd host
    • git init

cd c:/

  • mkdir客户端
    • cd client
    • git init
    • git remote add origin d:/ host //在客户端文件夹中添加了一些文件并提交了它们
    • git push origin master

当我把东西推到原点时,git会吐出很多远程错误。但是,当我让我的主机成为一个裸机时,它会成功推送。

我不明白常规git和裸git之间的区别。从手册中,我理解的是,裸git用于存储增量,当你不想存储原始文件时。但是,我想将文件存储在主机中。我怎么能这样做?

3 个答案:

答案 0 :(得分:15)

“常规git”和“裸git”之间的区别在于裸存储库具有工作目录。你永远不应该进入常规的git存储库,因为你可能遇到难以恢复的问题。总是进入一个裸仓库。

如果您想要一个显示文件副本的“主机”,请设置第三个存储库,从主机中克隆一个。每当您想要更新主机文件时:

  • git push从您的工作目录更新主存储库
  • 从您的主机目录
  • git pull从原点拉

您甚至可以在裸存储库上设置一个提交后挂钩,以自动执行第二步。

答案 1 :(得分:3)

client目录中,您会看到.git目录。 bare版本基本上只是.git目录内容而没有工作副本。

最简单的方法是克隆它(与尝试设置另一个存储库相比):

来自c:/ call:

git clone d:/host client

这表示克隆'host'仓库并将其存储在名为'client'的文件夹下。

答案 2 :(得分:1)

不要在客户端文件夹中创建新的git仓库,克隆主机仓库

cd client
git clone d:/adinsert/host