星期日, 10月 09, 2011

git stash 暫存

當要checkout b branch時,當下a branch的資料如果未commit 就會連當被帶過去b branch
//假設有a, b branches且都有file1內容為1-1
# echo '1-2' > file1
# git checkout b
M       file1
Switched to branch 'b'
# cat file1
1-2
  • 丟入暫存
    但如果未完成又不想commit時 可利用git stash
    # echo '1-2' > file1
    # git stash 
    # cat file1
    1-1     <-- 被reset, 這時就可以切換
  • 取出
    # git stash pop
    # cat file1
    1-2     <--再被改為stash的內容
    git stash可重覆使用,用法如stack 多下個幾次就堆疊起來,取法一樣pop囉
更多指令
  • git stash list (列出stash的清單)
    # git stash list 
    stash@{0}: WIP ...   //第1個暫存 
    stash@{1}: WIP ...   //第2個暫存
  • git stash pop (取出暫存)
       # git stash pop     // pop out 最後進入的stash
       # git stash apply  // 跟pop一樣. 但不會清掉stash
       # git stash apply stash@{1} //取出陣列1的stash
       # git stash drop stash@{1} //刪掉,不套用
       # git stash clear   // 不用解釋吧...

沒有留言: