gitlab首次拉取代码及后续提交代码

一、配置gitlab sshkey

1.查看是否已配置

首先,确认本地是否已经有对应配置,打开Terminal终端,按如下步骤:

cd ~/.ssh     //进入ssh目录

如果不能进入该目录,说明没生成过,进入步骤2重新配置。

如果ssh文件夹中有id_rsa,id_rsa.pub,说明之前生成过ssh 秘钥,可以直接使用

2.重新配置

重新配置,也要在Terminal终端进行:

  • 配置账户
git config --global user.name "account name"  //用户名,建议拼音或英文

git config --global user.email "account email"  //绑定gitlab的邮箱地址
  •  生成秘钥
ssh-keygen -t rsa -C "account email"     //绑定gitlab的邮箱地址

连续按3次enter,出现下面的截图

在这里插入图片描述

上面两个步骤后,就完成了账户创建、秘钥生成,.ssh文件夹下就多了id_rsa(私有秘钥)和id_rsa.pub(公有密钥),下一步 查看

  • 查看公有密钥,复制里面的内容,准备添加到github或gitlab中
pbcopy < ~/.ssh/id_rsa.pub   # 将秘钥复制到剪切板
  • GitLab中添加SSH Key

打开GitLab,点击右上角头像,选择“Settings”,然后在左侧导航栏选择“SSH Keys” ,粘贴上述复制的公有密钥。

在这里插入图片

gitlab首次拉取代码及后续提交代码_第1张图片

3.首次拉取代码

git clone 

将代码clone下来后,用pycharm打开就可以了。

二、后续提交代码

1.通过终端的方式提交

  • 讲本地代码提交到暂存区
git add .
  • 将暂存区代码提交到本地代码仓库
git commit -m "本次提交的描述"
  • 拉取远程代码,检查是否与别人的代码有冲突,无冲突直接进行下一步,有冲突就解决冲突后,重复上面的步骤
git pull
  • 提交代码至远程仓库
git push

2.通过pycharm进行操作

1、新建分支
代码拉下来,在写代码之前,先要新建一支分支,步骤如下图所示

在这里插入图片描述 在弹窗中填写分支名称,点击OK即可完成分支的创建。

在这里插入图片描述
2、commit 代码
当完成一个阶段的开发工作工作后,需要提交代码,合并到主分支,步骤如下:

在这里插入图片描述

 commit 过程中,我们可以有选择的提交代码,比如某些配置文件,不需要提交到线上,我们可以取消勾选。

在这里插入图片描述
3、pull 代码

这一步是把别的同事的代码拉取到自己本地,如果有冲突就要解决冲突。

在这里插入图片描述

 点击pull之后,会弹出选择合并分支的弹窗:

在这里插入图片描述
当拉取下来的代码有冲突时,idea会出如下弹窗

 在这里插入图片描述

 这时我们点击merge按钮,即可进入解决冲突的界面

在这里插入图片描述
左边是你的代码,右边是Git上的代码,中间是合并后的结果,现在是第14行代码出现了冲突,想保留自己的版本,就点击1处的箭头,保留git上的版本,就点击2处的箭头,当4处的conflict 为0时,代码冲突已经解决完了,就可以点击3处的apply按钮
此时,需要万分注意,解决完冲突后,需要再次commit!,不能直接push,否则就会把别的同事的代码覆盖掉,切记切记!

 4、push代码

在这里插入图片描述

 处理完冲突,再次commit之后,就可以push代码了,在项目的顶级父工程右击,依次选择git->respository->push ,在弹出的弹窗中继续点击右下角的push按钮,即可完成代码的push

5、发起分支合并请求(在分支上修改需要用这个合并远程分支,直接在master分支上开发的话,后面的步骤可以不关注)
当代码push到git上之后,要发起分支合并请求,把分支合并到主分支上。

在这里插入图片描述

 点击要合并代码的项目,进入操作界面,继续点击merge request

在这里插入图片描述
–> new merge request

在这里插入图片描述

如下图,1处选择要合并的分支,就是你刚才push代码的分支,2处选择要合并到的分支,一般默认是主分支,选择完成后,点击compare branches and continue

在这里插入图片描述

如下图,在弹出的界面中,依次填写:1、合并描述;2、选择由谁来合并,一般是项目的开发经理;3、创建合并请求。

在这里插入图片描述
 

你可能感兴趣的:(git,gitlab,git,github)