我有一個Windows命令腳本,用於將dev分支合併到項目分支中。它首先讀取當前分支名稱,存儲更改,獲取併合並開發和項目分支,然後切換回原始分支並彈出存儲。檢查「git stash」是否藏有任何東西
問題是可能沒有任何更改存儲。這將前面的藏匿物留在堆疊頂部。當它到達腳本的末尾並彈出存儲器時,它彈出與當前分支無關的前一個存儲器。
Set SourceBranch=dev
Set ProjectBranch=project
:: Stash current changes.
For /F "tokens=1,2" %%a In ('Git branch -q') Do If "%%a"=="*" Set CurrentBranch=%%b
Git stash save -u
:: Pull latest source branch.
Git checkout %SourceBranch%
Git pull
For /F "tokens=1,3" %%a In ('Git branch -q -v') Do If "%%a"=="*" Set MergeHash=%%b
:: Merge source into project branch.
Git checkout %ProjectBranch%
Git pull
Git merge --commit %MergeHash%||Exit 1
:: Return to original branch.
Git checkout %CurrentBranch%
Git stash pop
我怎樣才能從Git stash
或Git status
反饋來確定我是否需要彈出藏匿?
我喜歡這個答案。這是強大的 –