我有一个名为'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的项目.我不想克隆完整的存储库和完整的历史记录,我只想要最新版本,我希望能够从远程项目更新到新版本.
我尝试过使用git clone,但这会创建整个存储库的副本(文件大小很大),并且跟踪更改会使磁盘空间更大(100mb的文件现在占用超过2gb).
我不打算提交补丁,我不需要历史记录.我只想要像颠覆这样的最新版本.
这可能在git中吗?
我已经克隆了一个存储库,之后其他人创建了一个新的分支,我想开始研究它.我阅读了手册,看起来很简单.奇怪的是它不起作用,我发现的所有帖子都表明我做的是正确的.因此,我会让自己受到抨击,因为这一定有明显的错误:
似乎是正确的行动
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版本控制下有一个项目,我在服务器和本地计算机上工作.我最初将远程原点设置为我的本地计算机,但我现在想将其更改为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 clone -b <branch name> --single-branch <github url> <target directory>
这只克隆了这个分支,但现在我想切换到master和其他分支.有没有办法除了清除它并重新开始克隆我可以撤消--single-branch首选项的其余repo?
克隆远程存储库后,它不会通过-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"来获得与以前相同的行为.这被视为错误修复.
我对github的互联网速度从来都不快,并且它以50kb/s的速度挥之不去(我的互联网速度是20mbit,这不是很快,但仍比这快得多).根据我的估计,存储库是多gb,因此需要很长时间.
git是否支持使用多线程下载对象,这样我可以最大化我的网速?
有一个很大的回购与成千上万的提交.当我克隆它时,我只想看到最新的代码,并且不要等待太久,所以我运行:
git clone git://..../... --depth 1
Run Code Online (Sandbox Code Playgroud)
但后来,我希望看到所有历史记录提交,但我不知道如何获取所有历史记录.
我正在编辑一个使用--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)