Git学习与使用

news2024/11/25 2:36:39

目录

  • 版本控制、GIT以及SVN
    • 常见的版本控制方法
      • 本地版本控制
      • 集中式版本控制
      • 分布式版本控制
    • SVN与Git的区别
  • 下载与安装Git
    • 安装:
  • Git环境配置
    • Git必要的配置
  • Git的基本理论(核心)
  • Git项目搭建
    • 创建目录
  • git文件操作
    • 忽略文件
  • 使用码云(gitee)
  • 辅助学习
    • 常用的Linux命令

版本控制、GIT以及SVN

核心思想:控制版本,新的版本要迭代,老的版本要保存

版本控制的优势:

  • 实现跨区域多人协同开发
  • 追踪和记载一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工作量
  • 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间,同时降低人为错误

常见的版本控制工具:

  • Git
  • SVN ( Subversion )
  • CVS ( Concurrent Versions System )
  • Vss ( Micorosoft Visual SourceSafe )

常见的版本控制方法

本地版本控制

记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS
在这里插入图片描述

集中式版本控制

代表:SVN
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
在这里插入图片描述

分布式版本控制

代表:Git
所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。
在这里插入图片描述

SVN与Git的区别

下载与安装Git

windows下载地址

直接选择稳定版的下载即可
在这里插入图片描述

安装:

选择安装位置,可以选择自己的环境
在这里插入图片描述
选择Git默认的编辑器,选择自己常用的就行
在这里插入图片描述

Git环境配置

下载好之后会发现有三个应用Git Bash、Git CMD、Git GUI
Git Bash:unix与Linux风格的命令行,使用最多,最推荐
Git CMD:windows-cmd风格的命令行
Git GUI:图形界面的Git,不建议使用

由于我们需要使用Git Bash所以需要对Linux有一定了解,下面提供了一些基本的Linux的命令

Git必要的配置

所有的配置文件都保存在本地

git config -l # 查看配置
git config --system --list # 查看系统配置
git config --global --list # 查看本地配置(主要包含的使用者的账户和密码)

系统配置和用户配置都是存在Git文件下的配置项文件:
可以在Git目录下搜索gitconfig查看自己的系统配置:
在这里插入图片描述
用户目录在C盘下
在这里插入图片描述
了解了配置项,我们需要用命令行进行用户项配置:

git config --global user.name “用户名”
git config --global user.email “邮箱地址”

在这里插入图片描述
此时可以查看C盘下用户配置文件,查看修改情况。

Git的基本理论(核心)

Git有四个区域:

  • workspace:工作区,平时存放代码的地方
  • index/stage: 暂存区,用于临时存放改动,实际上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最近放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是项目组中的一台电脑用于远程数据交换
    在这里插入图片描述
    git的工作流程一般是这样的:
    1.在工作目录中添加、修改文件;
    2.将需要进行版本管理的文件放入暂存区;
    3.将暂存区域的文件提交到git仓库。
    因此,git管理的文件有三种状态:modified-已修改,staged-已暂存,commiteed-已提交

Git项目搭建

工作目录(workspace)一般就是希望通过Git帮助你进行文件夹管理,可以是你的项目目录,也可以是空目录,但是不建议出现中文。
日常使用需要记住如下6个命令
在这里插入图片描述
重点是push、commit和add

创建目录

本地仓库搭建:git init,执行完git init会出现一个.git文件

在这里插入图片描述
或者使用git clone的方式进行创建
这种方式是克隆远程目录,将远程服务器上的仓库完全镜像一份到本地

git clone url

git文件操作

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在不想要提交的文件,或者要提交的文件没提交上。

  • Untracked:未跟踪,此文件在文件夹中,但是并没有加入到git库中,不参与版本控制。通过git add状态变成Staged.
  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中的完全一致。这种类型的文件一般有两个去处,如果它被修改,会变成Modified.如果使用git rm移除版本库,则成为Untracked文件。
  • Modified:文件已被修改,仅仅是修改,并没有进行其他操作。这个文件也有两个去处,通过git add进入暂存staged状态,使用git checkout,则丢弃修改过,返回到unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改!
  • Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变成一致,文件未Unmodify状态,执行git reser HEAD filename取消暂存,文件状态变成Modified.

在刚才初始化好的文件中检查文件状态

git status

在这里插入图片描述
显示没有文件被跟踪,我们在该文件夹下创建一个文件(名为main.js),继续使用status检查状态,发现main.js未被跟踪。

在这里插入图片描述
此时我们使用命令

git add . # 将文件添加到暂存区中(添加所有文件到暂存区)

此时发现main.js进入待提交的状态。
在这里插入图片描述
此时利用commit命令提交到本地仓库

git commit -m “消息内容” #提交暂存区中内容到本地仓库 -m是提交信息

在这里插入图片描述

忽略文件

有些时候我们不需要把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件。
所以我们需要在主目录下简历“.gitignore”文件,此文件有如下规则:

  1. 忽略文件夹中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号( ?)代表一个字符,方括号([abc])代表可选字符范围大括号({string1,string2,…})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
例如
*.txt  #忽略所有.txt结尾的文件
!lib.txt   # 但是lib.txt除外
/temo     # 忽略项目跟目录下的TODO文件,不包括其他目录temp
build/      # 忽略build/目录下的所有文件
doc/*.txt   #忽略doc/notes.txt 但是不会忽略doc/server/arch.txt

使用码云(gitee)

设置本机绑定SSH公匙,实现免密码登录!

首先通过git命令行获取密钥
通过命令 ssh-keygen 生成 SSH Key

ssh-keygen -t ed25519 -C “Gitee SSH Key”
其中 -t key 类型
其中 -C 注释

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/git/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/git/.ssh/id_ed25519
Your public key has been saved in /home/git/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:ohDd0OK5WG2dx4gST/j35HjvlJlGHvihyY+Msl6IC8I Gitee SSH Key
The key's randomart image is:
+--[ED25519 256]--+
|    .o           |
|   .+oo          |
|  ...O.o +       |
|   .= * = +.     |
|  .o +..S*. +    |
|. ...o o..+* *   |
|.E. o . ..+.O    |
| . . ... o =.    |
|    ..oo. o.o    |
+----[SHA256]-----+

中间遇到停顿直接回车,一共三次回车。

2.查看生成的SSH公钥和私钥:

ls ~/.ssh/
输出:
id_ed25519 id_ed25519.pub

  1. 读公钥

cat ~/.ssh/id_ed25519.pub
输出,如:
ssh-ed25519 AAAA***5B Gitee SSH Key

或者直接去C盘用户目录下找到.ssh文件,找到相关的id_ed25519.pub,用记事本打开也能得到一段很长的密钥。

新建git仓库
在这里插入图片描述

辅助学习

常用的Linux命令

cd …:(中间有空格哈)回到上一级目录
cd 路径名:路径跳转
pwd:显示路径
clear:清除屏幕
ls:列出当前目录下所有文件
touch:新建文件(touch main.py:在当前目录下新建一个名为main.py的文件)
rm:删除文件 (rm main.py:移除main.py文件)
mkdir:创建一个目录(文件夹mkdir test2:创建一个test2的目录)
rm -r:删除目录(rm -r test2:删除刚刚创建的test2目录)

mv:移动文件(move main.py test2:将main.py移动到test2中)
reset:重新初始化终端
history:查看历史命令
help:查看某个命令的帮助
exit:退出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/746971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CV常用注意力机制总结

本文总结了近几年CV领域常用的注意力机制,包括:SE(Squeeze and Excitation)、ECA(Efficient Channel Attention)、CBAM(Convolutional Block Attention Module)、CA(Coor…

DevOps基础服务2——Jenkins

文章目录 一、基本了解1.1 CI/CD介绍1.2 基于Docker的CI/CD 二、安装jenkins三、页面管理3.1 当前系统用户配置3.2 系统配置3.3 全局工具配置3.4 插件管理3.4.1 安装插件3.4.2 上传插件 3.5 用户设置3.6 查看日志3.7 汉化设置 一、基本了解 DEVOPS概念: DevOps是一种…

经典指针与数组笔试题——C语言

学习这片文章中的知识点,可以加深大家对指针应用的理解,让大家更能轻松知道指针在各种情况下指向那个内存地址。    文章开始之前 ,我们先来介绍一下一些必要的知识点 📢 : 以下代码都是在64位编译器下测试的 经典…

orcle报错:无监听程序,解决方法

orcle报错:无监听程序,解决方法 报错页面: 打开桌面侧边安装orcle的列表,找到Net Configuration Assistant,双击(这个可以重新配置监听) ![]](https://img-blog.csdnimg.cn/3ba6bd6bd0af413ca5…

nginx 开机自启

0x00 前言 简单的记录下 0x01 正文 cd /lib/systemd/system/ vim nginx.service [Unit] Descriptionnginx service Afternetwork.target [Service] Typeforking ExecStart/usr/local/nginx/sbin/nginx ExecReload/usr/local/nginx/sbin/nginx -s reload ExecStop/usr/lo…

pt18CSS

CSS 基础使用 CSS全称为: Cascading Style Sheets ,意为层叠样式表 ,与HTML相辅相成,实现网页的排版布局与样式美化 CSS使用方式 行内样式/内联样式 使用简单,但不推荐,大面积使用,很累 借…

ESP32(MicroPython) 网页显示温湿度+RGB点阵控制

本程序整合了RGB点阵可交互超声波云台网页显示温湿度程序和网页控制WS2812程序的功能,对一些参数进行了调整。去掉了图标以加快加载速度,去掉了超声波云台和按键控制以简化接线并实现RGB点阵更新周期可调,由于RGB点阵更新周期相对较长&#x…

vue3前端模拟https安全策略同局域网内测试方法-local-ssl-proxy

文章目录 前言建议全局安装运行安全策略模拟运行效果如果其他客户端不能访问 直接在cmd跑即可,不过我们应该先运行项目 前言 为什么要用https安全策略呢,因为http浏览器策略访问权限有限,不能使用navigator的激活“用户音频或视频”的方法&a…

windows上的mysql服务突然消失: 10061 Unkonwn error

问题描述 windows10 系统,今天早晨系统自己更新了下,也没啥问题,突然发现电脑上安装的mysql 服务没了… 原因分析: 我是安装的解压版的mysql 虽然服务没了,但是文件夹,包括数据啥的都在最重要的就是数据啦,还好都在 解决方案: 打开mysql 的bin所在目录…

Git撤销已合并提交的多种姿势

#Git撤销已合并提交的多种姿势 在Git中,合并分支是一个常见的操作,但有时候可能会意外地将错误的提交合并到了主分支。这时候需要撤销已合并的提交并恢复到正确的状态。本文将介绍的是如何在Git中撤销已合并的提交,无论这个提交记录是最新的还…

包管理工具:npm

安装Node的过程会自动安装npm工具 比如npm install dayjs后 const dayjsrequire("dayjs")console.log(dayjs()) 直接运行 生成package.json文件  方式一:手动从零创建项目,npm init –y  方式二:通过脚手架创建项目&#xf…

Sentinel服务器容错简介

spring gateway 详解 服务容错高并发带来的问题服务雪崩效应常见容错方案常见的容错思路1、隔离2、超时3、限流4、熔断5、降级 常见的容错组件 SentinelSentinel 具有以下特征:Sentinel概念和功能相关概念1、资源2、规则 重要功能 服务容错 高并发带来的问题 在微服务架构中&…

Vivado使用误区与进阶系列(七)用Tcl定制Vivado设计实现流程

01 基本的FPGA设计实现流程 FPGA 的设计流程简单来讲,就是从源代码到比特流文件的实现过程。大体上跟 IC 设计流程类似,可以分为前端设计和后端设计。其中前端设计是把源代码综合为对应的门级网表的过程,而后端设计则是把门级网表布局布线到…

orcle报错:TNS 监听程序无法为请求的服务器类型找到可用的处理程序

orcle报错:TNS 监听程序无法为请求的服务器类型找到可用的处理程序 方法一:配置文件修改 服务端的数据库是专用服务器,但是在客户端的tnsname.ora里配置中设置了连接方式为shared,这种情况下打开tnsnames.ora, 找到安装orcle的安装目录,点…

MSP430F5529,超声波,距离检测报警,倒车雷达,SR-04模块

文章目录 硬件连接功能实物效果代码 硬件连接 /* OLED----MSP430VCC-----3.3VGND-----GNDSCL------P3.1SDA------P3.0 */ /* 蜂鸣器----MSP430VCC-----3.3VGND-----GNDDAT------P2.4 */ /* 超声波----MSP430VCC-----3.3VGND-----GNDTRIG------P1.3ECHO------P1.2 */ /* …

模板学堂|数据关系和AntV、ECharts图表解析

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场(https://dataease.io/templates/)。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板,方便用户根据自身的业务需求和使用场景选择对应的仪表板模板,并…

PHP 音乐欣赏网站mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP音乐欣赏网站 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 代码下载 https://download.csdn.net/download/qq_41221322/88041034https://download.…

Sentry 监控 Docker 方式部署

一、简介 根据主篇 Sentry 监控部署与使用 流程,使用 Docker 方式 方式进行部署。 docker 方式 部署操作比较简单,也是 Sentry 官方 比较推崇的方式,直接按 Sentry On-Premise 提供的方式按部就班部署就好了。或者可直接参考 Docker 部署 Se…

关于根据文件名以及内容查找文件存放路径

1 根据文件名字查找文件存放路径 1.1 命令如下(先切换到存放该文件的顶级父目录下): find /path/to/search -name "filename"​​ 1.2 案例如下 2 根据内容查找包含该内容的文件存放路径 2.1 命令如下(先切换到存放该文…

《大大简化每次运行bochs的命令行》ubuntu里安装vscode + makefile文件基本编写 + shell命令

📍安装vscode 启动vscode 如图打开商店,在搜索栏里输入visual studio code,安装即可 在随便一个命令行里输入code即可打开vscode 📍makefile文件基本编写 在实验项目文件夹里创建makefile文件(vscode直接能快捷创…