场景1 (pull前)
一开始本地没有拉取远程最新的develop分支,但是远程develop分支已更新,在本地分支feature/update,使用git diff origin/develop,会出现几个版本杂糅的差异,
场景2 (pull后)
但是本地切换到develop分支后,并pull之后,再次切换到feature/update分支,使用git diff origin/develop,就不会出现几个版本的差异了
5 回答2.8k 阅读
3 回答2.6k 阅读
3 回答958 阅读
1.2k 阅读
你大概是以为 origin 开头的分支是和远端保持一致的了?
当你 git clone 一个仓库到本地之后,除了一个默认的本地分支(默认是 master,是可以配置的),还包含远端仓库在你 clone 的那一刻的 所有分支,tag.这个时候,origin 仅仅是你远端仓库的一个别名, 比如,你指定 https://github.com/test/test 为 origin, 这时你本地的 origin/develop 的意思是,你本地 git 仓库中 你从 github.com/test/test clone/fetch 时,远端 develop 分支在你本地仓库中的一个副本.
当你 本地 git pull 或者 git fetch 之后,做的事情就是把你的 origin/develop 和 远端仓库的 develop 分支进行一次同步(只是这个同步的意思,实际上会根据你的命令参数,会选择 merge 或者 rebase 的操作).这个时候,你本地的 origin/develop 就和远端仓库一致了.但是也仅仅是这一时刻,因为其他人可能会更新远端分支.导致你本地的 origin/develop 分支再次落后.