1. git fetch:获取远程更新,但不合并到本地分支
git fetch 是一种「安全获取更新」的方式,它只会将远程仓库的最新代码下载到本地的「远程跟踪分支」(如 origin/main),但不会自动合并到本地当前分支,便于先查看更新内容再决定是否合并。
基本用法:
# 获取所有远程仓库的所有分支更新(默认拉取origin的所有分支)
git fetch
# 仅获取指定远程仓库(如origin)的所有更新
git fetch origin
# 仅获取指定远程仓库的指定分支(如origin的main分支)
git fetch origin main
# 仅获取指定远程仓库的指定分支到本地的指定分支(如origin的main分支跟新到本地的tmp分支)
git fetch origin main:tmp
远程的最新代码会被下载到本地的「远程跟踪分支」(格式为 远程仓库名/分支名,如 origin/main),本地的工作分支(如 main)不会被修改。
查看更新内容:
获取后,可通过以下命令对比本地分支与远程跟踪分支的差异后再merge:
# 查看本地main分支与远程origin/main分支的差异
git log main..origin/main # 显示远程有而本地没有的提交
git diff main origin/main # 显示具体的代码差异
# 再把远程origin/main分支 merge到本地
git merge origin/main
2. git pull:获取远程更新并自动合并到本地分支
git pull 可以理解为 git fetch + git merge 的组合操作:先执行 git fetch 获取远程更新,再自动将远程跟踪分支的更新合并到本地当前分支。
基本用法:
# 拉取当前分支对应的远程分支更新,并合并到当前分支
git pull
# 拉取指定远程仓库(如origin)的指定分支(如main),并合并到本地当前分支
git pull origin main
# 拉取远程分支并合并到本地指定分支(如将origin/dev合并到本地dev分支)
git pull origin dev:dev
注意事项:
git pull会自动合并,可能导致「合并冲突」(如果本地分支与远程分支有冲突的修改)。此时需要手动解决冲突后,通过git add <冲突文件>和git commit完成合并。- 建议在执行
git pull前,先通过git status确认本地工作区已提交所有修改(或暂存git stash),避免冲突难以处理。
384

被折叠的 条评论
为什么被折叠?



