git 在你init地时候就已经把你的文件内容全部保存,并且每一行的代码和位置也进行了保存,当你的代码发生改变的时候,git就会识别到,当你把你的代码提交到版本库的时候,其实从工作区传输到版本库的内容不是你修改的当前文件的所有内容,而是将你修改的地方进行了记录,当传输到版本库时,让版本库的相应文件相应地方进行修改,从而做到了可以保存文件。
这时如果你再进行修改你的文件时,也是可以修改的一点问题都不会有,这时你把你修改的内容如果放到了stash里,也就是暂时保存的地方,其实git保存在stash里的也修改的内容和位置还有没修改之前的内容,那么你的文件就会回到在你还没有修改当前文件是的状态(这里指的是:在你保存到版本库之后的文件状态),这时你再去处理你刚刚stash之前处理过的地方时,你也是可以处理的,一点问题也没有,不过如果你想stash pop回来时,git会进行合并,git会在位置上想找,找到相应的位置,然后再行内容的对比,如果内容不同,那么git就不知道要选择哪一段代码,所以才会出现冲突!