【Git】Git 操作可视化(五):git clone、git fetch、git pull、git push、git pull | 您所在的位置:网站首页 › git网页版怎样pick合并 › 【Git】Git 操作可视化(五):git clone、git fetch、git pull、git push、git pull |
二、远程操作
(一)基础篇
1. git clone
main是本地的main分支,o/main是远程的main分支 o/main分支记录了上次访问远程仓库时的分支状态 远程分支有一个特别的属性,在你切换到远程分支时,自动进入分离 HEAD 状态(这样做是因为git不想让你在本地直接修改远程仓库) 2. git fetch(难点)从远程仓库获取数据,并将本地仓库中的远程分支更新成远程仓库相应分支最新的状态 git fetch 完成了仅有的但是很重要的两步: 1)从远程仓库下载本地仓库中缺失的提交记录 2)更新远程分支指针(如 o/main) 但是!git fetch 并不会改变你本地仓库的状态。它不会更新你的 main 分支,也不会修改你磁盘上的文件,意思是本地仓库此时并没有与远程仓库完全同步! 3. git pullgit fetch + git merge o/main : 本地仓库合并远程仓库 git pull : 可以看出:git pull = git fetch + git merge 同样用于本地仓库合并远程仓库 4. git pushgit push 负责将变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录 本地仓库也会将o/main更新为远程仓库的状态 5. 解决远程仓库与本地仓库可能存在的冲突:2种方法法一 git fetch + git rebase o/main + git push : 先将远程仓库的最新数据更新到本地仓库,再改变本地仓库指针指向节点的基节点(上一个节点),再进行提交 这种做法的核心思想是在本地重新开辟一条和远程仓库一样的分支,再将最新的本地修改嫁接到新分支上,再进行提交,避免冲突 法二 git fetch + git merge o/main + git push : 这种做法同上面rebase的共同点在于,通过在本地仓库解决冲突,然后再提交远程,但是在本地进行的具体git操作有差别 这种做法,直接将远程和本地仓库先进行代码合并,再提交到远程仓库 在实操中,通过idea内置的git解决代码冲突时,更常用到的其实是这种,先pull下来远程代码,然后在本地进行代码合并解决冲突,在push进远程 法一变体 git pull --rebase + git push : 前面已经介绍过 git pull 就是 fetch 和 merge 的简写,类似的 git pull --rebase 就是 fetch 和 rebase 的简写! 法二变体 git pull + git push : 实务中最常用的方法! |
CopyRight 2018-2019 实验室设备网 版权所有 |