我尝试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'.
我该如何一劳永逸地清理这个?
答案 0 :(得分:0)
未提交的更改总是很糟糕。你必须决定这些变化是好还是坏。如果他们是好人,就提交他们。如果不好,请丢弃它们。
一旦您没有更多未提交的更改,您就不会再遇到任何问题。
查看git status
或git 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
所有内容,然后是pull
,stash pop
,然后使用rm --cached
删除被忽略的文件?