sourceTree"重設提交"和"提交復原"的區別,sourcetree提交
相信用過sourceTree的夥伴們都認識這兩,但是不一定用過這兩個功能,甚至是不能很好的把握它兩的區別,根據自己最近親身測試,總算是能小小的總結一下了
首先這兒假如,曆史版本已經出現了1、2、3、4、5、6、7、8、9,當前的版本是9,講述執行上面兩種操作,分別會有什麼效果
1.提交復原
假如我選中6,執行“提交復原”之後,你會發現7,8,9的曆史操作還在,只是將6的操作還原了,這時候需要注意的是7、8、9的操作會引起提交復原6的時候產生衝突
2.將master重設到這次版本
假如我選中6,執行“將master重設到這次版本”之後,你會發現這個時候曆史列表顯示落後4個版本,這個時候如果你去推送是會報錯的,顯示的意思就是有要拉取的,但是如果你去拉取的話,你會發現又還原了,又回複重設之前,那怎麼辦,肯定是只能推送了,通過查閱資料,才知道這個時候需要修改sourceTree的設定,才能執行強制推送
注意::在這裡我建議需要的時候開啟強制推送,用完就關閉(開啟方法:sourceTree->喜好設定->通用->勾上“允許強制推送”)
別以為這樣就夠了,如果你在設定之後強制推送還是顯示失敗,顯示資訊如下:
! [remote rejected] master -> master (pre-receive hook declined)
最後查閱資料才知道git push不上去的原因在於所push的分支許可權為protected,只有項目的管理員或者項目的管理員指派的具有相應許可權的人才能進行push,而且預設情況下【master】分支是處於被保護狀態下的,要進行項目的push,有如下兩種方法:
1.將所要push的內容所在的分支的protected許可權關閉
(1)進入所在項目的settings,點擊進入Protected branches,點擊unprotected將master分支的許可權改變,即關閉master的protected許可權
2.建立其它分支,將項目push到建立的分支上,後期再進行merge
(1)建立分支
git branch 分支名
(2)切換分支
git checkout 分支名
(3)進行項目上傳
git add .git commit -m "提交的資訊"git remote add origin 遠程倉庫地址git push -u origin 分支名