作者回复: 第1问: git stash list 命令显示的最左一列就是stash的序号,如stash@{2} 和 stash@{1},序号中数字大的代表的是较早的stash。我们pop的时候可以加具体的序号,不加序号的(缺省情况下)为 stash@{0}。 用法:git stash pop stash@{2} git stash pop = git stash pop stash@{0}
作者回复: 好问题。比较不麻烦的做法,分两步走。 1)在feature分支上,先把dev上修复bug的那个commit 执行cherry-pick。 2)再git stash pop继续开发。
作者回复: 好主意。以后通过其他途径补充吧
作者回复: 啊,没啥时间看纳。建议你用git cat-file -p “stash文件里面的hash值” 这个命令先琢磨一下吧
作者回复: 这个要根据你自己的场景来决定怎么修改。根据项目的需要修改内容,然后去掉类似下面的冲突的标识行就可以。 <<<<<<< Updated upstream 文件内容 ======= 文件内容 >>>>>>> Stashed changes
作者回复: 是这效果
作者回复: 嗯,内容实在太多,一上来讲太多了,反而容易把人弄懵。所以做了取舍,把最最常用的先讲掉吧
作者回复: 不推荐在不同分支用stash。你拿个测试项目验证一下为什么吧。我测试下来,同分支的会在变更的地方标识出文件冲突,有了分叉的分支,pop出来后全文冲突。 你这种情况下,我感觉用patch的方法可行。 或者稍微折腾一点的,先在master分支生成一个commit,切到dev后,用cherry pick方法,然后master再reset回退。
作者回复: 嗯嗯
作者回复: 是的