G i t

article/2025/10/1 7:24:27

Git

  • 1、Git 概述
    • 1.1、版本控制工具
  • 2、Git 常用命令★★★★
    • 2.1、设置用户签名★★★★
    • 2.2、初始化本地库★★★★
    • 2.3、查看本地库状态$ git status
    • 2.4、添加暂存区$ git add 文件名
    • 2.5、提交本地库
    • 2.6、修改文件$ vim 文件名
    • 2.7、历史版本
  • 3、Git 分支操作
    • 3.1、分支的操作:
      • 3.1.1、查看、创建、切换分支
      • 3.1.2、合并分支的冲突
    • 3.2、切换分支本质
  • 4、Git 团队协作机制
    • 4.1、团队内协作
    • 4.2、跨团队协作
  • 5、GitHub 操作
    • 5.1、远程仓库操作
    • 5.2、邀请加入团队:
    • 5.3、跨团队协作
    • 5.4、SSH 免密登录
  • 6、IDEA 集成 Git★★★★
    • 6.1、环境准备★★★★
    • 6.2、初始化、添加、提交
    • 6.3、创建、切换分支
    • 6.4、合并分支
  • 7、IDEA 集成 GitHub
    • 7.1、设置 GitHub 账号
    • 7.2、分享项目到 GitHub
    • 7.3、push 推送本地库到远程库
    • 7.4、pull拉取远程库到本地库
    • 7.5、clone 克隆远程库到本地
  • 8、国内代码托管中心——码云
    • 8.1、创建远程库
    • 8.2、IDEA 集成 Gitee
    • 8.3、分享项目到 Gitee
    • 8.4、push 推送本地库到远程库
    • 8.5、pull 拉取远程库到本地
    • 8.6、Gitee 复制 GitHub 项目
  • 9、自建代码托管平台——GitLab
    • 9.2、IDEA 集成 GitLab

1、Git 概述

1.1、版本控制工具

集中式版本控制工具:CVS、SVN(Subversion)、VSS

有一个单一的集中管理的服务器,保存所有文件的修订版本

分布式版本控制工具:Git、Mercurial、Bazaar、Darcs

版本控制是在本地(代码仓库镜像下来)进行的,服务器断网的情况也可以进行开发

每个客户端保存的也都是整个完整的项目,包含历史记录,更加安全

2、Git 常用命令★★★★

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OaPOW4jZ-1649922419725)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208112706489.png)]

2.1、设置用户签名★★★★

安装完成后,在开始菜单里找到“Git”->“Git Bash”,弹一个类似命令行窗口的东西,就说明Git安装成功

接着需要设置一下机器信息,这台机器上的所有Git仓库都会使用这个配置

$ git config --global user.name "username"
$ git config --global user.email "email@example.com"

设置之后可以在此文件中查看用户签名

(img-uVgkI6Kh-1649922419733)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208113250073.png)]

签名的作用是区分不同操作者身份,Git 首次安装必须设置以下用户签名,否则无法提交代码

2.2、初始化本地库★★★★

步骤:

  1. 创建一个空目录(最好不要包含中文)

  2. 然后进入该目录,右击 Git-Bash

  3. 初始化本地库

    git init 命令把这个目录变成 Git 可以管理的仓库

    $ git init
    
  4. 初始化成功会在此目录下生成一个隐藏的 .git 目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oYhZLp8r-1649922419734)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208113906363.png)]

    系统自动创建了唯一一个master分支

    版本控制系统只能跟踪文本文件的改动,且编码方式是utf-8

  5. 可在 Git 中使用 Linux 查看命令

    $ ll  查看文件
    $ ll -a   查看隐藏文件Ctrl+l  翻页
    

2.3、查看本地库状态$ git status

$ git status

首次查看:工作区没有任何文件

$ git status输出:
On branch master     //当前分支No commits yet     //当前没有提交过nothing to commit (create/copy files and use "git add" to track)

新增文件:hello.txt

$ vim helo.txt在文件编辑时:i、a、s 进入insert模式,ESC 退出insert模式
退出insert模式后: yy 复制该行;p 粘贴;dd 删除该行;u 撤回;在最下面输入 :wq 保存退出$ cat helo.txt    //查看文件内容

再次查看:检测到未追踪的文件

$ git status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xvlKySh8-1649922419735)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208120201266.png)]

2.4、添加暂存区$ git add 文件名

$ git add 文件名

将工作区的文件添加到暂存区

$ git add hello.txt输出://将Windows的换行符LF替换为Linux换行符CRLF
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory

查看状态:检测到暂存区有新文件

$ git status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46uLZC36-1649922419736)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208120906907.png)]

删除暂存区文件,工作区仍然存在

$ git rm --cached hello.txt输出:
rm 'hello.txt'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hgjumuXo-1649922419737)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208121128924.png)]

2.5、提交本地库

$ git commit -m"日志信息" 文件名

添加暂存区之后,工作区仍然存在;提交到本地库之后,暂存区就清空了。

img

将暂存区的文件提交到本地库,形成历史版本

$ git commit -m "first" hello.txt输出://警告换行符自动被替换
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory//分支master内的版本信息 first,自动生成版本号 06d7f87
[master (root-commit) 06d7f87] first//一个文件被修改,19行数据添加1 file changed, 19 insertions(+)create mode 100644 hello.txt

查看状态:没有文件需要提交

$ git status输出:
On branch master//没有文件需要提交
nothing to commit, working tree clean

查看引用信息

$ git reflog输出://分支指向master,提交的版本号
06d7f87 (HEAD -> master) HEAD@{0}: commit (initial): first

查看完整信息

$ git log输出://生成的版本号的完整输出
commit 06d7f875e0f4249d612ac7e826c6c93f1fe24a3d (HEAD -> master)//提交的用户的信息
Author: afei <email@qq.com>//提交的时间
Date:   Tue Feb 8 12:16:04 2022 +0800//版本号first

2.6、修改文件$ vim 文件名

修改文件:$ vim 文件名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xPM9tz0p-1649922419738)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208122816133.png)]

查看状态:检测到工作区有文件被修改

$ git status   //查看本地库状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LjnkmhHC-1649922419739)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208122952693.png)]

将修改的文件再次添加到暂存区

$ git add hello.txt    //将文件添加到暂存区输出:
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory

查看状态:工作区的修改添加到了暂存区

$ git status   //查看本地库状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rivwlhqr-1649922419739)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208123210762.png)]

将修改的文件提交到本地库

$ git commit -m "second" hello.txt输出:
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory//版本号
[master 867c18f] second//表示修改 5 行1 file changed, 5 insertions(+), 5 deletions(-)

指针指向的是第二个版本,查看文件信息的时候,查看的就是第二个版本的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zuzlC9QH-1649922419740)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208123605160.png)]

2.7、历史版本

$ git reflog 查看版本信息

$ git log 查看版本信息信息

$ git reset --hard 版本号 回到旧版本,指针会指向指定版本文件,查看文件时,输出的是指定版本的内容

查看历史版本

ASUS@DESKTOP-07LJMVU MINGW64 /f/Program Files/Git-space/git-demo (master)
$ git reflog
867c18f (HEAD -> master) HEAD@{0}: commit: second
06d7f87 HEAD@{1}: commit (initial): first

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fr1Ile4r-1649922419741)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208124049700.png)]

版本穿梭:就是回到旧版本

$ git reset --hard 06d7f87   //双击鼠标左键复制输出:
HEAD is now at 06d7f87 first

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FLhwO5f1-1649922419741)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208124352615.png)]

$ cat hello.txt
//此时输出文件内容,显示的也是第一个版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bGlvAhzh-1649922419742)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208124613547.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1RQkOO8O-1649922419743)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208124655881.png)]

3、Git 分支操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qi09IYKV-1649922419743)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208125108278.png)]

分支是指为任务创建单独的分支,程序员可以把自己的工作从开发主线上分离开来,开发自己分支得知后,不会影响主线分支的运行,类似于文件复制的副本

分支底层是指针的引用

分支的好处:

  1. 可以同时并行推进多个功能开发,提交开发效率
  2. 各个分支在开发过程中,如果某分支失败,不会影响其他分支

3.1、分支的操作:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hp7XUbBQ-1649922419744)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208125818209.png)]

3.1.1、查看、创建、切换分支

  1. 查看分支

    $ git branch -v[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r50sVRND-1649922419745)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208130114595.png)]

  2. 创建分支

    $ git branch 分支名

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Npgrpt8d-1649922419745)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208130331213.png)]

  3. 切换分支

    $ git checkout 分支名

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y26RzMda-1649922419746)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208130516179.png)]

  4. 修改分支

    在 hot-fix 分支上修改文件

    $ vim hello.txt  //修改文件
    $ git add hello.txt    //添加到暂存区
    $ git commit -m "hot-fix first" hello.txt   //提交到本地库
    $ cat hello.txt   //查看文件内容
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aLSAFXOj-1649922419752)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208131158436.png)]

3.1.2、合并分支的冲突

  1. 合并分支

    $ git merge 分支名 将指定分支合并到当前分支

    此时hot-fix是在master的基础上进行修改,合并成功

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v82Iglf3-1649922419754)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208132804321.png)]

  2. 产生冲突

    当两个分支各自对文件的修改不同,会产生冲突

    如:首先二者文件内容一致,然后master进行修改,并添加暂存区、提交本地库

    hello git! hello1111 hot-fixhello git! hello
    hello git! hello  master test
    hello git! hello
    hello git!
    

    hot-fix 进行修改,并添加暂存区、提交本地库

    hello git! hello1111 hot-fixhello git! hello
    hello git! hello
    hello git! hello  hot-fix test
    hello git!
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-diCzGaXe-1649922419756)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208133719005.png)]

    在 master 分支上,合并 hot-fix ,产生冲突

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xu2n1A4W-1649922419758)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208133932006.png)]

    查看状态

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fojUXwvP-1649922419760)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208134121106.png)]

  3. 解决冲突,需要手动合并代码

    1. 打开文件

      hello git! hello1111 hot-fixhello git! hello
      <<<<<<< HEAD      //<<<<< HEAD 直到 ====,表示当前分支内容
      hello git! hello  master test
      hello git! hello
      =======          //==== 直到 >>>> hot-fix,表示要合并的代码
      hello git! hello
      hello git! hello  hot-fix test
      >>>>>>> hot-fix
      hello git!
      

      手动修改,然后保存

    2. 将文件添加到暂存区

      $ git add hello.txt
      
    3. 提交到本地库(注意:此时 commit 后不可跟文件名)

      $ git commit -m "hot-fix test"
      

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bHh8BzXo-1649922419762)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208134710734.png)]

合并只会修改当前分支,不会修改其它分支

3.2、切换分支本质

切换分支本质就是移动 HEAD 指针

Git 底层就是两个指针:

  1. 一个是 HEAD 的指针,指向哪个分支
  2. 另一个是分支的指针,执行哪个文件版本

4、Git 团队协作机制

4.1、团队内协作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rGJ1rcKX-1649922419762)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208135327820.png)]

clone :完整的复制下来

push :推送需要有权限

pull :拉取,会更新本地代码

pull 只是拉取更改的部分,clone 是将仓库中整个项目进行拉取

4.2、跨团队协作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8jAmwnPy-1649922419763)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208135400641.png)]

fork :远程库复制到远程库

clone : 复制到本地库

pull request :拉取请求

merge :合并

5、GitHub 操作

注册:

邮箱:2371412162@qq.com
密码:leigedexiaomumei123
用户名:leigedexiaomimei

新建仓库:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QHnS1VgS-1649922419764)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208151829190.png)]

5.1、远程仓库操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-81aThLPG-1649922419764)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208151506852.png)]

远程仓库地址获取:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gkJJC8vC-1649922419764)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208172124856.png)]

将本地 master 分支推送到远程仓库:

$ git checkout master
$ get push git-demo master推送之后会弹出窗口,提示登录 GitHub

将远程仓库的代码拉取到本地仓库(就是覆盖下来):会自动将拉取到的文件提交到本地库

$ get pull git-demo ycckmaster

clone 会做如下操作:

  1. 拉取代码
  2. 初始化本地仓库
  3. 创建别名

会将环境都给搭建好

5.2、邀请加入团队:

申请添加成员:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HwZg9mOg-1649922419765)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208172616371.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BLorcs3t-1649922419766)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208172732132.png)]

成员同意被添加:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FHZ0Lcqz-1649922419766)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208172843400.png)]

然后就可以推送代码到远程仓库

5.3、跨团队协作

A 将远程仓库的地址复制发送给邀请跨团队协作的人B :

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6eVlIrd-1649922419767)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208172124856.png)]

跨团队协作的人 B , 先 fork ,然后可以对此代码进行更改,但是更改的都是自己远程仓库拉取到的文件:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HhRaeyXD-1649922419768)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208173607159.png)]

跨团队协作的人 B , 要想将更改的部分推送过去,需要 pull request:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T7cZ0LtY-1649922419769)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208173731661.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ca9LGDhL-1649922419769)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208173835990.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BwYVtBV2-1649922419770)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208173854475.png)]

A 这边可以看到有 pull request

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VEK0uQt9-1649922419771)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208174103398.png)]

A 可以将 B 改好的代码合并到自己的远程仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4wRHl7tR-1649922419771)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208174338356.png)]

5.4、SSH 免密登录

要想使用 SSH 地址,需要有 SSH 钥匙

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g20miXkQ-1649922419772)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208174507408.png)]

步骤:

  1. 在用户目录下右键 Git Bash:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eVAxfmU0-1649922419772)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208174739893.png)]

  2. 写入以下信息:

    //-t表示加密协议为 rsa 
    //-C后跟GitHub账号的邮箱
    $ ssh-keygen -t rsa -C 2371412162@qq.com
    
  3. 然后分开敲三次回车

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-peuIpbGL-1649922419773)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208175141959.png)]

  4. 然后会在用户目录下(C:\Users\ASUS)生成一个 “.ssh” 文件夹

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sTPCLUWR-1649922419774)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208175225695.png)]

  5. Git 进入此目录

    $ cd .ssh
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vCLmT55v-1649922419774)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208175350893.png)]

  6. 展示 公钥 文件,复制下来

    $ cat id_rsa.pub输出:复制以下信息
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC0TwcUkC+kKMUcBlILs0aUr4fsEtwCKi8gYG71zD24UcsKxj0a+7Iu3bNZwdI5IhDyRb+ITLrdQcPdVCkhRAmi3qALitoFy7XNH2Upx4x66VtZHLpF2KMYioUrm/da0CVzMDk6gZvJaFhh0MOSx0kDr+FdjZYVlt12jBR9CZhZfwtZESqdBeqZ5ONcxwISlTT6y/d5nx/9CL4X0eouPAE8gMJoOeIsXz9JJ6OLpnAXaXCl02ob1P0t6DOSa9MCVeK8YZbygXCIECcs+KZxoVyfEvhz6lsR3+Nw5Za82iOdItGu661bNQKHmsAs0rjjZUMKScSyVjeEgBlmNCKKgb8sPiEJCUHfMBfH7lEKlE9gFHhaH8Z8yfKeRMUaNu8EAak0XJZsVuHr4WGJP1613D9PGTDgjLx6688OZbxYANm/txFmux1484ZWlAiRw87LUKq22fPSe7PQTNGaDqq5Q6+L/k16yB77utpxgVScAU3dFo9cekKCJ4Pod2A94lV70wk= 2371412162@qq.com
    
  7. 在此邮箱的 GitHub 账号上,点击账号设置

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o9JsTaBo-1649922419775)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208175555026.png)]

  8. 添加 SSH 公钥

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-25dJXTzO-1649922419776)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208175641991.png)]

  9. 测试是否可用:

    1. 复制 SSH 地址

    2. 在 本地 Git 拉取远程仓库

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rDSpjIQT-1649922419776)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208175855112.png)]

6、IDEA 集成 Git★★★★

6.1、环境准备★★★★

因为 IDEA 工具中,创建工程的时候本身就有一些文件,不参与部署运行,把它们忽略掉能够屏蔽 IDEA 工具之间的差异

忽略步骤:

  1. 在用户目录下(C:\Users\ASUS)创建忽略规则文件 xxx.ignore ,建议 git.ignore

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F8evh6uJ-1649922419777)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208180724637.png)]

    写入以下内容:

    # Compiled class file
    *.class# Log file
    *.ctxt# Mobile Tools for Java(J2ME)
    .mtj.tmp/# Package Files #
    *.jar
    *.war
    *.nar
    *.ear
    *.zip
    *.tar.gz
    *.rar# virtual machine crash logs,see http://www.java.com/en/dowload/help/error_hotspot.xml
    hs_err_pid*.classpath
    .project
    .settings
    target
    .idea
    *.iml
    
  2. .gitconfig 文件中引用忽略配置文件(文件在用户目录中)

    [user]name = afeiemail = email@qq.com
    [core]excludesfile = C:/Users/ASUS/git.ignore
    注意:这里是正斜杠 / ,不是反斜杠 \
    
  3. 在 IDEA 中设置,定位 Git 程序

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SkhHWlLL-1649922419779)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208181640359.png)]

6.2、初始化、添加、提交

  1. 初始化本地库

    选择该项目的根目录

    成功之后在根目录就有 .git 文件夹

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fFXBs9Tn-1649922419780)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208182829130.png)]

    并且 pom.xml 文件显示为红色,表示暂存在工作区,未追踪

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wN9lLgAA-1649922419781)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220208182807153.png)]

  2. 添加文件到暂存区

    右击文件——Git——Add 就添加到暂存区

    也可以右击整个项目——Git——Add

    注意此时会弹出提示:是否要将忽略的文件也添加暂存区吗?选Cancel

    当新增文件时,会提示是否需要添加到暂存区,点击 Add 就添加到暂存区

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IsT0kpRP-1649922419781)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209102415530.png)]

    添加到暂存区之后,文件名为绿色

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IOAyYCqg-1649922419782)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209102908042.png)]

  3. 提交到本地库

    右击文件——Git——Commit File 就提交到工作区

    提交到工作区之后,文件名为黑色

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qzmNODcK-1649922419783)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209103614751.png)]

  4. 切换版本

    在 IDEA 左下角,点击 Version Control ,然后点击 Log 可查看版本

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cRGbp7IP-1649922419784)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209103820461.png)]

    右键选择要切换的版本,然后在菜单里点击 Checkout Revision

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4eC8KBUr-1649922419785)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209103856210.png)]

    文件名为蓝色,表示修改过的文件,未追踪,需要先添加暂存区、然后提交工作区

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AiIZnN8j-1649922419786)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209104038378.png)]

6.3、创建、切换分支

  1. 选择 Git ,在 Repository ,点击 Branches 按钮

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tiF3XylP-1649922419786)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209104530113.png)]

    也可以在 IDEA 右下角,点击 Git : 当前分支名

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9IVjktuu-1649922419787)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209104640498.png)]

  2. 在弹出的 Git Branches 框里,点击 New Branch 按钮

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8FTTrj4A-1649922419788)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209104545963.png)]

  3. 填写分支名称,创建 hot-fix 分支

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jzokNwL3-1649922419788)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209104808031.png)]

  4. 切换分支:只需要点击 Git : 当前分支名,选择要切换的分支,点击 Checkout

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vWYz0tL0-1649922419789)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209104915704.png)]

6.4、合并分支

在 IDEA 窗口右下角,将 hot-fix 分支合并到当前 master 分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0MypkQiv-1649922419789)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209105106706.png)]

如果代码没有冲突,分支直接合并成功,分之合并成功之后,代码自动提交到本地库,无需手动提交本地库

当有冲突的时候:

对于两个都修改的分支,进行合并时,会发生冲突

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XDf758k8-1649922419790)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209105847885.png)]

发生冲突会弹出下框:Conflicts 冲突

点击 Merge ,进入手动修改代码界面:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dMFeVHSS-1649922419790)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209110311694.png)]

合并之后,查看版本:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmyPtse2-1649922419791)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209110345961.png)]

7、IDEA 集成 GitHub

7.1、设置 GitHub 账号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zZ6SopjY-1649922419792)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209110638024.png)]

使用账号密码通常很难登录成功,可使用口令登录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RsOzz660-1649922419792)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209111028693.png)]

在 GitHub 生成口令:

点击头像——Setting——Develer setting——Personal access tokens ,点击 Create new token,然后输入密码、选择权限,即可生成口令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6CIHaWKp-1649922419793)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209111334835.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GhaXbH6w-1649922419793)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209111517525.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rud5XtEh-1649922419795)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209111617304.png)]

7.2、分享项目到 GitHub

先在 GitHub 上面创建一个远程库

在 IDEA 点击 VCS

7.3、push 推送本地库到远程库

注意:

push 一定要本地库代码的版本比远程库的版本高

如果本地代码版本已经落后,切记要先 pull 拉取以下远程库的代码,将本地代码更新到最新以后,再修改、提交、push

右键点击项目,可以将当前分支的内容 push 到 GitHub 的远程仓库中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UTRDGZxS-1649922419795)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209112447876.png)]

下面这种推送 push 默认是 https ,受网络影响可能推送不成功,推荐使用 SSH

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V17oxWlT-1649922419796)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209112645531.png)]

使用 SSH :

  1. 先到 GitHub 网页复制 SSH 链接

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YEcLJGaN-1649922419796)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209113019843.png)]

  2. 回到 IDEA ,点击自定义链接

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3DQgoHmI-1649922419797)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209113127515.png)]

  3. 粘贴 SSH 链接,并定义别名

  4. 选择链接
    在这里插入图片描述

7.4、pull拉取远程库到本地库

注意:

pull 如果远程库与本地库代码不一致,会自动合并

如果合并失败,会涉及到手动解决冲突问题

右键点击项目,可以将远程仓库的内容 pull 到本地仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zC3cKRQQ-1649922419799)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209113359867.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4vEn4n0V-1649922419799)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220209114233391.png)]

7.5、clone 克隆远程库到本地

可在 IDEA 初始化界面克隆远程库到本地。可使用 SSH 链接

在 项目内可点击 VCS

8、国内代码托管中心——码云

账号:afei

密码:通用密码

8.1、创建远程库

点击首页右上角的加号,选择下面的新建仓库

填写仓库名称、路径和选择是否开源(公开库、私有库)

在 码云推荐使用 HTTP 链接

8.2、IDEA 集成 Gitee

IDEA 默认不带 码云 插件,第一步要安装 Gitee 插件

登录 Gitee 账号

8.3、分享项目到 Gitee

8.4、push 推送本地库到远程库

修改的代码在本地库提交之后,再进行 push 推送

8.5、pull 拉取远程库到本地

IDEA 拉取远程库

8.6、Gitee 复制 GitHub 项目

新建仓库——导入已有仓库

然后贴入 HTTPS 协议链接

假如 GitHub 上面的代码有更新,Gitee 怎么同步更新?

9、自建代码托管平台——GitLab

需要下载 GitLab

需要 CentOS7 以上版本的服务器,内存 4G ,磁盘 50G,关闭防火墙

9.2、IDEA 集成 GitLab

安装 GitLab 插件


http://chatgpt.dhexx.cn/article/IDBlY1Ku.shtml

相关文章

Megatron-LM GPT2

内容 使用原始 Megatron-LM 训练 GPT-2 训练数据设置运行未修改的 Megatron-LM GPT2 模型启用 DeepSpeed 参数解析初始化和训练 初始化使用训练 API 前向传播反向传播更新模型参数损失缩放检查点保存和加载DeepSpeed 激活检查点&#xff08;可选&#xff09;训练脚本使用 GPT-…

代码评审与LGTM

为什么80%的码农都做不了架构师&#xff1f;>>> 关于codereview&#xff0c;https://www.douban.com/note/593670479/ 在Google&#xff0c;系统保证了只有经过Critique评审通过的代码才能被提交进代码仓库Piper。 每个目录都有几个“owners”&#xff0c;通常是相…

lnmt

lnmt 简介 lnmt&#xff1a; 表示的是 linux nginx mysql tomcat 的简称 Apache 为HTML页面服务&#xff0c;而Tomcat实际上运行JSP页面和Servlet&#xff0c;Tomcat实际上运行JSP页面和Servlet&#xff0c;Tomcat处理静态HTML的能力不如Apache服务器 了解更多Tomcat 内容请…

社区出品|LGTM :数据圈内的周度「热点精选」

&#x1f4e2;「LGTM」的意思是指&#xff1a;在我看来不错 (Looks Good to Me)&#xff0c;这是代码审阅者在批准 CL 时说的常用语。ShardingSphere 社区开辟一个全新的内容专栏——「LGTM 专栏」致力为您带来业界最佳新闻&#xff0c;让您在 5 分钟内了解科技&#xff01;另外…

怎么开启远程重启服务器,怎么正确重启服务器

对于从事互联网行业的工作人员来说&#xff0c;远程桌面连接不上是一种很常见的情况&#xff0c;这个时候重启服务器是一种最直接最有效的解决办法&#xff0c;但是重启服务器也是分好几种方法的&#xff0c;下面就随着小编来了解一吧。 服务器连接不上的原因有以下几种&#x…

虚拟机重启服务器命令,虚拟机中重启命令

虚拟机中重启命令 内容精选 换一换 本章节介绍通过执行virsh edit vmx命令编辑虚拟机配置文件的操作方法,其中vmx是虚拟机名称。虚拟机的CPU绑定,是指将VM的vcpu绑定到同一个NUMA节点的物理CPU上。以将虚拟机的4个vcpu分别绑定到0/1/2/3物理核为例,介绍虚拟机CPU绑定的配置方…

xshell开启文件服务器的命令,xshell重启服务器命令

xshell重启服务器命令 内容精选 换一换 以NTP服务器、DNS服务器的操作系统均为SUSE为例:登录Linux弹性云服务器。执行以下命令,切换至root用户。sudo su -sudo su -执行以下命令,编辑ntp.conf文件。vim /etc/ntp.confvim /etc/ntp.conf添加以下语句,配置NTP服务器。server …

服务器系统重启命令,服务器重启命令

服务器重启命令 内容精选 换一换 openEuler,EulerOS,CentOS 8.0及以上操作系统默认开启SElinux强制模式,会导致工具安装失败。若想关闭SElinux强制模式,执行以下操作。临时关闭执行以下命令查询SELinux状态。sestatusCurrent mode显示enforcing表示SELinux已开启强制模式。…

MyBatis 拦截器执行顺序

1.原始 jdbc 工作流程 原始 jdbc 工作流程 以查询为例 1.1 加载驱动 Class.forName(Driver.class.getName()) 1.2 建立数据库连接 Connection root DriverManager.getConnection(“xx”, “xx”, “xx”) 1.3 预编译sql语句 PreparedStatement preparedStatement root.prep…

Mybatis拦截器打印sql

在项目中,通常会配置log4j2等来输出mybatis的sql,为了防止sql注入问题,我们通常会使用#{}的方式来注入sql的参数,这会导致我们拿到的sql日志是没替换参数的,参数都是通过问号?占位符的方式。当我们需要拿下sql去数据库客户端执行的时候,就会有一个困扰:需要把一个个问号…

mybatis拦截器实现权限管理

框架设计 基于Spring SecurityJWT技术实现登录认证和访问授权&#xff0c;基于Mybatis 拦截器实现数据权限的控制。由于已有前文介绍Spring Security如有兴趣可以查看&#xff0c;在此将重点于数据权限的实现及菜单等表结构的设计。 Mybatis 拦截器 介绍Mybatis拦截器之前先来了…

Mybatis拦截器失效

现象&#xff1a; 自定义插件注册成功&#xff0c;但是始终不进入拦截器方法&#xff1b; 我的拦截器&#xff1a; 排查 Mybatis拦截器是采用的责任链模式&#xff0c;一般拦截器中intercept方法中最后执行 invocation.proceed() 方法&#xff0c;将拦截器责任链向后传递&…

MyBatis拦截器实现原理

Mybatis拦截器并不是每个对象里面的方法都可以被拦截的。Mybatis拦截器只能拦截Executor、StatementHandler、ParameterHandler、ResultSetHandler四个类里面的方法&#xff0c;这四个对象在创建的时候才会创建代理。 用途&#xff1a;实际工作中&#xff0c;可以使用Mybatis拦…

自定义MyBatis拦截器

文章目录 自定义MyBatis拦截器作用MyBatis中的四大核心对象在mybatis中可被拦截的类型有四种(按照拦截顺序)拦截器需要实现Mybatis提供的Interceptor接口利用反射获取运行中的实体字段的名字利用反射动态的为sql语句传递新参数使用mybatis自定义的拦截器为插入&#xff0c;更新…

Mybatis拦截器的使用及其源码详解

Mybatis拦截器的使用及其源码详解 Mybatis相关全览一、简介执行与添加顺序拦截器生效入口 二、使用例子 三、原理加载入口生成代理遍历拦截器匹配&生成代理 四、实践例子 本文用的是3.5.10版本 源码地址&#xff1a;https://github.com/mybatis/mybatis-3/releases 文档地址…

Mybatis拦截器Interceptor

前言 最近项目使用Mybatis拦截器对数据进行加解密&#xff0c;以下记录如何将拦截器集成到项目中以及在使用过程中踩过的一些小坑&#xff0c;与君共勉 1.Myabtis拦截器是什么&#xff1f; MyBatis允许使用者在映射语句执行过程中的某一些指定的节点进行拦截调用&#xff0c…

Springboot 自定义mybatis 拦截器,实现我们要的扩展

前言 相信大家对拦截器并不陌生&#xff0c;对mybatis也不陌生。 有用过pagehelper的&#xff0c;那么对mybatis拦截器也不陌生了&#xff0c;按照使用的规则触发sql拦截&#xff0c;帮我们自动添加分页参数 。 那么今天&#xff0c;我们的实践 自定义mybatis拦截器也是如此&a…

mybatis 拦截器

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

Mybatis——拦截器Interceptor

本篇介绍Mybatis拦截器/插件相关知识&#xff0c;包括相关的类及作用、拦截器有哪几种、拦截器可以在Mybatis的执行过程中的哪些节点起作用、拦截器如何使用、相关的API&#xff0c;最后附上代码示例。 1. Mybatis拦截器是什么&#xff1f;一般用途&#xff1f; MyBatis允许使…

vue后台管理框架(iview + vue)

iview官网&#xff1a;https://www.iviewui.com/docs/introduce vueiview后台管理文档&#xff1a;https://lison16.github.io/iview-admin-doc/#/ vueiview后台管理线上示例&#xff1a;https://admin.iviewui.com/login vueiview后台管理github&#xff1a;https://github.co…