场景引入:
你刚加入一个新项目组,组长丢给你一个Git仓库地址:"这是项目代码,你先拉下来熟悉下。"你打开终端,突然意识到自己虽然用过Git,但那些pull
、fetch
、rebase
的命令到底有什么区别?怎么避免把同事的代码覆盖掉?别慌,这篇指南就是为你准备的!
git pull
什么时候用:想快速同步远程最新代码到本地,且不关心细节。
git pull origin main # 拉取远程main分支并合并到本地
注意:
git fetch
+ git merge
的快捷操作 git stash
暂存) 常见翻车现场:
# 如果本地分支和远程分支没有关联,会报错 fatal: 没有指定远程分支,且当前分支未跟踪任何远程分支 # 解决方法: git branch --set-upstream-to=origin/main main
git fetch
+ 手动合并什么时候用:想先看看远程有什么更新,再决定如何处理。
git fetch origin # 只下载远程变更,不修改本地代码 git log --all --graph # 可视化查看分支变化 git merge origin/main # 手动合并到当前分支
优势:
pull
可能带来的意外冲突 git pull --rebase
什么时候用:想保持提交历史线性整洁(避免多余的merge commit)。
git pull --rebase origin main
效果对比:
pull
会产生"Merge branch 'main'"这样的提交 rebase
会让你的本地提交"嫁接"在远程最新提交之后 危险操作:
# 如果rebase中途冲突,可能会进入"无人区" git rebase --abort # 紧急逃生命令
场景:远程有几十个分支,你只需要其中一个。
git fetch origin feature/login # 只拉取feature/login分支 git checkout -b login origin/feature/login # 创建本地分支并关联
git remote update
什么时候用:需要同步所有远程分支信息(包括已删除的分支)。
git remote update # 更新所有远程仓库状态 git branch -r # 查看所有远程分支 git prune # 清理本地缓存的已删除远程分支
Q:pull
时总提示"请输入提交信息",怎么办?
A:这是默认编辑器卡住了,按顺序输入:
i
进入编辑模式 ESC
→ 输入:wq
→ 回车 Q:如何撤销一次错误的pull
?
git reset --hard ORIG_HEAD # 回退到pull前的状态
Q:公司用Gerrit怎么办?
git pull origin refs/changes/23/123/1 # 拉取特定评审代码
场景 | 推荐命令 |
---|---|
无脑同步最新代码 | git pull |
需要审查变更 | git fetch + 手动合并 |
保持提交历史干净 | git pull --rebase |
多分支项目管理 | git remote update |
Git操作前先git status
查看状态,就像开车先看后视镜,遇到问题别慌,git reflog
能救回99%的操作失误!
(本文基于2025年7月主流Git版本撰写,部分命令参数可能随版本调整)
本文由 丑依玉 于2025-07-28发表在【云服务器提供商】,文中图片由(丑依玉)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/464005.html
发表评论