G i t

本文详细介绍了Git的基本概念、常用命令,包括版本控制、分支操作、团队协作机制,以及如何与GitHub和国内代码托管平台如码云、GitLab进行交互。内容涵盖设置用户签名、初始化本地库、提交、合并分支、解决冲突,以及IDEA集成Git和GitHub的步骤。此外,还探讨了SSH免密登录、跨团队协作和代码托管平台的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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! hello
    
    1111 hot-fix
    
    hello git! hello
    hello git! hello  master test
    hello git! hello
    hello git!
    

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

    hello git! hello
    
    1111 hot-fix
    
    hello 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! hello
      
      1111 hot-fix
      
      hello 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 = afei
    	email = 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 插件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值