2016-08-17 145 views
3

我有一个仓库与谷歌硬盘同步,但我忽略了.git目录,因此它现在被上传到Google Drive。克隆git仓库的.git目录

最近我对自己的Gentoo机器进行了格式化,当我将所有Google Drive文件再次同步后,我意识到.git目录不存在。

问题是我不记得我是否在本地没有推送到github的一些不加标签/无法完成的更改。

我一直在寻找,但我只找到了相反的问题答案(克隆无.git目录)

我不想让我的回购的git clone直到我确信,可能局部变化都不会亏。

有没有克隆只有.git文件夹的任何方法,然后推我可能在我的机器上的任何本地更改?

回答

3

我解决了它。这是一个简单的过程:

  1. 我克隆回购到不同的位置,如(在/tmp
  2. 我复制.git文件夹到我原来的回购文件夹
  3. 我在做我的git status原始回购文件夹和所有本地更改都在那里。

希望它可以帮助别人

+1

这个方法唯一的问题是你没有机会签出特定的分支,而默认的克隆会检出'master'分支,这不是你可能想要比较你的本地文件集针对 – g19fanatic

+0

由于您只需要.git文件夹而不是整个工作目录,因此请确保使用--bare选项克隆它。 –

2
  1. 做一个git clone到不同的文件夹您的机器上,从您的在线回购
  2. 结帐,你想比较您的本地文件,对分公司。
  3. 然后将您的文件夹内容复制/粘贴到新克隆上。
  4. 检查看看有什么变化(如果有的话,并按照你的意图提交)。
+0

其实我解决这个问题现在xD。我已经将repo克隆到了diiferent directoty并复制了'.git'目录。一切都很好! – elbaulp

+0

我应该删除我的问题还是回答我的问题? – elbaulp

+3

@ algui91:因为有一个最新的答案,所以你不能删除这个问题。您可以选择张贴自己的自我回答,虽然在您将其标记为已接受之前会有延迟(我认为有几天)。 OTOH,你说你做得非常符合这个答案的意思;你应该接受这个答案。 –

3

一步法的解决办法是:

git clone --no-checkout <repo_url> 

,或者如果你已经有一个空目录,

cd myrepo 
git clone --no-checkout <repo_url> . 
+0

或'git clone --no-checkout myrepo' =) –

+0

如果您的目录不是空的,该怎么办? –

+0

如果你的目录不是空的,git将不会执行克隆。但是,如果您想要目录中的内容,只需克隆到一个空目录,然后将您拥有的文件复制到克隆的目录中即可。 – rfay