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,把補丁內容追加到最近一次提交。