当前位置:   article > 正文

Git_git 强制切换分支

git 强制切换分支

【*】在Github创建远程仓库

【*】在IDEA创建本地仓库

【*】将本地仓库推送到远程Github仓库

【*】将本地项目添加到索引(相当于缓存)

【*】将项目提交到本地仓库

【*】将项目提交到本地

【*】提交到远程仓库

【*】提交到远程

【*】刷新GitHu发现项目已经成功提交到了GitHub

【*】创建分支

  • 第一步

  • 第二步

  • 第三步

  • 第三步,标签所在的位置就是当前使用的分支

  • 在当前Local_Dev上修改代码

  • 切换到其他的分支

  • 分支已经切换成功

【*】切换分支时,产生的问题A分支切换到B分支

  • A分支切换到B分支时,A分支代码提交了,切换时直接就可以切换到B分支的代码,两个分支之前互不影响
  • A分支切换到B分支时代码没有提交,就会弹出提示框

  • 使用Force Checkout:A分支的修改会被覆盖掉,也就是A分支之前的修改不会生效,代码会丢失
  • Smart Checkout:A分支切换到B分支时,IDEA会先执行stash命令,存储A分支未提交的代码,当再切换回A分支时代码时,会将之前的代码再从stash中取出来
  • 使用Smart Checkout将A分支切换到B分支时之后,B分支会产生冲突,A分支将之前的代码的修改带到B分支上

  • 此时有冲突的情况下,不可以切换分支,需要提交解决冲突之后的代码,此时被修改的文件会变成红色
  • 红色文件:创建之后没有add,没提交,不在版本控制范围之内,这时候文件是红褐色的,需要先add文件;

  • 不能直接提交,需要先添加索引才能提交成功
  • 将冲突解决并提交之后,成功切换到A分支
  • 切换到A分支之后,A分支之前的代码并没有还原,而是依然再stash里面,需要手动Unstash

  • 之前未提交的代码还原成功

【*】比较本地之前的提交

【*】和其他的分支进行比较

  • 第一步

  • 第二步,选择远程的分支

  • 第三步,进行比较

【*】将修改的代码提交到GitHub

  • 找到修改的文件

  • 将文件推送到远程仓库,此时提交的文件是已经提交到本地仓库的文件,没有提交到本地仓库没办法直接提交到远程仓库

  • 在主分支的需改,才能提交到主分支上,想到将其他分支的修改提交到主分支,需要进行合并
  • 其他分支的修改提交,会创建一个新的分支

【*】将远程仓库的代码克隆到本地

  • 第一步

  • 第二步

  • 第三步

克隆下来之后,不要直接就根据idea的提示取创建,使用open选择打开clone下的项目文件夹所在的位置,避乱乱七八糟的麻烦

【*】模拟两个开发者提交代码

  • 提交过程之前已经写了,此处已经提交成功

  • 第一个开发者更新远程仓库的代码

【*】冲突场景

  • 开发者二将代码提交到远程仓库
  • 开发者一提交到本地仓库成功,提交远程仓库产生问题

  • Merge和Rebase区别

Merge:会将当前分支和主分支进行合并,并且会留下合并的痕迹,使用git log --oneline --graph命令可以查看

Rebase:也是合并,项目历史呈现出完美的线性,但是安全性低,rebase 不会有合并提交中附带的信息不可跟踪,可以使用git reflog命令查看,但是也不好,

  • rebase黄金法则
    • 绝不要在公共的分支上使用它!
    • 在你运行 git rebase 之前,一定要问问你自己「有没有别人正在这个分支上工作?」。如果答案是肯定的,那就不能rebase
  • 所以此处点击Merge,merge之后会有冲突

  • 我们一般选择Merge手动合并

  • Merge详情

  • 图片上的X和》符号

X:代表这一块代码不使用了

》:需要的代码,移动到最终的代码中

  • 此处已经手动解决了冲突,但是点击Apply之后还不能提交,会弹出提示框,意思是让你做最后的确定,再重新提交

  • 之后我们不能Add索引和提交到本地库,只需要确认之后提交到远程仓库,此处冲突已经解决完毕

【*】拉取远程代码场景2

我们在Git上拉取代码之后,为了是一个本地开发,所以需要修改配置文件,例如端口、IP、热部署等,所以在更新拉取代码时候,并不想将本地修改的配置文件覆盖掉,

【*】IDEA使用Git和远程仓库比较(极其重要)

  • 需要先PULL

  • 然后再进行Compare with Branch

  • 此时才可以实现比较(哎,这个问题真的是搞的我......)

【*】PULL时远程和本地产生冲突

  • 解决办法1:Stash Changes

  • 再使用PULL

  • 缺点

比如配置文件不想被更新,但是不更新没有办法拉取新的代码

  • 使用

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/610614
推荐阅读
相关标签
  

闽ICP备14008679号