文件出现在“非暂存文件”中,但无法登台(红色阻止图标)

时间:2017-09-28 01:18:58

标签: eclipse git gitkraken

我的文件没有任何变化,但似乎卡在暂存区域。

我从现有项目启动了一个bitbucket repo,并从命令行在我的本地项目文件夹中执行了$ git remote add origin https://myusername@bitbucket.org/username/myrepo.git。然后从命令行执行并初始提交$ git push -u origin master。然后,我使用IDE命令File>Import Project From File System将项目加载到eclipse IDE中。执行此操作后,我发现我的项目中的一些文件位于暂存区域,但没有对它们进行任何更改并在gitkraken中单击它们也报告它们没有变化(但我找不到删除的方法)他们来自未分阶段的文件区域)。尝试暂存这些文件会使点击手形图标闪烁为红色阻止符号,并且不会发生任何其他情况。

我尝试在cli中手动暂存并推送这些“ghost更改”,并获得此输出:

➜  myproject git:(master) git status
On branch master
Your branch is up-to-date with 'origin/master'.
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:   .classpath
        modified:   .project
        modified:   some-query.sql

no changes added to commit (use "git add" and/or "git commit -a")
➜  myproject git:(master) git add .classpath .project some-query.sql
➜  myproject git:(master) git commit .classpath .project some-query.sql
...
<some git commit text>
...
➜  myproject git:(master) git push -u origin master
Password for 'https://myusername@bitbucket.org':
....
<some git push success text>
....

但是,这些文件仍会显示在“未暂存的文件”区域中。

如果有人知道这里发生了什么,输入将不胜感激。谢谢:)

1 个答案:

答案 0 :(得分:0)

我相信你只需要提交文件。

git commit -m "adding .classpath, .project, and some-query.sql modifications"

查找有关工作目录,索引和repo之间差异的信息(还有第四个区域,也称为stash)。暂存时,您只是将文件和更改从工作目录移动到索引中。要将这些更改实际放入您的仓库,您需要提交它们,这只会提交索引中的内容,而不是工作目录中的更改。

所以最初,更改只是在您的工作目录中。在git add <files>之后,它们在索引中暂存,但未提交。在git commitgit commit -m "<message>"之后,它们会被移动到您本地仓库中的新提交中。只有在这一点上push才会执行任何操作,因为push只会将提交(和引用)从本地迁移到远程repos,它不会触及工作目录或索引。