git stash
功能:该命令会把当前分支工作区和暂存区修改的内容,保存到git的存储栈中,并使当前分支内容与最近一次提交版本一致。这个存储栈是多个分支共享的,即A分支上存储的修改,可以在B分支上恢复。存储栈是本地的,不能push到远程服务器。
使用场景:当前编写代码没有完成,不想提交未完成的代码到本地仓库,却有一个紧急需求需要先开发。或者是未提交的代码,从一个分支转移到另一个分支。
保存
git stash:把当前分支工作区和暂存区的代码保存在存储栈,默认保存信息head提交的commit-id和commit-message
git stash save 'message':把当前分支工作区和暂存区的代码保存在存储栈,并指定保存信息
查看
git stash list:查看存储栈的信息,编号0对应栈顶。
恢复
git stash pop:恢复存储栈的栈顶的一次保存到当前分支,并在栈中删除。
git stash apply 某次stash-id:恢复该次存储到当前分支,但在栈中不删除记录。默认使用栈顶记录。
删除
git stash drop: 删除存储栈的栈顶记录,相当于git stash drop stash@{0}
git stash drop stash-id:删除指定的存储内容
git stash clear:清空存储栈,即删除所有内容
git diff
比较区别
git diff branch1 branch2 --stat : 显示出两个分支的差异部分
git diff branch1 branch2 : 显示所有有差异文件到详细差异
git diff old-commit-id new commit-id > patch : 比较两次提交的内容,并把新修改的内容导入文件patch
git apply --checkout patch:检查补丁是否可用
git apply patch:把补丁应用到当前分支,然后可以git add .、git commit --amend,把补丁内容追加到最近一次提交。