0

我试过了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 状态显示:

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

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

我确实再次拉动并取消了我的更改。

但是当我这样做时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'.

我怎样才能一劳永逸地清理这个?

4

2 回答 2

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
于 2013-08-18T15:25:23.683 回答
0

除非你改变,否则你git rm --cached src/.project不会有多大好处。commit为什么不只是git stash所有内容,然后pull, stash pop,然后使用 删除被忽略的文件rm --cached

于 2013-08-18T17:11:52.940 回答