我目前在工作中使用svn.
我们的设置是:每个人都有一个工作副本,我们承诺由apache2服务的svn服务器.
所以我提交了更改,另一个更新,每个人都可以按照自己的意愿处理副本.
因此部署非常简单.
但现在,我想用Git做同样的事情.可能吗?
我想在我的主服务器上有一个git repo,在家里开发,提交对服务器的更改等等.
谢谢你的帮助
我想计算 git 存储库中的总代码行数。我在谷歌找到了答案。
git ls-files -z | xargs -0 cat | wc -l
它在本地存储库中运行良好。
但。我想在远程存储库中计数。
所以,我试过了。
git ls-files -z /home/bjyoo/repositories/root/localfiletest.git | xargs -0 cat | wc -l
,
git ls-files -z --git-dir=/home/bjyoo/repositories/root/localfiletest.git | xargs -0 cat | wc -l
和
git --git-dir=/home/bjyoo/repositories/root/localfiletest.git --ls-files | xargs -0 cat | wc -l
所有命令失败。
有谁知道如何计算代码总行数?
我理解如何在Git中配置稀疏结账,但我想知道是否可以消除主要目录.例如,假设我有一个Git存储库,其文件夹结构如下:
我只想要里面的内容stuff2.对于那些目录的稀疏检出,.git/info/spare-checkout文件看起来像这样:
folder3/another/foo/bar/stuff2/
Run Code Online (Sandbox Code Playgroud)
我的问题是在我完成稀疏结账后,我没有看到stuff2或者stuff2我的目录根目录内的内容; 我看到folder3,然后所有的子目录导致stuff2.
我猜这个问题的答案是Git不可能,但我只是想确定一下.这是我想念的SVN的一种(也是唯一的)行为; 能够运行svn co https://url.com/myrepo/folder3/another/foo/bar/stuff2 .并将内容转储到当前目录中.
我想将 SVN 存储库导入 GitHub Enterprise 存储库
与此相关的问题有很多,其中大多数都可以通过 Git 子模块或 Git 子树来解决。
就我而言,我有两个存储库:
该模块存储库具有以下架构:
foolib/
moduleA/
...
moduleB/
...
...
Run Code Online (Sandbox Code Playgroud)
对于该项目,只有很少的模块foolib被用作svn:externals. 例如,这个主项目仅使用moduleAfrom foolib.
正如这个问题中提到的,一种可能的解决方案是使用稀疏结帐。我猜 Git 子树也能做到这一点。不幸的是它没有解决主要问题。
如果我的项目很小,只要我从 得到一些东西foolib,即使使用 space-checkout,我也会检索到整个历史记录foolib(例如2 GB)。SVN 不存在这个问题,因为svn:externals属性只获取它需要的内容,而不是整个历史记录。
我可以想象做一些愚蠢的事情,例如使用中列出的提交动态重新创建本地稀疏存储库git log --follow foolib/moduleA。但我认为这不是一个好的解决方案。
在 Git 中获得类似行为而无需获取foolib我只需要几个模块的所有内容的整个历史记录的正确工作流程是什么?
在没有本地克隆的情况下,使用标准的 git 命令行工具可以在远程 git 存储库上进行什么样的只读操作?
我猜想在没有本地克隆的情况下执行此操作可能会涉及一些低级别的原始操作,并且我猜想使其可用最好通过一些简短的 shell 脚本来完成。这仍然在这个问题的范围内。
我有一个git存储库(A),其中包含我需要在第二个存储库(B)中重用的库代码.
我的理解是git子模块不允许仅导入存储库中的特定路径,需要导入整个存储库.它是否正确?
因此,我看到了两个问题的解决方案:
第二种方法有哪些优点?在我看来,为小型库添加一个单独的存储库是一种过度杀伤,可能会给项目维护带来不必要的负担.有没有更好的方法来解决我的问题?