IDEA中Git实战操作 | Eddie'Blog
IDEA中Git实战操作

IDEA中Git实战操作

eddie 556 2021-02-22

目录

配置 Git

SSH-Key 配置

github、gitlab 都是一样操作, 只是网页添加公钥位置不一样而已


1、Windows为列, 安装好Git客户端, 桌面右键"Git Bash Here"打开终端窗口

Eddie@EDDIE-THINKPAD MINGW64 ~
$ git config --global user.name "eddie-code"     # 配置全局用户名称 #
Eddie@EDDIE-THINKPAD MINGW64 ~
$ git config --global user.email "xxxx@qq.com"   # 配置全局用户邮箱 #
Eddie@EDDIE-THINKPAD MINGW64 ~
$ cd ~/.ssh
Eddie@EDDIE-THINKPAD MINGW64 ~/.ssh (master)
$ ssh-keygen -t rsa -b 4096 -C "xxxx@qq.com"     # 生成 ssh-key #
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Eddie/.ssh/id_rsa): id_rsa_gitee  # 可为空, 也可自定义 #
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_gitee.
Your public key has been saved in id_rsa_gitee.pub.
The key fingerprint is:
SHA256:893vm/2f+U9TlIO8aHPyQ5wYKbX6qbehUxLpzluJy2Y xxxx@qq.com
The key's randomart image is:
+---[RSA 4096]----+
|           .     |
|          . + . .|
|         ..+ o o.|
|         oo = o..|
|        S..* *  .|
|         =+oO.  .|
|        o.+*.o...|
|        .E=.. .o*|
|        o*+..  *#|
+----[SHA256]-----+
Eddie@EDDIE-THINKPAD MINGW64 ~/.ssh (master)
$ cat id_rsa_git
id_rsa_gitee       id_rsa_gitee.pub

Eddie@EDDIE-THINKPAD MINGW64 ~/.ssh (master)
$ cat id_rsa_gitee.pub # 查看与复制公钥#
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBVunQZQAyril8iMLbIk3xuaTLa5OmrfyfRF+JbLDFTWwtQkcQ2XQQtkf5WQa5CRo/xndT2x3NpSpyi7+wEAhQUXNG/GNEcQCMiukRoW8tq9yORV734E20a/HKWdw/dnqjIPSe9dha4XKvMmY219cq1uxs3hI40VC/cinraWXnu4HBx46l/vZAmrmwUiHrh86qAbQzarhdM2pRII/6G85D+D1/MC6zScuqbvSb0Rfz449rO6gee/9e+VzGKeNmOYytx8dIGIvjfZLF21tA7txItQbsnZ/8kR77zteda1Htg/HaQiS5n8dCktMarGNehLckZpTrNPnP1FAHIR0qTSbxWuloAztUWC334wORWGdvb1rpzemsHLBoRLYlNFBXaAfK2CzlZrcvW1WRbAQEFTFcLiphuKuT6yCUbB13LdBrLSxwLINAB0vtWXHJj5vjCMnIjiHCEVWWv2JVtSky6tBfXQgrcDanJK/HlQicyDv298QRS0YzhV1KpNcmo6LGXM+gEzKWqSa/r8GADuWFISYLxTHyzHZfhkF2ir0GNBq7j7UYh9HhazstzkkleQ/0aFt5cx+mhxgo6g1W9NBYHDF2HKrfc4h4lqTEXylCAAGN0lDPZuwPDQYun5HimlSWH0Jl8+6OZlFCU1pRYQTYPDjBsqQKm1G8m5CgPDl/u40rDw== xxxxx@qq.com

Eddie@EDDIE-THINKPAD MINGW64 ~/.ssh (master)
$ ssh -T git@gitee.com # 测试配置是否成功 #
The authenticity of host 'gitee.com (116.211.167.14)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye2WBicd8grQp+KkGyOagbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitee.com,116.211.167.14' (ECDSA) to the list of known hosts.
Welcome to Gitee.com, eddie-code!

2、Git WEB添加公钥

  • Gitee: 登录 -> 右上 -> 头像 -> 设置 -> 左侧(SSH公钥)-> 复制 id_rsa_gitee.pub 的里面到这里
  • Github: 登录 -> 右上 -> 头像 -> Settings -> SSH and GPG keys -> New SSH key -> 复制 id_rsa_gitee.pub 的里面到这里
  • Gitlab: 自己摸索吧~ 哈!

业务实战操作

  • 人物:
    • 组长小昌、组员小李
  • 场景
    • (一)小昌创建Project并提交到远程Gitee仓库
    • (二)小李拉取远程Git仓库上获取Project代码
    • (三)小李修改了部分代码, 并且提交到远程Gitee仓库
    • (四)小昌需要拉取小李最新提交的代码
    • (五)小李接受了一个新功能的任务, 创建了一个分支并在分支上开发
    • (六)小李把分支提交到远程Gitee仓库
    • (七)小昌获取小李提交的分支
    • (八)小昌把分支合并到主干
    • (九)额外需要PR流程的

IDEA 操作

版本: IDEA 2019.3.2

(一)小昌创建Project并提交到远程Gitee仓库

图片.png

1.1 选择本项目的目录位置,点击OK (文件会变成红色)

图片.png

1.2 在Project上点击右键,选择Git菜单

文件变成绿色

图片.png

1.3 Commit And Push

图片.png

图片.png

第一次是显示 "master --> Define remote"

图片.png

如果出现 "Push to origin/master was rejected"

  • 切换到当前项目所在的目录,右键选择GIT BASH Here
    • git pull
    • git pull origin master
    • git pull origin master --allow-unrelated-histories (:q!)
    • 切换 idea 按快捷键 CTRL+ALT+K -> Push

图片.png

(二)小李拉取远程Git仓库上获取Project代码

图片.png

(三)小李修改了部分代码, 并且提交到远程Gitee仓库

Add -> Commit -> Push

图片.png

(四)小昌需要拉取小李最新提交的代码

图片.png

(五)小李接受了一个新功能的任务, 创建了一个分支并在分支上开发

比如现在有一个新的功能或者已经Bug需要处理,在开发中为了不影响别人或者不确定是否加入该功能的时候,都可以适当的创建新的分支,等待下一个版本上线前让小昌进行PR或者直接合并到主干

图片.png

创建新分支,命名:eddie_banner_20210222 (格式:创建人_该分支大概信息_日期)

创建后会自动切分该分支,在 IDEA 右下可以看到

图片.png

注意,这里创建的分支仅仅在本地仓库,如果想让小昌获取到这个分支,还需要提交到远程仓库并且合并到主干才算完成

(六)小李把分支提交到远程Gitee仓库

图片.png

图片.png

(七)小昌获取小李提交的分支

Git -> Repository -> Pull

右下分支 -> 在 Remote Branches 选择 小李创建新分支 -> Checkout

图片.png

(八)小昌把分支合并到主干

在确定测试小伙确认 eddie_banner_20210222 上代码没有问题后, 组长-昌大佬就可以合并代码到主干

切换到master分支,选择Merge Changes

图片.png

图片.png

(九)额外需要PR流程的

涉及到分支权限, 就不细说了!

(十)冲突情况处理

比如现在多了一个新同事小张,他和小李同事编辑了 Demo 文件, 小李已经提交了, 小张忘记了新更新后提交的原则.
IDEA 就弹出提示框

直接点击"Merge"

图片.png

此时,会告诉你什么文件冲突了

  • "Accept Yours" - 在十分确定你的代码是没有问题, 可以用本人代码覆盖该类
  • "Accept Theirs" - 在十分确定你的代码是有问题的, 可以使用跟你有冲突的人代码
  • "Merge..." - 进去冲突窗口手动解决

图片.png

图片.png

解决冲突后,再次提交即可!