相关疑难解决方法(0)

Git:如何克隆第一次提交?

谁能告诉我如何克隆第一次提交?我不想删除最近的提交,只需制作初始状态的克隆副本,这样我就可以获取一些文件.

git

16
推荐指数
3
解决办法
2万
查看次数

获取/拉取超大型存储库的一部分?

这可能是显而易见的,之前已经多次以不同的方式询问过,但是在搜索了一段时间之后我找不到答案.

假设如下:

  • 比方说,我本地有一块500GB的磁盘;
  • 我有一个100 TB的远程存储库; 因此,克隆整个存储库的成本根本不可行;
  • 用于创建远程存储库的工作目录由1000个顶级目录DIR001,DIR002,... DIR00N组成,每个目录包含多个子目录,文件仅在叶子目录下(例如DIR001/subdir1/fileA1 ... DIR001/subf1/fileAN和DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN,...
  • 我没有明确标记或分支目录DIR001,DIR002,... DIR00N或其他任何事情
  • 我初始化一个全新的本地git存储库

如何有效地从远程存储库中提取或获取DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN的最后提交版本,而不是其他任何内容?

来自远程存储库的DIR001/subdir2/fileB1 ... DIR001/subdir2/fileBN 中的单个文件的最后提交版本,没有其他内容?

如何有效地提取或获取以前提交的所述文件子集的版本而不是其他内容?

也许fetch/pull不是正确的命令.

git

10
推荐指数
1
解决办法
4201
查看次数

git - 获取中间提交

是否有任何git命令来获取中间提交,就像'svn co -r xxx'一样?谢谢!

git

8
推荐指数
1
解决办法
1万
查看次数

使用git拉出特定版本

我需要来自特定版本项目(SonarQube项目)的源代码,但我无法弄清楚如何从git中提取它.

我已将repo添加为远程(git add remote origin)并从主分支中提取最新版本,但这不是我需要的版本.

我知道我需要的提交是d25bc0e,但当我尝试" git fetch origin master d25bc0e"我得到错误" fatal: couldn't find remote ref d25bc0e".

可能是我做错了,我对Git不太熟悉.

git github

8
推荐指数
1
解决办法
2万
查看次数

什么是浅层克隆的局限性

在我们尝试引入Git的组织中,我们现在遇到与二进制文件相关的Git行为问题.
我们的项目将混合使用二进制和文本类型文件,典型大小可以是1 GB.我们担心几年后完整克隆会变得太大并导致性能和磁盘空间问题.
迁移到Git的环境之一将其SW当前放在名为TCM的系统上.版本为7 - 10年的存储库总大小为2 TB.
ClearCase的另一个环境大约有7到8年的数据,大约1 TB.
由于Git不会以特别影响二进制文件的增量存储,因此5年以上的情况会引起用户的关注.
浅克隆功能将是理想的.但是文档说这个"浅的存储库有许多限制(你不能克隆或获取它,也不能从中推送或插入它),但如果你只对一个长期的大型项目的近期历史感兴趣就足够了历史,并希望将修补程序作为补丁发送." 粗略检查浅克隆将表明它工作正常,但绝对有已知的用例,它不会工作,因此文档
是否有一个已知的用例列表,这不会工作?

git

6
推荐指数
1
解决办法
1087
查看次数

如何有效地获取特定提交的 GitHub 存储库?

我正在尝试构建一个持续集成系统。每次推送到 GitHub 都会触发一次构建。

\n\n

每个构建都需要签出/下载其正在处理的提交的存储库。我正在尝试找到一种在大型存储库上不需要花费几分钟的方法(因为构建只需要几秒钟\xe2\x80\xa6)。

\n\n

请注意,我不想在构建之间存储数据(这消除了缓存的可能性)。

\n\n

我探索过的解决方案:

\n\n\n\n

我在 GitHub 上看到的所有其他解决方案都假设服务器上有最新的 git 版本,或者克隆存储库一次就可以了,但就我而言,情况并非如此。我的每个构建都从头开始(因为这是一个限制)。

\n\n

所以我在 GitHub 的具体情况下问:如何(以任何方式)下载特定提交的代码,以便能够在该提交上运行持续集成工具?

\n

git github

6
推荐指数
1
解决办法
2999
查看次数

Git获取单个提交

我想将远程存储库的单个提交(当然是历史记录)提取到本地提交.一些Stack Overflow响应表明以下内容应该有效,但它不会:

md foo
cd foo
git init
git fetch https://github.com/ld4apps/lda-serverlib.git f1e32e18a90e10c150221af55c69aeafaa42c57a
Run Code Online (Sandbox Code Playgroud)

这会产生以下错误:

错误:没有这样的远程参考f1e32e18a90e10c150221af55c69aeafaa42c57a

令人惊讶的是(对我而言)以下是(某种)工作:

git fetch https://github.com/ld4apps/lda-serverlib.git :f1e32e18a90e10c150221af55c69aeafaa42c57a
Run Code Online (Sandbox Code Playgroud)

这会创建一个名为f1e32e18a90e10c150221af55c69aeafaa42c57a(我不想要)的新本地分支,但至少新分支具有我尝试获取的内容.我可能已经预料到以下命令会执行相同的操作,但它会得到与第一个示例相同的错误:

git fetch https://github.com/ld4apps/lda-serverlib.git f1e32e18a90e10c150221af55c69aeafaa42c57a:f1e32e18a90e10c150221af55c69aeafaa42c57a
Run Code Online (Sandbox Code Playgroud)

我尝试在Windows和Linux上使用几个不同的git版本,并看到了相同的行为.

谁能解释一下这里发生了什么?我对Git,fetchrefspecs的理解是什么?我真正想要的是一个单一git fetch命令,我可以提供远程分支或标记的id或提交ID,它将获取相应的提交.

git github

5
推荐指数
1
解决办法
3385
查看次数

从远程git repo获取特定提交

因此,我基本上要做的是从一个远程仓库下拉一个给定的提交(由其SHA标识),然后将其作为新分支(其名称我自动生成)推送到另一个远程仓库.源代码将会有所不同,这些都是一次性操作,所以我不想git remote add这些遥控器,我不想为提交创建引用/分支.而且我不想改变任何本地分支机构的HEAD.

那么,我如何才能获取给定的远程提交(以及对我来说是新的任何父提交)并将它/它们添加到我的本地git数据库中?

git pull 隐含地涉及合并或变基,所以这是不可能的.

我试过了,git fetch https://github.com/foo/bar.git 7d0969daba1fdf9d5bb9bc9a2847fd1bc1c7e426
但这只是导致
error: no such remote ref 12819ad8e10e5906df5352d7d8fec1fceb1f3afc
(是的,我确认在那个遥控器上存在提交SHA;看起来git在这里不接受SHA).

我的意思是,我想我可以想出一个任意的本地分支名称,以便始终将提交下拉,然后在每次推送后删除该分支,但这似乎是不优雅的......

git git-fetch

5
推荐指数
1
解决办法
4057
查看次数

没有本地克隆的远程存储库上的git操作

在没有本地克隆的情况下,使用标准的 git 命令行工具可以在远程 git 存储库上进行什么样的只读操作?

  • 有没有办法在远程仓库上列出引用(特别是标签和分支)?
  • 有没有办法列出给定修订版中给定目录的内容?
  • 是否可以在给定修订版中检索给定文件的内容?

我猜想在没有本地克隆的情况下执行此操作可能会涉及一些低级别的原始操作,并且我猜想使其可用最好通过一些简短的 shell 脚本来完成。这仍然在这个问题的范围内。

git remote-access remote-server

5
推荐指数
1
解决办法
2740
查看次数

发送特定文件夹的拉取请求?

在一次提交中,我更改了多个文件夹中的多个文件,例如folderAfolderB、 和folderC。更改中folderA只是添加了注释和一些用于打印中间结果的代码,这符合我自己的理解。folderBfolderC是新创建的,我在那里为该项目编写了一些代码,现在我只想发送 和 的拉取请求folderBfolderC你会怎么做?
从 github 网页或命令行工作都会有所帮助。

git github pull-request

5
推荐指数
1
解决办法
6048
查看次数