相关疑难解决方法(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 fetch不会获取所有分支

我已经克隆了一个存储库,之后其他人创建了一个新的分支,我想开始研究它.我阅读了手册,看起来很简单.奇怪的是它不起作用,我发现的所有帖子都表明我做的是正确的.因此,我会让自己受到抨击,因为这一定有明显的错误:

似乎是正确的行动

git fetch
git branch -a
* master
  remotes/origin/HEAD --> origin/master
  remotes/origin/master
git checkout -b dev-gml origin/dev-gml
Run Code Online (Sandbox Code Playgroud)

此时出现问题,由于某些原因git fetch我无法看到dev-gml远程分支.为什么不?如果我新近克隆存储库,它就在那里,所以远程分支肯定存在:

$ mkdir ../gitest
$ cd ../gitest
$ git clone https://github.com/example/proj.git
Cloning into proj...
remote: Counting objects: 1155, done.
remote: Compressing objects: 100% (383/383), done.
remote: Total 1155 (delta 741), reused 1155 (delta 741)
Receiving objects: 100% (1155/1155), 477.22 KiB | 877 KiB/s, done.
Resolving deltas: 100% (741/741), done.
$ cd projdir
$ git branch -a …
Run Code Online (Sandbox Code Playgroud)

git branch fetch git-fetch

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

更改Git远程URL后远程拒绝(不允许浅更新)

我在Git版本控制下有一个项目,我在服务器和本地计算机上工作.我最初将远程原点设置为我的本地计算机,但我现在想将其更改为BitBucket.

在服务器上我使用了命令

git remote set-url origin bitbucket_address
Run Code Online (Sandbox Code Playgroud)

但是现在当我尝试推动我的项目时,我得到了错误

 ! [remote rejected] master -> master (shallow update not allowed)
Run Code Online (Sandbox Code Playgroud)

造成这种情况的原因是什么?如何解决?

git

145
推荐指数
4
解决办法
4万
查看次数

如何制作浅git子模块?

是否有可能有浅子模块?我有一个包含多个子模块的超级项目,每个子模块都有很长的历史记录,所以它拖延了所有历史记录.

我找到的只是这个没有答案的线索.

我应该破解git-submodule来实现这个吗?

git git-submodules

129
推荐指数
5
解决办法
4万
查看次数

如何"撤消" - 单分支克隆?

我用这个克隆了一个回购

git clone -b <branch name> --single-branch <github url> <target directory>

这只克隆了这个分支,但现在我想切换到master和其他分支.有没有办法除了清除它并重新开始克隆我可以撤消--single-branch首选项的其余repo?

git github

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

git shallow clone(clone --depth)错过了远程分支

克隆远程存储库后,它不会通过-a选项显示任何远程分支.可能是什么问题呢?怎么调试呢?在此片段中,未显示两个远程分支:

$ git clone --depth 1 git://git.savannah.gnu.org/pythonwebkit.git
$ cd pythonwebkit
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
$ git --version
git version 1.8.3.1
Run Code Online (Sandbox Code Playgroud)

在另一台机器上尝试相同的命令,它运作良好:

$ git clone --depth 1 git://git.savannah.gnu.org/pythonwebkit.git
Receiving objects: 100% (186886/186886), 818.91 MiB | 3.44 MiB/s, done.
$ cd pythonwebkit/
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/debian
  remotes/origin/master
  remotes/origin/python_codegen
$ git --version
git version 1.7.1
Run Code Online (Sandbox Code Playgroud)

尝试克隆另一个回购,它运作良好.虽然我可以在这台机器上再试一次,但最好知道什么是错的.

任何建议或提示都将受到欢迎.

编辑:答案摘要:从git版本1.8.3.2开始,需要同时使用"--depth"和"--no-single-branch"来获得与以前相同的行为.这被视为错误修复.

git branch shallow-clone

76
推荐指数
3
解决办法
4万
查看次数

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

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

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

git git-clone

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

用"--depth 1"克隆回购后如何获取所有git历史记录?

有一个很大的回购与成千上万的提交.当我克隆它时,我只想看到最新的代码,并且不要等待太久,所以我运行:

git clone git://..../... --depth 1
Run Code Online (Sandbox Code Playgroud)

但后来,我希望看到所有历史记录提交,但我不知道如何获取所有历史记录.

git

26
推荐指数
2
解决办法
5462
查看次数

协议错误:预期的旧/新/参考,得到'浅深的......'

我正在编辑一个使用--depth 1(浅克隆)克隆的git存储库.

我想推送我的更改(提交),但我收到此错误:

$ git push
Counting objects: 14, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 56.88 KiB | 0 bytes/s, done.
Total 8 (delta 5), reused 0 (delta 0)
fatal: protocol error: expected old/new/ref, got 'shallow deeb2171db739fd366...'
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

跑步git --version我明白了:

$ git --version
git version 1.9.rc1
Run Code Online (Sandbox Code Playgroud)

git

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