背景
如上圖,根據圖片中的 Git 錯誤提示,我們遇到的問題是 ?本地分支落后于遠程分支,導致 git push
被拒絕。
?問題原因?
- 遠程倉庫的
master
分支有其他人推送的新提交,而您的本地master
分支未同步這些更新(即本地分支的提交歷史落后于遠程分支)。 - Git 默認禁止非快進式推送(
non-fast-forward
),以防止覆蓋遠程的更改。
?解決方法?
1. ?先拉取遠程更改并合并?
運行以下命令同步遠程分支到本地:
git pull origin master
- 此操作會將遠程的
master
分支拉取到本地,并嘗試自動合并(merge)。 - 如果合并時出現沖突,需要手動解決沖突后提交(
git commit
)。
2. ?重新推送?
合并完成后,再次推送本地更改:
git push origin master
?注意事項?
-
?強制推送(慎用)??
如果確定需要覆蓋遠程分支(例如本地提交歷史更完整),可使用強制推送:git push --force origin master
?風險?:會覆蓋遠程分支的所有更改,僅限個人分支或團隊協商后使用。
-
?推薦工作流?
- 在推送前始終先執行
git pull
同步遠程更改。 - 使用分支開發(如
git checkout -b feature-xxx
),避免直接操作master
分支。
- 在推送前始終先執行
?錯誤提示翻譯?
![rejected]
:推送被拒絕。non-fast-forward
:本地分支缺少遠程分支的最新提交。hint: Updates were rejected...
:提示您需要先拉取遠程更改。