問題分析
使用git reflog查看執(zhí)行命令,以下是發(fā)生事故的切換和提交動作
46f72622e1 HEAD@{41}: commit: feat: 【Sales - 6.3】小程序端不登錄也可以錄入客戶線索
c5e7d9f6e1 HEAD@{42}: fetch origin feature/20240102_Sales6.3_xingang:feature/20240102_Sales6.3_xingang --recurse-submodules=no --progress --prune: fast-forward
2b8fa87fb5 HEAD@{43}: checkout: moving from develop to feature/20240102_Sales6.3_xingang
12c545fd29 HEAD@{44}: merge feature/20240102_Sales6.3_xingang: Merge made by the 'recursive' strategy.
9ff4b93056 HEAD@{45}: checkout: moving from feature/20240102_Sales6.3_xingang to develop
3648003300 HEAD@{46}: commit: feat: 【Sales - 6.3】調整積分發(fā)放事務處理
fa49330927 HEAD@{47}: checkout: moving from develop to feature/20240102_Sales6.3_xingang
由于在feature分支和develop分支之前不停切換,導致服務器端git倉庫的代碼被刪除了。作為一個Java老鳥,遇到這種情況還是很尷尬的。如下圖紅框部分的代碼是將別人提交的代碼直接改回去了,導致代碼丟失?。。?!
以上都是因為不規(guī)范操作導致代碼切換出現(xiàn)的代碼丟失,如何避免呢?暫時只有一種stash和unstash的暫存和還原的方法來解決。Idea并沒有不讓你未提交代碼就必須不能切換本地分支,不斷切換分支就有可能導致代碼不一致的情況。
在上面很清晰看到一個別人的merge操作。此后我們再去提交的時候就是將自己本地的代碼覆蓋上同一個分支。此時再commit & push ,那么災難就降臨了。
解決方法
sourcetree
sourcetree可以很明確地知道分支代碼能不能夠切換,凡是代碼有沖突 有修改的都要處理完成了才能切換分支。
Idea stash unstash 暫存和還原
Idea 項目選中,右鍵git就有 stash changes 和unstash changes.文章來源:http://www.zghlxwxcb.cn/news/detail-813379.html
cherry-up 遴選代碼
在什么分支修改,就提交到什么分支,然后再將這個提交選入到功能分支。文章來源地址http://www.zghlxwxcb.cn/news/detail-813379.html
到了這里,關于Idea 開發(fā)環(huán)境不斷切換git代碼分支導致沖掉別人代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!