2010-07-07 184 views
2

我有一個與我當前目錄中的rails項目相同或相似的遠程控件。要同步兩個,我做git pull後遺失文件?

git init 
git remote add origin [email protected] 
git pull 

的問題是,一些我曾在我的工作拷貝文件的添加(即不是在遠程),所以當我做

git status 

它應該顯示一堆未跟蹤的文件。相反,我看到回購的文件已過期。
爲什麼它不要求我解決這些文件中的衝突?我的舊文件在哪裏?

回答

3

「git pull」中隱含的合併必須覆蓋未提交的本地文件。

我建議這個序列:

git init 
git add . 
git commit -m"local" 
git remote add origin [email protected] 
git fetch origin 

在這一點上,與 「gitk --all」 守庫

合併與

git merge remotes/origin/master 

這應該讓你知道的衝突,如果有的話。 本地文件不會被覆蓋。

+0

我認爲這是正確的。問題在於那些本地文件沒有被跟蹤,所以Git無法知道它們應該被保存。在合併文件之前,需要使用git add && git commit。 – Makis 2010-07-07 05:36:54

0

如果您有本地回購(及其工作目錄),則不需要'git init'任何東西。

git remote add origin [email protected] 
git pull 

應該足夠了。

如果您製作了git init,應將其放在一個空的存儲庫中,然後導入主內容'origin'。


我沒有本地回購,只是本地文件。

然後您需要先將它們添加(請參閱r-mercadoanswer)。

git pull man page

警告:運行git pull(實際上,底層git merge)與未提交的修改氣餒:雖然是可能的,它讓你在,是很難的情況下,以回了狀態的衝突。

+0

我沒有本地回購,只是本地文件。 – tesserakt 2010-07-07 04:17:04

0

如果在上述命令之後嘗試這樣做?

git checkout blah 
git pull origin blah 

我還在學習git,所以我不積極,但只是一個猜測。 (可能需要在上面的命令中用[email protected]代替blah