我剛剛嘗試學習Git; git命令行應用程序(以下簡稱「Git」)以及NetBeans中的Git集成(以下簡稱爲「NetBeans」)。據我所知,只有在NetBeans中執行的一些操作實際上在Git中顯示。就好像NetBeans有自己獨立的Staging區域(AKA:Index)和內置的.gitignore文件。NetBeans Git集成與git命令行之間的差異
例如:當我第一次初始化在我的項目文件夾的存儲庫,在命令行git的狀態給我:
D:\Dev\Learning\Experiments\StupidLoopPrinter>git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
build.xml
build/
manifest.mf
nbproject/
src/
nothing added to commit but untracked files present (use "git add" to track)
然而,當我在NetBeans打開查看/顯示版本標籤,然後看看在NetBeans文件樹中,當我將鼠標懸停在文件名中時,我發現許多文件被標記爲「已添加」,而其他文件被標記爲「已忽略」(即使項目文件夾中沒有.gitignore文件)樹。但是,當我右鍵單擊我的項目節點,然後選擇Git/Show Changes(在Team菜單下奇怪地不可用),在NetBeans窗口底部打開的窗格不會顯示任何「更改HEAD和Index之間,「基本上告訴我和git status命令一樣的東西。
因此,我在NetBeans中的一個.java文件上右鍵單擊並選擇了Git/Add。現在我的git的狀態顯示:
D:\Dev\Learning\Experiments\StupidLoopPrinter>git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: src/StupidLoopPrinter.java
Untracked files:
(use "git add <file>..." to include in what will be committed)
build.xml
build/
manifest.mf
nbproject/
...和StupidLoopPrinter.java上面顯示出 「HEAD和索引之間的變化。」
在仔細檢查NetBeans文件樹中所有文件右側的標記後,我看到StupidLoopPrinter.java文件旁邊有一個[A/- ],而所有其他文件都有一個[ -/A]旁邊。這種差異的意義是什麼? (你可以想象,這是不可能的谷歌。)
最後:爲什麼NetBeans顯示文件爲「添加」或「忽略」時,git狀態只顯示它們既不添加也不忽略?事實上,NetBeans是否保留了自己的內部忽略列表和暫存區域?如果是這樣,爲什麼這不是記錄?
=================更新================ 我已經運行提交選擇團隊/提交在NetBeans菜單。正如預測的那樣,就git命令而言,這確實改變了階段。 git的狀態給我:
D:\Dev\Learning\Experiments\StupidLoopPrinter>git status
On branch Alice
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/StupidLoopPrinter.java
Untracked files:
(use "git add <file>..." to include in what will be committed)
build/
nbproject/private/
no changes added to commit (use "git add" and/or "git commit -a")
注意,顯示爲「未跟蹤」幾個文件上面沒有顯示爲「未跟蹤」在這裏。但是,NetBeans沒有創建.gitignore文件。
您最初在NetBeans中看到的內容可能是一次性的。我不知道該插件,但它應該反映Git bash命令行工具向您展示的內容。 –
@TimBiegeleisen - 沒有。我已退出Netbeans並重新啓動。一切都是一樣的。現在,我懷疑如果我使用NetBeans進行提交,那麼它可能會修改git臨時區域以及創建.gitignore文件以匹配NetBeans在界面中顯示的內容。但是,我想一次採取這一步。我的目標不是隻能做一次提交。我希望能夠確切地知道NetBeans在做什麼,這樣我就可以寫出它來教導其他人並幫助他們避免這些缺陷。我會嘗試這個實驗並做進一步的評論。 – GrantRobertson