Git相关入门教程

1. Git概述

1.1 Git的工作机制

image-20220912165220165
  • 工作区:存放代码的位置。存放在本地计算机磁盘。
  • 暂存区:在工作区写完代码后,需要让Git知道,添加(add)到暂存区。
  • 本地库:提交(commit)到本地库后,会产生历史记录。就是你的任何修改在这里都可以看到相应的版本。

1.2 代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。从本地库推送(push)到远程库。

  • GitHub:(外网)
  • gitee码云:(国内网站)
  • GitLab:局域网

2. Git常用命令

2.1 设置用户签名

💥💥Git首次安装必须设置一下用户签名,否则无法提交代码💥。

签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。

  • 设置用户名:

    git config --global user.name TianAqiang
    
  • 设置邮箱:

    git config --global user.email 3072592845@qq.com
    

✨注意:这里设置用户签名和你GitHub的账号没有任何关系

查看设置的用户名和邮箱

  • 方式一:找到.gitconfig文件

    image-20220912171527549

    image-20220912171609839

    image-20220912171451405

  • 方式二(推荐):使用 git config --global --list

    image-20220912172022204

2.2 初始化本地库

想要git管理一个文件,必须先初始化本地库

  • 初始化本地库:

    git init
    

    查看目录:ll (查看隐藏:ll -a)

    image-20220912172501088

    image-20220912172745182

  • 查看状态:

    git status
    
    image-20220912173857697

2.3 添加到暂存区

添加暂存库:

git add 文件名

从暂存区删掉:

git rm --cached 文件名

2.4 提交本地库

提交本地库:

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

查看日志信息:git reflog
查看详细日志信息:git log

image-20220912175408764 image-20220912175759190

2.5 历史版本、版本穿梭

版本穿梭:

git reset --hard 版本号

image-20220912180907308

3. 分支操作

3.1 什么是分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独
分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来, 开发自己分支的时
候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是
一个单独的副本。(分支底层其实也是指针的引用)

好处:同时并行推进多个功能开发,提高开发效率。各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

3.2 常用命令

  • 查看分支:

    git branch -v 
    
    image-20220912181745147
  • 创建分支

    git branch 分支名
    
    image-20220912182007342
  • 切换分支

    git checkout 分支名
    
    image-20220912182219049
  • 合并分支

    git merge 分支名
    
    image-20220912182635467

3.3 合并冲突

  • 两个分支在同一个文件同一个位置有两套完全不同的修改。

  • 必须人为决定新代码内容手动在文件中修改,之后提交到暂存区、本地库

image-20220912183309974

解决冲突

  1. 编辑有冲突的文件
  2. 删除特殊符号
  3. 决定要使用的内容

特殊符号: <<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix

image-20220912183940315

4. Git团队协作机制

4.1 团队内协作

image-20220912211228283

团队内协作:push、clone、pull

4.2 跨团队协作

image-20220912211450670

跨团队协作:fork、clone、push、pull request拉取请求->审核->merge、pull

5. GitHub

GitHub 网址: https://github.com/

在GitHub创建完远程仓库后生成链接,如图所示:

image-20220912213030355
  • 查看远程地址别名:

    git remote -v
    
  • 创建仓库别名:链接一般太长,为了方便取个别名

    git remote add 别名 https链接
    
    image-20220912213337343
  • 推送到远程库:

    git push 别名或链接 master(分支可变化)
    
  • 拉取远程库到本地:

    git pull 别名或链接 master
    

    团队内协作:push没有权限时,需要先加入团队

    跨团队协作:
    团队外成员:先fork到自己账号
    外成员修改好想要push:1.push request;2.团队审核;3.Merge pull request

  • 克隆:

    git clone 链接
    

    clone会做如下操作:

    1. 拉取代码
    2. 初始化本地仓库
    3. 创建别名,默认为origin

6. IDEA集成Git

6.1 配置Git忽略文件

IDEA特定文件:

image-20220912222238784
  1. 为什么要忽略他们?

    与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异。

  2. 怎么忽略?

    1. 创建忽略规则文件 xxxx.ignore(前缀名随便起,建议是 git.ignore)

      这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用户家目录下

      git.ignore 文件模版内容如下:

      # git.ignore文件
      # Compiled class file
      *.class
      # Log file
      *.log
      # BlueJ files
      *.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/download/help/error_hotspot.xml
      hs_err_pid*
      .classpath
      .project
      .settings
      target
      .idea
      *.iml
      
    2. 在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)

      image-20220912223125533 image-20220912223244064

6.2 定位 Git 程序

image-20220912223611294

6.3 初始化本地库

image-20220912225150961 image-20220912225209893

6.4 添加到暂存区

右键点击项目选择 Git -> Add 将项目添加到暂存区。

image-20220912225248067

6.5 提交到本地库

image-20220912225321222 image-20220912225357048

6.6 切换版本

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

image-20220912225502265

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

image-20220912225452932

6.7 创建分支

选择 Git, 在 Repository 里面,点击 Branches 按钮。

image-20220912225714642

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

image-20220912225708848

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

image-20220912225655835

然后再 IDEA 的右下角看到 hot-fix,说明分支创建成功,并且当前已经切换成 hot-fix 分支

image-20220912225639330

6.8 切换分支

在 IDEA 窗口的右下角,切换到 master 分支。

image-20220912225838848

然后在 IDEA 窗口的右下角看到了 master,说明 master 分支切换成功。

image-20220912225829367

6.9 合并分支

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

image-20220912225948062

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

image-20220912225957415

6.10 解决冲突

如果 master 分支和 hot-fix 分支都修改了代码,在合并分支的时候就会发生冲突。

image-20220912230142486

点击 Conflicts 框里的 Merge 按钮,进行手动合并代码。

image-20220912230321004

手动合并完代码以后,点击右下角的 Apply 按钮

image-20220912230412387

代码冲突解决,自动提交本地库。

image-20220912230418312

7. IDEA集成GitHub

7.1 设置GitHub账号

image-20220913170955141

7.2 分享工程到 GitHub

image-20220913171819843

7.3 push 推送本地库到远程库

image-20220913172139889

⚡⚡注意:

  • push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。
  • 也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!
  • 因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!
  • 如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!

7.4 pull拉取远程库到本地库

image-20220913172757833 image-20220913172958468

⚡⚡注意:

  • pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动合并,如果自动合并失败,还会涉及到手动解决冲突的问题。

7.5 clone 克隆远程库到本地

image-20220913173503045 image-20220913173536414

8. IDEA集成Gitee

8.1 Gitee简介

众所周知, GitHub 服务器在国外, 使用 GitHub 作为项目托管网站,如果网速不好的话,严重影响使用体验,甚至会出现登录不上的情况。针对这个情况,大家也可以使用国内的项目托管网站-码云。

码云是开源中国推出的基于 Git 的代码托管服务中心, 网址是 https://gitee.com/ ,使用方式跟 GitHub 一样,而且它还是一个中文网站。

8.2 IDEA 安装码云插件

Idea 默认不带码云插件,第一步要安装 Gitee 插件。如图所示,在 Idea 插件商店搜索 Gitee,然后点击右侧的 Install 按钮。

image-20220913174209508 image-20220913174325721

8.3 push 到码云远程库

Idea 连接码云和连接 GitHub 几乎一样,首先在 Idea 里面创建一个工程,初始化 git 工程,然后将代码添加到暂存区,提交到本地库,这些步骤上面已经讲过,此处不再赘述。

image-20220913175059796

8.4 码云复制 GitHub 项目

image-20220913175521631

9.总结

内容来自🌹🌹 B站尚硅谷课程 🌹。老师讲得很好,有兴趣的可以听听。

posted @   就是搞笑啊  阅读(27)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示