Git基本命令(三)

126 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情

远程
fetch

git fetch: 从远程获取数据,实际上将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态,并不会改变你本地仓库的状态。它不会更新你的 main 分支,也不会修改你磁盘上的文件。

  • 从远程仓库下载本地仓库中缺失的提交记录
  • 更新远程分支指针(如 o/main)

git fetch origin foo: Git 会到远程仓库的 foo 分支上,然后获取所有本地不存在的提交,放到本地的 o/foo 上。git fetch origin <source>:<destination>, <source>现在指的是远程仓库中的位置,而 <destination> 才是要放置提交的本地仓库的位置。如果本地仓库中不存在目标分支,会自己在建立.git fetch origin :<destination>: 会在本地创建一个新分支

pull

git pull :等于 get fetch 之后进行 git merge

git pull --rebase 就是 fetch 和 rebase 的简写

git pull origin foo 相当于:git fetch origin foo; git merge o/foo

git pull origin bar~1:bugFix 相当于:git fetch origin bar~1:bugFix; git merge bugFix

git pull 唯一关注的是提交最终合并到哪里(也就是为 git fetch 所提供的 destination 参数)

push

git push :负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录。

如果使用git push时远程库发生了改变,则先进行git pull --rebase 或者 git pull将远程合并后再进行git push

git push <remote> <place>: git push origin main,切到本地仓库中的“main”分支,获取所有的提交,再到远程仓库“origin”中找到“main”分支,将远程仓库中没有的提交记录都添加上去,搞定之后告诉我。我们通过“place”参数来告诉 Git 提交记录来自于 main, 要推送到远程仓库中的 main。它实际就是要同步的两个仓库的位置。同时为源和目的地指定 <place> 的话,只需要用冒号 : 将二者连起来就可以了:git push origin <source>:<destination>,<source>现在指的是本地仓库中的位置,而 <destination> 才是要放置提交的远程仓库的位置。如果远程仓库中不存在目标分支,会自己在建立. git push origin :<destination>:会删除远程分支

未完待续