我的文件没有任何变化,但似乎卡在暂存区域。
我从现有项目启动了一个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>
....
但是,这些文件仍会显示在“未暂存的文件”区域中。
如果有人知道这里发生了什么,输入将不胜感激。谢谢:)
答案 0 :(得分:0)
我相信你只需要提交文件。
git commit -m "adding .classpath, .project, and some-query.sql modifications"
查找有关工作目录,索引和repo之间差异的信息(还有第四个区域,也称为stash)。暂存时,您只是将文件和更改从工作目录移动到索引中。要将这些更改实际放入您的仓库,您需要提交它们,这只会提交索引中的内容,而不是工作目录中的更改。
所以最初,更改只是在您的工作目录中。在git add <files>
之后,它们在索引中暂存,但未提交。在git commit
或git commit -m "<message>"
之后,它们会被移动到您本地仓库中的新提交中。只有在这一点上push才会执行任何操作,因为push只会将提交(和引用)从本地迁移到远程repos,它不会触及工作目录或索引。