我真的很喜欢Git,我想做同样的事情:
git clone repository dirname
但我想分两个阶段完成:
phase1: git clone -n repository dirname
phase2: git "unknown command"
那是什么"未知命令"得到与此一样的确切结果:
git clone repository dirname
我在dirname中尝试了git checkout
但它不起作用。它只列出文件,但之后dir保持为空(仅包含.git
dir)。文档说它应该是git checkout <branch>
,但我不知道哪个分支。如果我做单相,我不需要知道分支:
git clone repository dirname.
编辑:
不git checkout HEAD
也git checkout master
无效 - 与仅git checkout
一样的结果
答案 0 :(得分:2)
手册说-n
表示:
克隆完成后,不会检查HEAD。
所以当您使用-n
时缺少的步骤是“结帐HEAD”......就这样做。即git checkout HEAD
但为什么你想这样做吗?如果你是初学者,为什么不尝试做一些有用的东西,而不是这个呢?
答案 1 :(得分:2)
通过反复试验,我最终找到解决方案,我希望它没问题。从内部dirname调用:
git checkout -- *
换句话说,单阶段:
git clone repository dirname
似乎等同于&#34;两阶段&#34;:
git clone -n repository dirname
cd dirname
git checkout -- *
cd ..
测试在Windows上工作(git版本2.6.3.windows.1)
但有趣的是在使用git版本1.7.10.4的Linux上输出错误: &#34;错误:pathspec&#39; *&#39;与git已知的任何文件都不匹配。&#34;
所以可能它的一些较新的功能在原始git中不可用。它在此记录(参见实施例部分):http://git-scm.com/docs/git-checkout
编辑:
它更复杂。在某些情况下,我得到&#34;错误:pathspec&#39; *&#39;与git已知的任何文件都不匹配。&#34;甚至在Windows上的新git上也是如此。但在这种情况下,简单git checkout
有效。奇怪的行为。如果git checkout -- *
工作,那么git checkout
不起作用,如果git checkout
工作,则git checkout -- *
不起作用。换句话说,git checkout -- *
XOR git checkout
起作用。 : - )
编辑: 如果那&#34;就地&#34; checkout不起作用,那么临时存储库克隆的方法也可以工作:
git clone dirname dirname_temp
rmdir "dirname_temp/.git"
xcopy /E /H /Y /C "dirname_temp/*" "dirname"
rmdir "dirname_temp"