使用小乌龟和命令合并git代码,让冲突更简单!

更新时间:2023-06-15 07:42:28 阅读: 评论:0

使⽤⼩乌龟和命令合并git代码,让冲突更简单!
  使⽤⼩乌龟和命令合并git代码,让冲突更简单!
  Git作为⼀个必备的版本管理之⼀,其重要性不⾔⽽喻不⾔⽽喻。
  版本管理功能可能都差不多,svn也是。
  git作为分布式版本管理⼯具,允许你在⾃⼰家,没⽹的时候也随⼼所欲地提交事物(当然更多指是的代码),这⼀点可能和svn就绝对地分隔开来了。
  git的功能很多,我们也没必要每个都要去精通。我们需要做的,只是让⾃⼰的⼯作能够运⾏得很顺畅不卡壳。就够了。下⽂将以⽬的为出发点,提出⼀些实⽤主义。
  git其实本⾝只是⼀些命令,也就是说,如果不出意外地话,你要⼀个个代码地去敲出来,然后达到你版本管理的作⽤。然⽽,这对⼀些还不是很懂的⼩伙伴来说,这太扯淡了。然后,可能就不⽤这块⾦砖了。
  ⼊门,⼯具选⽤。基于git提供的强⼤命令集,基于许多⼩⽩,⾃然少不了有⼈会提供⼀些可视化的界⾯给你操作。(但请不要忘记其本质)。⼯具如,tortoigit(且称之为⼩乌龟),sourcetree。个⼈觉得
⼩乌龟更好⽤,我曾经看其他同学⽤过以及⾃⼰试⽤过sourcetree,结果是sourcetree表⾯看起来整体界⾯⽜逼,很全⾯,但是真正⽤的时候感觉各种不⽅便。还是⼩乌龟实⽤些,没有华丽的表⾯,只是简单的右击菜单,但是核⼼上⾯下了功夫了。下⾯将以⼩乌龟讲解。
  ⼊门,⼩⽩操作。⾸先,咱们拿到这个⼯具,应该不会⼀上来就进⾏⾃⼰开创性的⼯作吧(个⼈感觉),⽐如,你如果想成为作家进⾏写作,那么你肯定得先读过许多别⼈写的⽂章吧。所以,我们⽤git也是,先拿别⼈的仓库,拿过来搞搞嘛。右击⼀下⼩乌龟的菜单》克隆,然后把别⼈的仓库搞到本地来,然后研究研究。当然,咱们最开始的时候也可以不⽤进⾏权限验证之类的操作。搞下来之后,先看看别⼈的操作⽇志嘛,右击菜单查看⽇志或show log,然后你就可以查看整个项⽬的提交情况了。然后,你得想⾃⼰改个东西,然后提交⼀下。这简单,只要在你强加⼯具把内容改掉,这时,你就能看到这个⽂件被改变了,然后右击提交,输⼊备注信息,就提交了。(注意,这时是需要⾝份验证的,在设置⾥输⼊授权信息就可以了)。到这⾥的提交,咱们是不和⽹络打交道的,也就是说,提交的操作是可以断⽹操作的。然后,右击推送push操作⼀下,就可以正式把改动推送到远程了,这时查看这个仓库的⼈就可以看到你的改变了。如果没什么意外,你已经学会了使⽤git⼯具进⾏事务变更操作了。但是有个问题,如果按照这些操作,那么所有的操作都将会是顺序进⾏的,也就是说,在⼀个时间点,应只有⼀个⼈在操作仓库⾥的东西,这太扯淡了,怎么只有⼀个⼈操作呢,项⽬基本都意味着同时有n个⼈操作,可能是同⼀个⽂件,同⼀个单词。针对这种情况,版本⼯具只会也只能做⼀
件事情,报告⽼板,你们发⽣冲突了,你们⾃⼰解决下吧,我⼲不了这活。其实冲突还好,关键是两个⼈改的东西,到最后要呈现不⼀样的效果,⽐如两个项⽬,虽然都改同⼀个地⽅,但是上线的时间点不⼀样,所以,不可能把冲突解决完就⾏,⽽是完全隔离开两个做的东西。所以有了分⽀。分⽀相当于有多份相同的仓库,你⽤你的,我⽤我的,⾃然就没有问题了。右击菜单,创建分⽀,切换分⽀,然后你就相当于搞到了另⼀个仓库了,这⼜是⼀⽚不⼀样的天地。然后⼜做起来了你的⽼本⾏,修改~提交~推送~查看⽇志。ok,没什么其他事的话,你已经可以正常⼯作⼀段时间了。但是,还差⼀个问题,你的分⽀怎样让别⼈发现?别⼈不可能切到你的分⽀来搞事情吧,你得主动把你你的分⽀合并到master⽼板那⾥去。切换到master,右击合并(merge),选择你要合并过来的分⽀,就可以把代码合并了,没什么问题的话,git已经⾃动把代码合并好了,你只要推送⼀下就⾏了。ok,⼀切都⼯作得很好。那么,万⼀呢,我说的是万⼀合并出了问题呢?怎么办?这才是体现你功底的时刻呢,顺境你好我好⼤家好,⽽狭路相逢勇者胜。
  出现冲突,怎么解决?1. 直接使⽤别⼈的版本,然后⾃⼰把⾃⼰改的代码⼀点点加上去,这对于少量的改动,还是很不错,先假设⾃⼰错了,然后⾃⼰改正⾃⼰。真棒,是个好孩⼦。 2. 直⾯冲突,发现⾃⼰的代码是别⼈没有的,那么,把⾃⼰的加上;发现别⼈有的⾃⼰没有,把别⼈的加上;发现⾃⼰的和别⼈的完全是同⼀个地⽅有重叠,那么只能找当事⼈⼀起,共同探讨⽅案了,要么你进,要么你退。
  说了半天,还没说到⾼级⽤法呢?
  1. git branch -a //列出所有拉取下来的分⽀
  2. 分⽀创建相关 //依据远程分⽀新建分⽀
    2.1 git checkout -b develop origin/develop
    2.2 git branch --track develop origin/develop #不存在分⽀
    2.3 git branch --t-upstream-to develop origin/develop #已存在分⽀
    2.3 git branch --t-upstream develop origin/develop
    2.4 git branch <new_branch> # 创建新的分⽀
小饰品店
    2.5 git checkout -b develop # 创建新的分⽀,并且切换过去理性选择
    2.6 git checkout -b 新分⽀名⽼分⽀名(这种写法的意思为基于⽼分⽀创建新的分⽀)教师十条禁令
  3. git pull //拉取本分⽀
  4. git fetch //拉取所有分⽀
  5. git clone git@192.168.1.206:root/frontend_oss.git
  6. git push develop origin/develop
    6.1 git push # push所有分⽀
    6.2 git push origin master # 将本地主分⽀推到远程主分⽀男女聊天话题
    6.3 git push -u origin master # 将本地主分⽀推到远程(如⽆远程主分⽀则创建,⽤于初始化远程仓库)
    6.4 git push origin <local_branch> # 创建远程分⽀, origin是远程仓库名蒸蛏子
    6.5 git push origin <local_branch>:<remote_branch> # 创建远程分⽀
    6.6 git push origin :<remote_branch> #先删除本地分⽀(git br -d <branch>),然后再push删除远程分⽀
    6.7 git push -v --progress "origin" REL_20170228_baiduapi_v1.0:REL_20170228_baiduapi_v1.0
  7. git merge origin/master
    7.1 分⽀合并和reba
项目副经理    7.2 git merge <branch> # 将branch分⽀合并到当前分⽀
    7.3 git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以⽣成merge提交
    7.4 git reba master <branch> # 将master reba到branch,相当于: git co <branch> && git reba master && git co master && git merge <branch>
  8. git stash save -- "this is a stash save" # 保存⼀个暂存节点
    8.1 git stash list # 暂存列表
    8.2 git stash pop | apply # 恢复暂存内容
    8.3 git stash drop # 删除暂存区
  9. ⽣成ssh key的步骤,获取带权限的仓库
    9.1 cd到~⽬录,然后运⾏:ssh-keygen -t rsa
    9.2 运⾏完成后,会在/c/Documents and Settings/urname/.ssh⽬录下⽣成2个⽂件: id_rsa, id_rsa.pub
    9.3 然后把id_rsa.pub⽂件传给服务器,就可以使⽤GIT了
  10. git add a.html | * # 将⽂件修改添加到暂存区
  11. git commit -m "" # 提交本地修改,注:未推送到远程
  12. git clean -fdx # 清理仓库,对于⼀些⽆法提交的提⽰操作
  13. ⽇志查看相关
    13.1 git log --pretty=oneline ⽂件名 # 查看某个指定⽂件的提交记录
田园生活的诗    13.2 git log # 所有提交记录
    13.3 git show <git提交版本号> <⽂件名> # 查看具体的修改详情了
    13.4 git blame file_name # 先查看某⾏代码由谁写的,在哪个commit中提交
    13.5 git log -p -2 # -p 选项展开显⽰每次提交的内容差异,⽤ -2 则仅显⽰最近的两次更新
    13.6 git log --stat # 仅显⽰简要的增改⾏数统计
  14. git如何正确回滚代码,强制push远程分⽀
    14.1. ⾸先两步保证当前⼯作区是⼲净的,并且和远程分⽀代码⼀致
    14.2. 备份当前分⽀(如有必要)
    14.3. 恢复到指定的commit hash艺考改革
      $ git ret --hard retVersionHash
    14.4. 把当前分⽀强制提交到远程
      $ git push -f origin currentBranch
  举个例⼦,如下代码是合并过后的代码,合并时遇到冲突为,两边同时改动了同⼀⾏代码,且两边都同时是增加,那么我们可以使⽤, ur their's before mine 选项保留两个更改。这样冲突就不存在了。如果遇到是别⼈的正确,那么直接 ur their's 就⾏。
  使⽤ revision graph 可以清楚的看到各个分⽀的提交和合并情况,让你对整个项⽬有个直观的感受。

本文发布于:2023-06-15 07:42:28,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1039310.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:提交   代码   远程
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图