我一直在想是否有一个很好的"git export"解决方案,它创建了一个没有.git存储库目录的树的副本.我知道至少有三种方法:
git clone然后删除.git存储库目录.git checkout-index 提到这个功能,但开头是"只需将所需的树读入索引...",我不完全确定如何做.git-export是第三方脚本,基本上git clone进入临时位置,然后rsync --exclude='.git'进入最终目的地.这些解决方案都没有让我感到满意.最接近的一个svn export选项可能是选项1,因为这两个都要求目标目录首先为空.但是假设我可以弄清楚将树读入索引意味着什么,选项2似乎更好.
我有一个名为'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 --no-checkout --depth 1 git@github.com:foo/bar.git && cd bar && git show HEAD:path/to/file.txt
Run Code Online (Sandbox Code Playgroud)
这仍然有点矫枉过正.
如何从回购中获取多个文件?
我想克隆一个GIT仓库而不是最终得到一个.git目录.换句话说,我只想要文件.有没有办法做到这一点?
git clone --no-checkout与我想要的完全相反(给了我一个.git目录).
我试图为远程仓库而不是本地仓库做这个,这意味着这不是 " 如何做"git导出"(如"svn export") " 的重复 "(即使解决方案最终可能是相同).
这里有关于如何创建zip/tarball字符串的良好链接
当我从github下载一个zip时,文件名末尾的十六进制字符串代表什么?
但我正在看GitHub APIv3,如果我错过了什么,我很好奇.
有没有办法通过API调用获取zip/tarball链接?
如果没有,有没有办法可以在不使用git二进制文件或库的情况下构建该字符串?意思是,我可以使用各种API调用来提取需要的数据并汇编到我需要的URL吗?
我知道第二个问题对于stackoverflow来说有点不合理,这对我来说是一个有趣的项目,所以我更倾向于第二个问题,如果你只是把我推向正确的方向,而不是抛弃代码片段.或者只是告诉我是否有可能.
在git中是否可以在git仓库中拥有指向特定文件的"链接"?就像git子模块对文件夹所做的那样,但我的问题是关于特定文件,而不是完整目录:
my-project/
class1.java
class2.java
logback.xml (link to a particular file, say https://github.com/theHilikus/JRoboCom/blob/master/jrobocom-core/src/main/resources/logback.xml)
Run Code Online (Sandbox Code Playgroud)
可以看出,在这种情况下,拥有一个完整的子模块文件夹是没有意义的,它只是一个文件.
我很好,链接被锁定到一个特定的提交,但如果它在它自己的项目的生命周期中发生变化,它会更好
需要注意的是,这与文件系统的符号链接无关; 我在谈论对另一个项目,repo,branch或任何东西中的文件的引用.如果文件的内容是重复的而不是文件系统符号链接,那就没问题
有关如何解压缩管道zip文件的任何想法,如下所示:
wget -qO- http://downloads.wordpress.org/plugin/akismet.2.5.3.zip
Run Code Online (Sandbox Code Playgroud)
我希望将文件解压缩到一个目录,就像我们以前使用普通文件一样:
wget -qO- http://downloads.wordpress.org/plugin/akismet.2.5.3.zip | unzip -d ~/Desktop
Run Code Online (Sandbox Code Playgroud) 我通常使用下面的命令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 ×7
bash ×1
branch ×1
export ×1
git-archive ×1
git-checkout ×1
git-clone ×1
github ×1
github-api ×1
svn-export ×1
unzip ×1
wget ×1
xargs ×1