相关疑难解决方法(0)

如何在Git中克隆单个分支?

我有一个名为'skeleton'的本地Git存储库,用于存储项目框架.它有一些分支,用于不同类型的项目:

casey@agave [~/Projects/skeleton] git branch
* master
  rails
  c
  c++
Run Code Online (Sandbox Code Playgroud)

如果我想查看一个新项目的主分支,我可以做

casey@agave [~/Projects] git clone skeleton new
Initialized empty Git repository in /Users/casey/Projects/new/.git/
Run Code Online (Sandbox Code Playgroud)

一切都是我想要的.具体来说,新的主分支指向骨架主分支,我可以推拉以移动对基本项目设置的更改.

但是,如果我想要克隆另一个分支,那么什么不起作用.我无法得到它,所以我只拉动我想要的rails分支,例如分支,然后新的存储库有一个master分支,rails默认情况下推送到骨架存储库的分支并从中拉出.

这有什么好办法吗?或者,也许这不是Git想要我构建事物的方式,我当然对此持开放态度.也许我应该有多个存储库,Ruby on Rails骨架存储库跟踪主骨架存储库?任何克隆Ruby on Rails骨架存储库的单个项目.

git branch git-clone

749
推荐指数
13
解决办法
66万
查看次数

使用git获取最新版本

我想跟踪一个使用git的项目.我不想克隆完整的存储库和完整的历史记录,我只想要最新版本,我希望能够从远程项目更新到新版本.

我尝试过使用git clone,但这会创建整个存储库的副本(文件大小很大),并且跟踪更改会使磁盘空间更大(100mb的文件现在占用超过2gb).

我不打算提交补丁,我不需要历史记录.我只想要像颠覆这样的最新版本.

这可能在git中吗?

git

348
推荐指数
3
解决办法
12万
查看次数

从远程Git存储库中检索特定提交

有没有办法只从远程Git仓库检索一个特定的提交而不在我的PC上克隆它?远程仓库的结构与我的结构完全相同,因此不会有任何冲突,但我不知道如何做到这一点,我不想克隆那个庞大的存储库.

我是git的新手,有什么办法吗?

git git-fetch

178
推荐指数
6
解决办法
34万
查看次数

为什么我不能从浅层克隆中推出?

git clone --depth命令选项说

--depth <depth> 
Create a shallow clone with a history truncated to the specified number of revisions. 
A shallow repository has a number of limitations 
(you cannot clone or fetch from it, nor push from nor into it),
 but is adequate if you are only interested in the recent history of a large project with a long history,
 and would want to send in fixes as patches. 
Run Code Online (Sandbox Code Playgroud)

为什么浅克隆有这种限制?为什么它只是一个补丁工作流程?

对于某些项目工作流程,我需要将最新的提交从单个分支传递给编码器,然后让它们能够push(快进)开发到主服务器.这部分是为了安全,知识产权保护和回购规模,部分是为了减少大回购会给天真编码员带来的困惑.是否有允许这样的git工作流程?


更新:根据Karl Bielefeldt的回答,git checkout --orphan …

git workflow git-clone

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

仅使用本地存储库历史记录的子集创建GitHub存储库

背景:我正在接近开放采购我已经工作了两年多的个人研究代码.它起初是一个SVN存储库,但大约一年前我转移到Git,我想在GitHub上分享代码.然而,多年来它累积了很多,我宁愿公共版本以其现状开始.但是,我仍然愿意为此做出贡献并融入其他人的潜在贡献.

问题是:有没有办法"分叉"一个git存储库,这样就不会在fork(它存在于GitHub上)上保留历史记录,但是我的本地存储库仍然有完整的历史记录,我可以拉/推送到GitHub?

我对大型存储库的管理端没有任何经验,所以非常感谢细节.

git fork github

44
推荐指数
1
解决办法
7159
查看次数

如何使用多个线程更快地使git克隆?

我对github的互联网速度从来都不快,并且它以50kb/s的速度挥之不去(我的互联网速度是20mbit,这不是很快,但仍比这快得多).根据我的估计,存储库是多gb,因此需要很长时间.

git是否支持使用多线程下载对象,这样我可以最大化我的网速?

git git-clone

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

如何更新git浅层克隆?

背景

(对于tl; dr,请参阅下面的#questions)

我有多个git存储库浅克隆.我使用的是浅克隆,因为它与脏克隆相比要小得多.每个人都克隆着做git clone --single-branch --depth 1 <git-repo-url> <dir-name>.

这工作正常,但我没有看到如何更新它.

当我用标签克隆时,更新没有意义,因为标签是冻结的时间点(据我所知).在这种情况下,如果我想更新,这意味着我想要通过另一个标签克隆,所以我只是rm -rf <dir-name>再次克隆.

当我克隆了主分支的HEAD然后想要更新它时,事情变得更加复杂.

我试过git pull --depth 1但是虽然我不想把任何东西推到远程存储库,它抱怨它不知道我是谁.

我试过了git fetch --depth 1,但是虽然它似乎更新了一些东西,但我检查它是不是最新的(远程存储库上的某些文件的内容与我克隆上的文件不同).

/sf/answers/1435601401/之后,我试过git fetch --depth 1; git reset --hard origin/master,但有两件事:第一,我不明白为什么git reset需要,第二,尽管文件似乎是最新的,但仍有一些旧文件,以及git clean -df不会删除这些文件.

问题

让克隆创建git clone --single-branch --depth 1 <git-repo-url> <dir-name>.如何更新它以达到相同的效果rm -rf <dir-name>; git clone --single-branch --depth 1 <git-repo-url> <dir-name>?或者是rm -rf <dir-name>再次克隆唯一的方法?

注意

这不是如何在不增加主要仓库大小的情况下更新浅层克隆子模块 …

git git-clone

25
推荐指数
1
解决办法
8289
查看次数

Git:如何直接从远程存储库存档?

我通常使用下面的命令project.git来获取指定目标中的存档:

git archive master | tar -x -C /home/kave/site/
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以直接从远程存储库归档到目标目录?

我尝试过这样的事情,没有任何乐趣:

git archive master https://kave@dndigital.git.cloudforge.com/myoproject.git | tar -x -C /home/kave/site/
Run Code Online (Sandbox Code Playgroud)

有什么建议?谢谢

git

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

在git中,commit(s)和revision(s)之间有什么区别

有许多git命令,例如git clone --depth 10 <repo>,需要给出修订[ git help revisions] 的数量.

提交和修订之间有什么区别(在git中,而不是说svn)?

或者在尝试计算修订/提交时它是否只显示复数形式,例如,必须通过走向提交及其父母的DAG(有向无环图)或其他一些仔细区分来计算修订?

git version-control

14
推荐指数
2
解决办法
7584
查看次数

克隆git"浅"存储库时出错

发出命令时出现以下错误git clone --bare /path/to/repo:

fatal: attempt to fetch/clone from a shallow repository

首先,什么是浅存储库,为什么不让它克隆它?

git

10
推荐指数
2
解决办法
5495
查看次数

标签 统计

git ×10

git-clone ×4

branch ×1

fork ×1

git-fetch ×1

github ×1

version-control ×1

workflow ×1