如何将"普通"Git存储库转换为裸存储库?
主要区别似乎是:
在普通的git存储库中,您.git在存储库中有一个包含所有相关数据的文件夹,而所有其他文件都构建了您的工作副本
在一个简单的Git存储库中,没有工作副本,文件夹(让我们称之为repo.git)包含实际的存储库数据
git version-control git-clone git-bare git-non-bare-repository
我想默认推送和拉出所有分支,包括新创建的分支.
我可以为它定义一个设置吗?
否则,当我在本地添加一个新分支并且我想从服务器中提取它时,最简单的方法是什么?
我创建了一个具有相同名称的新分支,并试图拉,但它不起作用.问我分支机构的所有远程配置.我该如何设置它.
我试图使用cURL从GitHub下载tarball ,但它似乎没有重定向:
$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2
<html><body>You are being <a href="https://nodeload.github.com/pinard/Pymacs/tarball/v0.24-beta2">redirected</a>.</body></html>
Run Code Online (Sandbox Code Playgroud)
注意:wget适合我:
$ wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2
Run Code Online (Sandbox Code Playgroud)
但是我想使用cURL,因为最终我想用以下内容解压缩内联:
$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx
Run Code Online (Sandbox Code Playgroud)
我发现重定向后的URL原来是https://download.github.com/pinard-Pymacs-v0.24-beta1-0-gcebc80b.tar.gz,但我希望cURL足够聪明才能计算出来这个.
我正在使用非常大的git仓库(> 10gb).repo本身有许多大型二进制文件,每个文件有许多版本(> 100mb).其原因超出了本问题的范围.
目前,不再可能从repo中正确克隆,因为服务器本身将耗尽内存(它有12gb)并发送失败代码.我会把它粘贴在这里,但要花费一个多小时才能达到失败的程度.
有没有什么方法可以让克隆成功?甚至一个抓住回购的部分副本?或者我可以克服一口大小的块,这不会让服务器窒息?
如下所示,我必须设置一个裸仓库的工作树:
cd barerepo
git status
fatal: This operation must be run in a work tree
git --work-tree=/var/www/mywork/ status
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
如何为该repo设置工作树,以便我不必每次都指定它?
我尝试barerepo/config用这个修改,但它不起作用.
[core]
repositoryformatversion = 0
filemode = true
bare = true
worktree = /var/www/mywork
Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用git的应用程序,所以我需要测试它与git的集成.在我的git存储库中,我需要有另一个存储库(my_git_repo/tests/another_repo).如何在没有git子模块的情况下提交它?(我不希望只有一个文件的另一个远程存储库(在github/bitbucket等))
有任何想法吗?
有没有办法克隆远程 git 存储库,同时保留该存储库中可能存在的任何无法访问的提交?
场景是这样的:我需要恢复从我维护的服务器上的裸 git 存储库中删除的分支。我有这个分支的最后一次提交的哈希值,但是常规的 git 命令似乎无法在裸存储库上运行,所以据我所知,没有任何方法可以直接在服务器上恢复它。
我也无权访问包含此提交的任何非裸存储库。如果我这样做了,我可以通过检查提交哈希然后从中创建一个分支来轻松恢复它。这就是为什么我希望能够克隆这个存储库,同时保留其中任何无法访问的提交,这样我就可以做到这一点。
我在我的笔记本电脑上的git repo中有我的代码库,我在外部硬盘上设置了一个裸git repo用于我的备份.我成功推送了我的第一次提交,但注意到我的外部硬盘驱动器上的备份存储库没有显示文件.
如果我的笔记本电脑崩溃,我将如何恢复完整的代码库?在我的外置硬盘上设置为裸仓库不正确吗?
谢谢Dusty
当我尝试以下bash命令时:
git clone --bare https://github.com/planetoftheweb/learnangular.git .git
git config --bool core.bare false
Run Code Online (Sandbox Code Playgroud)
其次是:
git reset --hard
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
error: `unable to stat just-written` file app/component.app.ts: No such file or directory
error: unable to stat just-written file app/component.artist-details.ts: No such file or directory
error: unable to stat just-written file app/component.artist-item.ts: No such file or directory
error: unable to stat just-written file app/pipe.search.ts: No such file or directory
error: unable to stat just-written file app/app.modules.ts: No such file or directory
Run Code Online (Sandbox Code Playgroud)
是什么原因?