2017-08-08 49 views
0

我有一个文件夹foo的,没有任何的Git整合我如何可以将现有的目录到现有的git仓库

/foo 
    file1.txt 
    file2.txt 

和我自己的回购,已经有几个分支,其中硕士

https://my-fake-repo 

我想将foo链接到https://my-fake-repo的master,这样如果我运行'git diff',我会看到/ foo和https://my-fake-repo的主人之间的区别。

我想要相当于检出https://my-fake-repo,删除内容并将文件从/ foo粘贴到其中。我希望能用一些Git命令做到这一点,但我对Git不够熟悉,而且我的研究失败了。我试图做类似:

cd /foo 
git init 
git remote add origin https://my-fake-repo 
git branch master --set-upstream-to origin/master 

但主还不存在,所以它不工作...

+0

这是为了得到一个差异?如果是这样:https://stackoverflow.com/a/7945988/369 – Blorgbeard

+0

不。我想将本地目录链接到分支,但不一定要覆盖分支。 – user3715648

回答

1

我想退房https://my-fake-repo,删除内容的等价物,并将/ foo中的文件粘贴到其中。

一种简单的方式来实现这一目标是假装仿佛/foo是存储库的工作树,这样做的my-fake-repo的本地克隆中:

GIT_WORK_TREE=/foo git diff 

这将有效将/foo的内容与存储库的内容进行比较。 内容在/foo但不在回购库中将显示为已添加, 内容不在/foo中,但存在于回购库中将显示为已删除。等等。

这个技巧也适用于所有其他的Git命令。 所以要小心,因为如果运行修改工作树的命令(例如checkoutreset), ,他们将修改/foo的内容。

但我想知道这是否真的是您使用/foo和Git存储库的最终方式。 你也提到了“连接”到Git仓库。 存储库之间交互的正确方式是使用遥控器。 您可以将/foo转换为Git存储库, 将my-fake-repo作为远程地址, ,然后在两个回购地址之间使用正常的Git操作,而不会导致类似于本文顶部的技巧。

cd /foo 
git init 
git add --all 
git commit -m 'Add files' 
git remote add origin https://my-fake-repo 
git fetch origin 
git diff origin/master 
相关问题