美文网首页
git的常用命令及工作中冲突问题解决方法

git的常用命令及工作中冲突问题解决方法

作者: 422ccfa02512 | 来源:发表于2018-09-11 00:59 被阅读127次

工作中其实用的最多的就是这些命令
git status 查看状态
git add -A 将所有文件提交至暂存区
git commit -m "信息说明" 将修改文件提交至存储库
git push origin dev 将当前分支提交至远程dev分支中
git checkout dev切换至本地dev分支
git pull origin dev 将远程dev分支拉取至本地当前分支
git rebase dev 解决本地当前分支与本地dev分支中的代码冲突
git stash储存(避免脏提交)
git stash pop改完之后返回继续之前工作

一、git官网学习网址

https://git-scm.com/book/en/v2

二、一台电脑上配置多公钥文件

git bash中使用命令ssh-keygen之后会出现,下图

配置公钥路径
信息填写好了以后,在个人输入的路径(注意一定要写全路径)下就可以看到刚才命令生成的2个文件了
查看公钥文件
之后在公钥文件路径下创建config文件注意该文件没有后缀扩展名,打开config文件作以下配置,有几个公钥就配几个。
新建config文件
config文件配置
后面将不同的.pub后缀公钥文件里的内容添加至不同的远程仓库,这样就可以不同远程仓库拥有不同公钥了。(coding,github,码云等等都可以单独拥有一个公钥文件)

三、常用命令

  1. 克隆远程仓库,使用命令git clone 仓库ssh,如下图
    使用git clone克隆远程仓库
  2. 使用命令git status显示被修改文件
    显示被修改文件
  3. 使用命令git add .或者git add -A是将所有修改文件提交至暂存区,命令git add 文件名是将某个文件添加至暂存区
  4. 使用命令git commit -m "本次提交说明信息"将修改文件提交至存储库
  5. 使用命令git push origin master将当前分支所有本地推送至远程仓库master分支
    git简单的一个使用流程示例
    简单git的一个步骤

四、工作中的git使用(git flow即git工作流)

通常情况下,我们不会将项目提交至master分支,工作中项目经理会在创建一个dev分支

  1. 使用命令check out -b dev本地新建dev分支并切换至dev分支
  2. 之后使用命令git branch即可查看所有本地分支,带*号的分支为当前工作的分支
  3. 然后使用命令git push origin dev:dev将本地dev分支推送至远程dev分支(git push origin 本地分支名:远程分支名)推送以后这样远程仓库就有了dev分支了
    本地创建dev分支并推送至远程
  4. 修改默认分支,工作中一般不会操作master分支,选择新建的dev分支点击确定
    点击修改默认分支
    选择默认分支
    默认分支修改成功
    项目经理创好项目以后,接下来开发人员操作如下:
  • 首先还是需要在本地,使用命令git clone ssh克隆远程仓库至本地,之后cd进入目录默认的分支就是dev分支了
  • 克隆好了以后,开发人员不会再dev分支上进行操作,一般会基于dev分支创建一个自己的分支,使用命令git checkout -b 分支名
    image.png
  • 将文件内容进行更改,使用命令git status查看修改内容
    image.png
    然后依次使用git add -A,git commit -m "提示信息"git push origin 开发人员分支名,之后远程仓库就会出现开发人员分支,最后我们点击新建合并请求将其与dev分支合并,当然点击以后可能出现可合并,也可能出现不可合并,不可合并为代码冲突,需要同事之间进行沟通处理
    将kayle/user分支推送至远程
    远程仓库已有kayle/user分支
    可合并示例
    不可合并的情况,现在加入我们之前还没有点击合并,但是之前一位同事他已经修改文件了,并且已经合并至dev分支了
    同事先行提交至dev分支合并了
    这个时候我们点击自己的分支的时候,新建合并请求就会出现不可自动合并,即出现代码冲突
    不可自动合并
    之后我们使用命令git checkout dev将本地分支切换至dev分支,使用命令git pull origin dev将远程dev分支更新至本地,完了以后我们在使用命令git checkout 自己的分支,在使用命令git rebase dev
    将远程dev分支更新至本地dev,并拉取至本地kayle/user分支
image.png
与同事沟通过后,协商保留哪些,之后再次,确认后,在使用git staus查看文件修改状态,在使用git add -A,之后使用命令git rebase --continuegit push origin kayle/user,这时出现我们自己本地kayle/user分支和远程kayle/user分支代码冲突,我们在将远程kayle/user更新下来,使用命令git pull origin kayle/user,之后再冲突文件选择保留内容就好,最后在推送至远程
自己本地分支与远程自己分支出现冲突
打开冲突文件
冲突解决完以后,再次将本地分支推送至远程
之后在进入远程仓库,选择自己的分支,即显示可合并,我们在点击新建合并请求
冲突已解决分支显示可合并
之后我们输入标题,点击新建合并请求
进入选择新建合并请求

接下来就是code review过程,添加评审者(一般是项目成员),添加的目的是为了让团队成员也看看代码会不会给项目造成不利的影响,如果都认为没有问题,那么我们点击合并分支进行合并


添加评审者

在文件改动里面可以看到文件修改的地方,红色的是删除的部分,绿色的是新增的部分,点击加号评审者可以对该行代码做出评论


i评审者评论
若有评审者看不懂该行代码,则我们需要进行解释,可以重新再代码中详细写明,然后再次推送至远程仓库,将推送后的链接复制回复至该评审者
image.png
将新增的代码内容发布,稍后链接回复评审者
评论回复链接

当所有人觉得都没有问题的时候,就选中删除源分支,点击合并请求


合并分支
合并以后在代码里面,提交历史里面,分支就合并在dev分支里面了
代码历史里提交分支已合并

相关文章

网友评论

      本文标题:git的常用命令及工作中冲突问题解决方法

      本文链接:https://www.haomeiwen.com/subject/iqeegftx.html