一.
問題:遠端倉庫,已經刪除的分支或者標簽,本地依然存在,普通拉取操作不能同步。
解決:
git fetch origin --prune --prune-tags
這個命令會在本地同步刪除 已不存在於遠端的 分支以及標簽,然后把遠端最新的分支和標簽獲取下來。
prune,顧名思義,修剪。
如果只想prune,不想fetch,可以執行:
git remote prune origin
二.
如果不喜歡命令行,也可以添加sourcetree的自定義操作,工具--選項--自定義操作:
運行的腳本填上git程序的路徑,參數就是命令行的內容,菜單標題隨意發揮
添加之后,在某個倉庫頁簽下,選擇菜單:操作--自定義操作--刷新遠程分支和標簽,就ok啦。
sourcetree的自定義操作還可以做得更多,比如執行一個shell腳本,
這時候執行程序選擇git-bash.exe,參數是shell腳本路徑,路徑的寫法應該是這樣/c/users/xxx1/xxx2/xx3.sh。
至於mac系統,和windows的添加方式幾乎一樣,除了執行程序不同。
三.
sourcetree的推送需要勾掉推送所有標簽,除非你確實知道在做什么
如果不勾掉的話,一旦遠端刪除了tag,而你本地沒刪,那么又會把這個tag推回遠端。