git修改檔案後無法push,需要先pull.並且pull後檔案有衝突

猝死的路上發表於2024-06-09

和其他人一起編輯了同一個檔案,其他人已經commit了,但其他人沒有通知你,你也來修改這個檔案,
導致你想push的時候無法push,提示你需要先pull,提示資訊如下

此篇文章只針對當前只有master分支

error: Your local changes to the following files would be overwritten by merge:
        這裡會列出有衝突的檔案
Please commit your changes or stash them before you merge.
Aborting
Updating 555b2da..7f3abee

這裡最好是這麼做
1.儲存本地修改

git stash save "本地修改(說明改了什麼功能)"

2.拉取

git pull

3.還原本地修改並刪除

git stash pop

如果不想刪除本地修改

git stash apply stash@{0}

4.編輯衝突
這時候會有衝突,編輯器會報錯,具體為

<<<<<<< Updated upstream
        Unit unit = getUnitIdByUid(user.getUid());
        if (unit == null) {
            storeOrder.setUnitId(0);
        } else {
            storeOrder.setUnitId(unit.getId());
        }
=======
        storeOrder.setUnitId(user.getUnitId());
>>>>>>> Stashed changes
<<<<<<< Updated upstream
        Unit unit = getUnitIdByUid(user.getUid());
        if (unit == null) {
            storeOrder.setUnitId(0);
        } else {
            storeOrder.setUnitId(unit.getId());
        }
=======

這一部份為其他人提交的

=======
        storeOrder.setUnitId(user.getUnitId());
>>>>>>> Stashed changes

這一部份為本地修改的,根據需要刪除不需要的修改

5.把衝突都解決後,再提交

git add 
git commit -m "xxxx"
git push

相關文章