2017-08-08 67 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 
相關問題