git 更新远程分支的2种方式

git 更新远程分支及内容的2种方式

这两条命令都涉及到从远程仓库获取更新,但它们的工作方式和目的稍有不同:

  1. git fetch origin

    • 这个命令从远程仓库 origin 获取所有引用(branches、tags等)的最新更新,并将这些更新存储在本地,但不会自动合并到当前的分支。
    • 它只更新本地的远程追踪分支(origin/*),不会删除远程已经删除的分支或标签。
  2. git remote update origin --prune

    • git remote update origin 会更新所有远程仓库的引用,类似于 git fetch,但它会更新所有远程(不仅仅是 origin)。
    • --prune 选项表示会清理本地仓库中已经删除的远程分支或标签。也就是说,如果远程仓库中的某个分支已经被删除,本地会同步删除这个远程追踪分支。
    • 这条命令不仅获取更新,还确保本地与远程的引用完全一致,包括删除的分支。

总结

  • git fetch origin 只更新远程仓库的引用,不涉及删除远程已经不存在的分支。
  • git remote update origin --prune 除了更新外,还会删除本地已被远程删除的分支。