在本地计算机上设置git存储库

在本地计算机上设置git存储库,git,git-workflow,Git,Git Workflow,如何在本地系统上设置git存储库?(我在一个windoze盒子上) 这是我试图实现的设置:(所有内容都在本地计算机上) 主机文件夹(其作用类似于中央存储库) 客户端文件夹 我想在客户机文件夹中完成我的所有开发工作。完成后,我希望将其推送到主机文件夹 这就是我所做的:(在windows上使用git bash) cd-d:/A插入 mkdir主机 光盘主机 git初始化 cd c:/ mkdir客户端 cd客户端 git初始化 git远程添加源d:/host //在客户端文件夹中添

如何在本地系统上设置git存储库?(我在一个windoze盒子上)

这是我试图实现的设置:(所有内容都在本地计算机上)

  • 主机文件夹(其作用类似于中央存储库)
  • 客户端文件夹
我想在客户机文件夹中完成我的所有开发工作。完成后,我希望将其推送到主机文件夹


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

  • cd-d:/A插入
  • mkdir主机
    • 光盘主机
    • git初始化
cd c:/

  • mkdir客户端
    • cd客户端
    • git初始化
    • git远程添加源d:/host //在客户端文件夹中添加了一些文件并提交它们
    • git推送源主机
当我将内容推送到origin时,git会抛出很多远程错误。然而,当我将我的主机设置为一个裸git时,它成功地推送


我不理解普通git和裸git之间的区别。从手册中,我所了解的是,BareGit用于存储Delta和不想存储原始文件的情况。但是,我想将文件存储在主机中。我该怎么做呢?

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

cd client
git clone d:/adinsert/host
“常规git”和“裸git”的区别在于裸存储库没有工作目录。您永远不应该进入常规的git存储库,因为您可能会遇到难以恢复的问题。始终推到一个空的存储库中

如果您希望有一个“主机”,其中确实会显示文件副本,请设置第三个存储库,即从主机克隆。无论何时要更新主机文件:

  • git从您的工作目录推送
    ,以更新主存储库
  • git-pull
    从您的主机目录到从源目录进行拉取

您甚至可以在裸存储库上设置一个post-commit钩子来自动执行第二步。

在您的
客户端
目录中,您会注意到一个
.git
目录。一个
bare
版本基本上就是
.git
目录内容,没有工作副本

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

从c:/呼叫:

git clone d:/host client

这表示克隆“主机”repo并将其存储在名为“客户端”的文件夹下。

以下是我的设置:我有两个硬盘,其中一个用于备份。我来自subversion的一个背景,那里的主文件总是出现在服务器上。我想用git做一些类似的事情,我可以在主机上创建一个git存储库,向其中添加文件,将这些文件拉到我的客户端文件夹,进行更改,并将新的更新文件上载回主机。这可能吗?我本质上是在尝试做一些类似github的事情,即克隆存储库,在本地机器上进行更改,然后将其上传回github。(在我的例子中,它不是github,而是另一个文件夹)@brainydexter:当然,只需创建两个存储库,一个用于工作副本,另一个用于“主”副本(您可以将其视为Subversion术语中的“服务器”)。主存储库将是一个裸存储库,因此您可以将其推入其中。有助于我实现/接近所需的git hub行为。