2012-06-02 94 views
22

我很苦惱與Git,我似乎無法添加我的文件。我跑ls顯示文件在當前目錄中,然後運行git add .,然後git status顯示「沒有提交」。git add。 - >仍然「沒有提交」新文件

Jennifer-Myers-Computer:first_app Jenn$ git init 

Reinitialized existing Git repository in /Users/Jenn/rails_projects/first_app/.git/ 

Jennifer-Myers-Computer:first_app Jenn$ ls 

Diary.txt README.rdoc config.ru log tmp 
Gemfile Rakefile db public vendor 
Gemfile.lock app doc script 
README config lib test 

Jennifer-Myers-Computer:first_app Jenn$ git add . 

Jennifer-Myers-Computer:first_app Jenn$ git status 

# On branch master 
nothing to commit (working directory clean) 

Jennifer-Myers-Computer:first_app Jenn$ 
+0

試過'git的添加./*'呢? – 2012-06-02 03:48:17

回答

49

你的命令看起來是正確的(我這樣做了很多次)。

首先嚐試

git add --all 

,然後嘗試git status。我認爲這不會解決它,但值得嘗試下一步。

接下來試着看看你的.gitignore文件,如果你有一個(在你做的最高級別git init)。

cat .gitignore 

刪除那些導致您的文件被忽略的列表。例如,是否有隻有*的條目?

下一個嘗試:

git add --force 

,然後嘗試git status

如果沒有這些工作,我注意到你的輸出從git init說「重新初始化」,而不是「初始化」,所以可能已經搞砸了。如果您剛剛初始化它,不介意失去歷史,通過刪除git的目錄開始:

rm -rf .git 

然後重新執行上面的相同的命令。如果這不起作用,則需要更多關於您的設置的信息。例如,您可能需要編輯一個全局.gitignore文件:~/.gitignore_global(如果不需要,也可以將其刪除)。

+0

fanstastic!謝謝!我刪除了.git目錄,然後做了git init,git add。 – RandyMy

+1

對我來說git add --all working ..最新的問題。 :/ – Hristo

+0

這對我有效。我做的唯一更改是'git add。 --force'。 – RaulGM

3

在我來說,我解決它通過隱藏,並隨即將藏匿:

git stash 
git stash apply 

序列將離開回購酷似以前。在此之後,做git add [file]工作正常。

(使用下的SUSE Linux Git版本1.7.12.4)

+0

謝謝!這對我有效。 – Rich

15

因爲我已經經歷了類似的問題,多次我只想補充一點,你應該仔細檢查你想加來自並且目前在您的項目的根文件夾中。

+3

+1這是個好主意。詢問的人往往不在根。有趣的是,在這種情況下,OP不會在項目目錄中顯示「cd」。 –

+0

在git中開始的人們會感到困惑 - 大多數命令都是在當前工作目錄的上下文中執行的。 – gravidThoughts

4

如果有人碰到這種情況,git不會添加目錄的另一個原因是,該目錄中可能有一個.git目錄。

在這種情況下,git希望你把它當作submodule。否則,只需刪除.git(在目錄中,而不是根目錄)並重試。

方便的命令:

find . -name '.git' -type d 
+1

哇。你的傳奇。 – Mehrad