我一直在想是否有一个很好的"git export"解决方案,它创建了一个没有.git
存储库目录的树的副本.我知道至少有三种方法:
git clone
然后删除.git
存储库目录.git checkout-index
提到这个功能,但开头是"只需将所需的树读入索引...",我不完全确定如何做.git-export
是第三方脚本,基本上git clone
进入临时位置,然后rsync --exclude='.git'
进入最终目的地.这些解决方案都没有让我感到满意.最接近的一个svn export
选项可能是选项1,因为这两个都要求目标目录首先为空.但是假设我可以弄清楚将树读入索引意味着什么,选项2似乎更好.
我想克隆一个GIT仓库而不是最终得到一个.git
目录.换句话说,我只想要文件.有没有办法做到这一点?
git clone --no-checkout
与我想要的完全相反(给了我一个.git
目录).
我试图为远程仓库而不是本地仓库做这个,这意味着这不是 " 如何做"git导出"(如"svn export") " 的重复 "(即使解决方案最终可能是相同).
我在Github上有一个有2个分支的存储库:master
和develop
.
当我克隆存储库并运行$ git branch
它时只显示master
分支.
如果我跑,$ git branch -a
我可以看到所有的远程分支.
现在,如果我做了$ git checkout develop
,我收到消息:
分支机构开发设置跟踪远程分支从原点发展.
切换到新的分支'发展'
究竟发生了什么?develop
当我跑步时$ git clone remote-url
,或者当我跑步时,是否从远程分支获取了提交:$ git checkout develop
或者两者都没有?
$ git pull origin develop
退房后我要做一个develop
,或者它已经完成了吗?
请帮助我了解clone
遥控器上有多个分支时的工作原理.
我有一个与谷歌驱动器同步的回购,但我忽略了.git目录,所以它现在上传到谷歌驱动器.
最近我格式化了我的Gentoo
机器,在我再次同步所有Google Drive文件后,我意识到.git
目录不在那里.
问题是我不记得我是否在本地没有被推到github的一些未经标记/未经修改的更改.
我一直在寻找,但我只找到了相反问题的答案(克隆没有.git
目录)
我不想做git clone
我的回购,直到我确定可能的局部变化不会丢失.
有没有办法只克隆.git
文件夹,然后推送我的机器中可能有的任何本地更改?
之前至少有 3 个问题解释了如何在没有 .git 目录的情况下克隆存储库:
从这些问题来看,您似乎不能git clone
在没有目录的情况下运行并克隆存储库.git
。
然而,在我克隆的大多数存储库中,例如下面命令中的存储库,没有.git
创建目录。
git clone https://github.com/scotch-io/scotch-box.git
Run Code Online (Sandbox Code Playgroud)
什么决定了直接git clone
命令是否创建.git
目录?