由于 .c9 文件,无法从 cloud9 提交到 gitbucket

Unable to commit to gitbucket from cloud9 because of .c9 files

在切换分支之前提交或存储更改。

error: The following untracked working tree files would be removed by checkout:
.c9/metadata/tab1
.c9/metadata/tab11
.c9/metadata/tab12
.c9/metadata/tab17
.c9/metadata/tab18
.c9/metadata/tab23
.c9/metadata/tab24
.c9/metadata/tab25
.c9/metadata/tab26
.c9/metadata/tab27
.c9/metadata/tab28
.c9/metadata/tab29
.c9/metadata/tab30
.c9/metadata/tab31
.c9/metadata/tab33
.c9/metadata/tab5
.c9/metadata/tab6
.c9/metadata/tab8
.c9/metadata/tab9
.c9/metadata/workspace/README.md
.c9/metadata/workspace/app/controllers/application_controller.rb
.c9/metadata/workspace/app/controllers/candy_pages_controller.rb
.c9/metadata/workspace/app/views/candy_pages/butterfinger.html.erb
.c9/metadata/workspace/app/views/candy_pages/home.html.erb
.c9/metadata/workspace/app/views/candy_pages/reeses.html.erb
.c9/metadata/workspace/app/views/candy_pages/skittles.html.erb
.c9/metadata/workspace/app/views/candy_pages/snickers.html.erb
.c9/metadata/workspace/app/views/layouts/application.html.erb
.c9/metadata/workspace/config/routes.rb
.c9/metadata/workspace/test/controllers/candy_pages_controller_test.rb

如何摆脱这些?我已经添加

#Ignore all .c9 specific files
/.c9/

我的 .gitignore,但这对 git 已经跟踪的内容没有帮助。

我已经完成了

$ git rm --cached .c9/ -r

但是当我试图回到我的主人身边时

$ git checkout master

由于未跟踪的工作树文件,我无法继续...有人可以帮我解决这个问题吗?

我认为的问题是,您已经在一些早期的提交中提交了这些文件,这些文件现在是 master 的一部分。

如果是这种情况,执行 git log .c9/ 也会向您显示提交。要解决此问题,只需使用 rm -rf .c9/ 手动删除文件一次。如果您想保留这些文件,请将 .c9 文件夹重命名为其他名称 (mv .c9 .c9.bkp)。如果您现在执行 git status,则有两种可能性,要么 .c9 目录中没有更多文件显示,要么有一些文件已修改。在后一种情况下,执行 git checkout .c9 以仅重新生成那些被 git.

跟踪的文件

现在做一个git pull origin master,拉取最新的主分支。引入更改后,执行

git rm -r --cached .c9/
echo ".c9*" >> .gitignore
git add .gitignore && git commit -m "Removing .c9 metadata files"

现在,使用

将这些更改推送回 master 分支
git push origin master

在任何其他分支上工作时,首先将它们变基为 master(使用 git rebase origin/master),以便在另一个分支中提交的任何 .c9 文件不会爬回 master。

现在,如果需要,您可以使用 mv .c9.bkp .c9.

从我们制作的备份中恢复您的 .c9 文件夹