由于项目中使用一些jar和plugin经常需要客户那边批准,这样就造成了本地开发的时候有些pom.xml配置无法马上提交,这样就需要使用git stash来暂存本地修改。但是遇到一个问题就是在本地修改多个文件时部分需要暂存部分需要提交,解决这个问题的方法就是使用git stash save –patch来交互的指定需要stash的文件。下面举例:
$ git status
# On branch local# 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: $FILE_PATH/a.xml
#modified: $FILE_PATH/b.xml
#modified: $FILE_PATH/pom.xml
#
$ git stash save --patch
#... #省去diff输出
Stash this hunk [y,n,q,a,d,/,e,?]? n
#... #省去diff输出
Stash this hunk [y,n,q,a,d,/,e,?]? n
#... #省去diff输出,这个是我们要stash的文件
Stash this hunk [y,n,q,a,d,/,e,?]?y
$ git status
# On branch local
# 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: $FILE_PATH/a.xml
#modified: $FILE_PATH/b.xml
#
$ git stash list
#stash@{0}: WIP on local: 2257d1e balabala...
$ git add . && git commit -am 'balabalal' && git co master && git merge local && git push origin master
$ git stash apply stash@{0}
08 February 2013 Suzhou, China这样我们就可以在本地继续使用这个修改文件,不需要手动去改任何东西. Cheers!