回答
你可以简单地克隆仓库到另一个目录在同一台机器上:
git clone /bare/repo/dir.git
当前目录将成为您的回购非裸克隆,你会得到master
分支的结账自动。然后使用通常的命令如git pull
根据需要更新它。
作为一项优势,此操作非常高效 - 如果您指定本地目录为git clone
,那么git将尝试使用硬链接在这两个回购站之间共享对象。
你可以使用'git show'。
http://www.kernel.org/pub/software/scm/git/docs/git-show.html
基本上是:
git --no-pager --git-dir /path/to/bar/repo.git show branch:path/to/file.txt
我一直在寻找的 “超然工作树” 的方法(如图here):
git init --bare
git config core.worktree /somewhere/else/
git config core.bare false
git checkout -f
请注意,您需要在'core.worktree'行之前运行'core.bare',正如该博客文章的评论(刚才我刚刚确认)所述。否则,你会得到'fatal:core.bare和core.worktree没有意义'的错误。 – craigpatik
奇怪,我也是这样:https://gist.github.com/joallard/8871673。也许Git中的行为在某种程度上发生了变化? –
这看起来像* *关闭*,我的需要,但你的链接被打破,上面给出的命令没有真正解释,我可以根据自己的需要进行调整。你能修复这个链接和/或解释那里发生了什么吗? – Wildcard
这关的其他2即兴答案,但它填补了我的使用案例的空白 - 它用于更新来源的回购和检查分支和任何git操作,因为你最终得到一个正常的比较lete git回购。
git clone /path/to/bare/repo /new/path/to/full/repo
cd /new/path/to/full/repo
git remote set-url origin [email protected]:swift/swift.git
执行这3行代码,你可以在此之后git pull
和git branch
和git checkout some_branch
等等,因为你现在有连接到远程回购正常完整的混帐回购协议。
你提到some_branch的唯一一个,你应该详细说明。我特意试图找到一个分支的例子,这个分支在谷歌上很热门,并且是OQ的一部分。 ... – blamb
这是它如何工作的:
$ git init --separate-git-dir /path/to/existing-bare-repository /path/to/workdir
$ cd /path/to/workdir
$ git checkout .
瞧!
有关信息:git init
将会报告:Reinitialized existing Git repository in /path/to/existing-bare-repository
。但要有信心。 man git-init
说: 在现有的存储库中运行git init是安全的。它不会覆盖已经存在的东西。
神奇的是,git init
本身并不会让你的文件出现在工作目录中。你必须检出根目录。
- 1. SharpSVN:如何从存储库URI获取工作副本路径?
- 2. 作为git存储库和工作副本的本地目录
- 3. 在制作现有存储库的裸仓库克隆之后,是否可以将原始存储库视为裸仓库的副本?
- 4. 从裸存储库推送到另一个裸存储库
- 5. gitosis在哪里存储工作副本?
- 6. Cornerstone 2中的现有工作副本的结帐存储库?
- 7. 由两个存储库组成的一个工作副本
- 8. SVN重定位工作副本的存储库
- 9. SVN中这个工作副本的存储库URL简写?
- 10. 如何从远程存储库获取分支的新副本?
- 11. 使用git从远程存储库获取干净的副本
- 12. 将Git工作目录转换为裸露的存储库?
- 13. 将现有SVN工作副本转换为git存储库
- 14. 如何使用工作副本填充新存储库
- 15. 如何从工作副本创建svn存储库?
- 16. 将SVN工作副本提交到Git存储库
- 17. 乌龟SVN合并存储库与工作副本
- 18. 不同工作副本的单独本地存储库(代码库)
- 19. 获取工作副本对象
- 20. 如何将工作目录“附加”到裸GIT存储库
- 21. 如果从工作副本中删除某些文件,如何将工作副本提交到CVS存储库?
- 22. Git如何将不同的工作副本推送到不同的裸仓库
- 23. 验证裸回购,但在工作副本上的git提交
- 24. 存储数据库的脱机副本
- 25. 制作远程git存储库的本地副本
- 26. 从仓库获取svn日志,而不是工作副本
- 27. 如何在git存储库中获取旧版本文件的副本?
- 28. 将从cvs2git创建的存储库转换为裸存储库
- 29. 裸露的存储库权限。
- 30. 没有裸存储库的Git tfs
此操作是否适用于更新? –
什么样的更新?克隆的存储库只是另一个克隆,所以它的工作树需要使用'git pull'进行更新。如果您需要自动发生这种情况,您可以安排服务器的“post-receive”挂钩在克隆上运行“git pull”。 – user4815162342
哦,对,显然。我在“克隆”方面想的太多了。 –