当我们在多台电脑上开发一个项目的时候,需要经常修改提交的内容,并在另一台电脑上更新远程最新的代码。
当我们在多台电脑上或者多人共同开发一个项目的时候,远程仓库会不时地被修改,而自己也在不断修改自己的本地仓库,因此仓库的远程版本与本地版本势必会导致不一致。比如A同学基于版本1修改了远程仓库并提交了,形成版本2;B同学的本地仓库基于版本1的,并对版本1做了自己的修改,当B同学更新本地仓库的时候会自动的将本地仓库与远端版本2仓库合并,这个合并被期望能够保护B同学基于版本1进行的一些修改。
这里说明这种情况下,Git的处理机制以及我们保护本地基于旧版本仓库修改的内容的应对措施。
方法一
1.查看远程分支
使用如下的命令,可以查看远程仓库(这里有个origin仓库)
$ git remote -v
origin git@github.com:username``/Animations``.git (fetch)``origin
git@github.com:username``/Animations``.git (push)`
2.从远程获取最新版本到本地
使用如下命令可以在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
$ git fetch origin master:temp
3.比较本地仓库与下载的temp分支
使用如下命令来比较本地代码与刚刚从远程下载下来的代码的区别
$ git diff temp
4.合并temp分支到本地的master分支
对比区别之后,如果觉得没有问题,可以使用如下命令进行代码合并
$ git merge temp
5.删除temp分支
如果temp分支不想要保留,可以使用如下命令删除该分支
$ git branch -d temp
如果该分支的代码之前没有merge到本地,那么删除该分支会报错,可以使用git branch -D temp强制删除该分支
方法二
git pull的作用是,从远程仓库中获取某个分支的更新,再与本地指定的分支进行自动merge。完整格式是:
$ git pull <远程库名> <远程分支名>:<本地分支名>
比如,远程仓库origin中的develop分支,与本地的develop分支进行merge,要写成
git pull origin develop:develop
如果,远程仓库origin中的develop分支,与本地当前分支merge,则冒号后面的<本地分支名>可以不写
git pull origin develop
通常,git会将本地仓库分支与远程仓库分支之间建立一种追踪关系。比如,在git clone的时候,所有本地分支默认与远程仓库的同名分支建立追踪关系。也就是说,本地的master分支自动追踪origin/master分支。因此,如果当前处于本地develop分支上,并且本地develop分支与远程的develop分支有追踪关系,那么远程的分支名可以省略:
git pull origin
其实git pull命令等同于先做了git fetch,再做了git merge。即,
git fetch origin develop
git checkout develop
git merge origin/develop
或者(方法一)
git fetch origin matser:temp
git diff temp
git merge temp
git branch -d temp
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析