我刚刚尝试学习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