Git学习

Git

1.介绍

  • 概念:免费开源、分布式的代码版本控制系统,帮助开发团队维护代码

  • 作用:记录代码内容,切换代码版本,多人开发高效合并代码

  • 下载安装------>配置git用户名和邮箱

    • 检查是否安装成功:git -v

    • 配置用户名和邮箱:

      git config --global user.name "XXX"

      git config --global user.email "XXXXXX"

2.Git仓库

  • 定义:记录文件状态内容的地方,存储着修改的历史记录
  • 创建:
    • 将本地文件转换成Git仓库:命令git init
    • 方式二:从其他服务器克隆git仓库

3.Git的三个区域

  • 工作区:实际开发时操作的文件夹
  • 暂存区:暂存改动过的文件(.git/index)
  • 版本库:提交并保存暂存区中的内容,产生一个版本快照(.git/object)
命令 作用
git add 文件名 暂存指定文件
git add. 暂存所有改动的文件
git commit -m"注释说明" 提交并保存,产生版本快照
git ls-files 查看暂存区有哪些记录
git status -s 查看文件状态

4.文件状态

文件状态 概念
未跟踪(U) 从未被Git管理过
新添加(A) 第一次被Git暂存
未修改('') 三个区域统一
已修改(M) 工作区内容变化

5.暂存区使用

  • 暂存区:暂时存储,可以临时恢复代码内容,与版本库解耦
  • 暂存区->覆盖->工作区:git restore 目标文件
  • 从暂存区移除文件:git rm --cached 目标文件

6.回退版本

  • 将版本库某个版本对应的内容快照,恢复到工作区/暂存区
  • 查看历史提交记录:git log --oneline
  • 回退命令:
    • git reset --soft 版本号:尽可能保留工作区和暂存区目前的文件
    • git reset --hard 版本号:完全覆盖暂存区和工作区
    • git reset --mixed版本号:工作区保留,暂存区覆盖

7.忽略文件

  • 定义:.gitignore 文件可以让git彻底忽略跟踪指定文件

  • 目的:让git仓库更小更快,避免重复无意义的文件管理,eg:node_modules,仅需要在本地使用,日志文件、缓存文件、临时文件等;

  • 创建:

    • 项目根目录新建.gitignore文件

    • 填入相应配置来忽略指定文件,eg:忽略以下文件,将下面的代码写进gitignore中并提交

      复制代码
      node_moudles
      dist
      .vscode
      *.pem
      *.cer
      *.log
      password.txt

8.分支

  • 定义:指向提交节点的指针,默认名为master
  • 注意:HEAD指针影响工作区/暂存区的代码状态
  • 场景:开发新的需求业务或修复Bug,保证主线代码随时可用,多人协同开发提交效率
  • 创建分支并产生提交记录步骤:
    • 创建分支:git branch 分支名
    • 切换分支:git checkout 分支名
    • 工作区准备代码并提交
  • 合并分支(先切换分支合并再删除):git merge XXX
  • 删除分支:git branch -d XXX
  • 合并冲突:在不同分支中,对同一个文件的同一部分进行修改,git无法干净的合并,产生合并冲突
    • 需要手动解决

9.Git远程仓库

  • 定义:托管在因特网或其他网络中的项目的版本库
  • 作用:保存版本库的历史记录,多人协作
  • eg:Gitee、GitHub
  • 创建远程版本库:
    • 注册第三方托管网站账号
    • 新建仓库得到远程仓库Git地址
    • 本地Git仓库添加远程仓库原点地址:git remote add 远程仓库别名 远程仓库地址
    • 本地Git仓库推送版本记录到远程仓库:git push -u 远程仓库别名 本地和远程仓库分支名
  • 远程仓库-克隆
    • 拷贝一个git仓库到本地
    • 命令:git clone 远程仓库地址
    • 公开仓库可随意可克隆,但修改需要为仓库成员
  • git pull:当有人修改远程仓库代码后,需要拉取最新的代码使用git pull
相关推荐
龘龍龙13 分钟前
大模型学习(三)-RAG、LangChain
学习·langchain
计算机安禾1 小时前
【数据结构与算法】第22篇:线索二叉树(Threaded Binary Tree)
c语言·开发语言·数据结构·学习·算法·链表·visual studio code
计算机安禾1 小时前
【数据结构与算法】第21篇:二叉树遍历的经典问题:由遍历序列重构二叉树
c语言·数据结构·学习·算法·重构·visual studio code·visual studio
信奥胡老师1 小时前
P1255 数楼梯
开发语言·数据结构·c++·学习·算法
夜幕下的ACM之路2 小时前
一、基础知识学习(Transformer + 上下文窗口 + Token 计算 + Embedding 向量)
人工智能·学习·transformer·embedding
GHL2842710902 小时前
Base64学习
学习
知识分享小能手2 小时前
MongoDB入门学习教程,从入门到精通,MongoDB创建副本集知识点梳理(10)
数据库·学习·mongodb
星幻元宇VR2 小时前
VR动感科普单车:让交通安全教育更真实、更有效
科技·学习·安全·生活·vr
亚马逊云开发者3 小时前
告别手动部署:在 Amazon EKS 上用 CodePipeline + Argo CD 搭建 GitOps CI/CD
elasticsearch·ci/cd·kubernetes
初生牛犊不怕苦4 小时前
与AI一起学习《C专家编程》:数组与指针
c语言·学习·算法