你在本地改完代码,想把远程仓库最新的改动同步到自己电脑上,最常遇到的就是这句命令:ref="/tag/2021/" style="color:#479099;font-weight:bold;">git pull origin/main——但直接敲这个会报错。别急,这不是你手误,是 Git 本身不认这种写法。
先搞清两个概念
origin 是你克隆仓库时自动生成的远程别名,一般指向 GitHub、GitLab 上的那个地址;main 是分支名,现在大多数新仓库默认主分支叫 main(以前叫 master)。它们之间不是用斜杠 / 连接,而是用冒号 :。
正确的命令长这样
想把远程 origin 上的 main 分支最新内容拉到本地当前分支,标准写法是:
git pull origin main注意:中间是空格,不是斜杠。这条命令其实做了两件事:先 git fetch origin main 把远程更新下载下来,再自动 git merge 合并进你当前所在的分支。
更省事的写法(推荐)
如果你已经在本地 main 分支上工作,且确认它跟踪的是 origin/main,那连远程名和分支名都不用输:
git pullGit 会自动找到对应关系,直接拉取更新。怎么确认有没有设置好跟踪?运行:
git branch -vv看到类似 main 1a2b3c4 [origin/main] 修复登录按钮样式 这样的输出,说明已经绑好了。
遇到冲突怎么办?
如果本地也改了同一段代码,git pull 会停住,提示 CONFLICT。这时候别慌,打开冲突文件,你会看到这样的标记:
<<<<< HEAD
console.log('本地改的');
=======
console.log('远程新加的');
>>>>> 789abc0删掉 <<<<<、=======、>>>>> 和中间的多余行,只留下你想要的代码,保存后运行:
git add .
git commit -m "解决合并冲突"就完成了。
小提醒
别一上来就 git pull。建议先 git status 看看有没有没提交的修改;如果有,要么 git commit 掉,要么 git stash 暂存起来,避免合并时糊成一团。