如何忽略已经在git中跟踪的文件

时间:2013-08-18 14:49:13

标签: git version-control github

我尝试pull origin a

并执行以下操作:

error: Your local changes to the following files would be overwritten by merge:
    src/.cproject
    src/.project
    src/navigate/navigate_main.c
Please, commit your changes or stash them before you can merge.
Aborting

git status显示:

    modified:   .gitignore
modified:   src/.cproject
modified:   src/.project
modified:   src/navigate/navigate_main.c

我对前3个git rm --cached src/.project和第4个stashed进行了

我确实再拉了一下,然后捏造了我的变化。

然而,当我做pull origin a

我明白了:

M   .gitignore
U   src/.cproject
M   src/navigate/navigate_main.c
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.

我该如何一劳永逸地清理这个?

2 个答案:

答案 0 :(得分:0)

未提交的更改总是很糟糕。你必须决定这些变化是好还是坏。如果他们是好人,就提交他们。如果不好,请丢弃它们。

一旦您没有更多未提交的更改,您就不会再遇到任何问题。

查看git statusgit status --short以查看任何未提交的更改。

配置有意义的提示以立即查看正在进行的操作。 对于bash,将这样的内容添加到〜/ .bashrc:

PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
GIT_PS1_SHOWDIRTYSTATE=yes
GIT_PS1_SHOWSTASHSTATE=yes
GIT_PS1_SHOWUNTRACKEDFILES=yes
GIT_PS1_SHOWUPSTREAM=auto

答案 1 :(得分:0)

除非您git rm --cached src/.project进行更改,否则commit的效果不会很好。为什么不只是git stash所有内容,然后是pullstash pop,然后使用rm --cached删除被忽略的文件?