至于阅读git tutorails我已经明白,为了共享我的ubuntu linux服务器中的项目文件,我需要创建一个裸存储库并将其链接到实际的存储库,以便当用户克隆实际的repo时,他们得到具有实际工作文件的实际回购。
当他们将更改推送到服务器时,post-receive挂钩现在会更新包含工作文件的实际repo。
这是我能理解的全部内容,我有很多困惑,我有以下问题:
1) How do I create my bare repo.
2) How do I link it to the actual repo consisting the actual work files.
3) And what is this post-receive hook? Where does it reside? And what configurations do I need to do for the same.
答案 0 :(得分:2)
如何创建我的裸仓库。
阅读this。
要将现有存储库复制到新的bare
存储库,您可以运行以下命令:
git clone --bare my_project my_project.git
如何将其链接到包含实际工作文件的实际仓库。
阅读this。
non-bare
存储库可以将bare
添加为remote
:
git remote add <name> <remote-URL>
然后,从non-bare
:
git push <name-of-remote> <branch-to-push-from>:<remote-branch-to-push-to>.
同样,Git SCM book涵盖了这一点,我强烈建议您在StackOverflow再次提出相同问题之前阅读3>。
阅读本书。它为您提供了搜索字词(例如git remote repositories
,git bare server
等)。当您知道要搜索的内容时,StackOverflow上有关于此问题的批次。
这个post-receive钩子是什么?
这是在push
存储库之后运行的脚本。 (在收到数据后,存储库运行post-receive
脚本 - 明智的命名)。
它在哪里居住?
在hooks
存储库的bare
目录中;在.git/hooks
否则。阅读this。
我需要为此做什么配置。
您不需要post-receive
挂钩来执行您要求执行的操作(设置基本的bare
存储库,以便少量多个用户可以{ {1}}和git push
来自它。如果您不知道git pull
是什么,此时您不需要一个。设置您的存储库,使用基本的git命令并与hook
repo上的协作者一起工作,并提出有关设置和使用bare
挂钩的具体问题。
我不能强调这一点:阅读本书。我会帮你的。我学到了很多。 :) 将告诉您如何:
Chapter 4
)。 Chapter 2, section 5
)。 Chapter 7, section 3
)。 答案 1 :(得分:1)
.git
文件夹是真正的存储库。它将是本地工作文件夹中的一个文件夹,但是裸存储库没有工作文件夹,因此它具有.git扩展名。
裸存储库是没有工作文件夹的存储库(即文件被检出的位置)。要创建裸存储库,请使用git init --bare <repository name>
。
在本地工作时,执行git clone <repository path> <working folder>
以生成远程存储库的本地副本。然后使用git fetch
或git pull
定期更新,并使用git pull
将更改应用回服务器。在本地克隆存储库会为其创建一个名为remote的名称,此名称为origin
。
分支基本上是一个命名的开发路径,使用git branch
命令创建。将本地分支与远程分支链接告诉git在获取时默认为什么,并且推送并且可以简化所使用的命令。要链接或跟踪远程分支,请使用git branch -u <remote>/<branch>
。
没有理由让git的各种钩子参与任何这些基本操作。
git book很好地涵盖了这些基本操作。