快速上手Git——Windows系统下Git的安装与简单使用流程

server/2025/1/15 16:42:08/

一、Git的下载和安装

Git官网链接:https://git-scm.com/
进入官网后选择Downloads
在这里插入图片描述
选择与系统相符合的版本下载,这里我使用的是windows系统
在这里插入图片描述
然后点击下载
在这里插入图片描述
根据流程安装完成后,使用以下命令查看git版本

git -v

运行结果:
在这里插入图片描述

git_15">二、git使用方式

命令行方式使用

1、设置用户名和邮箱

首先要设置用户名和邮箱地址,以便于在提交时识别出是谁提交的内容

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

其中git config的参数

参数作用范围
缺省本地配置,只对本地仓库有效
–global全局配置,所有仓库有效
–system系统配置,对所有用户有效

2、保存用户名和密码

git config --global credential.helper store

git_36">3、查看git信息

通过以下代码可以查看本地git版本库信息

git config --global --list

4、新建版本库(仓库)

在新建时最好切换到一个新的目录,这里创建了一个learn-git文件夹

d:
cd D:\alpha_ordered\MyCodeBase
mkdir learn-git
cd learn-git

(1)初始化仓库

使用git init初始化版本库

git init "目录"[可选]

在这里插入图片描述
可以看到在learn-git文件夹中显示了如下文件夹,这个文件夹存储的就是git仓库的信息
在这里插入图片描述
如果没有显示,有可能是被隐藏了,只要设置显示隐藏项目即可
在这里插入图片描述

(2)查看仓库状态

git status

因为我们从来没有过提交,所以显示的是No commits yet
在这里插入图片描述
还可以使用git status - s简略查看状态。

将文件放到暂存区

这里将以一个新建的readme.MD文件作为示例来作为案例
在这里插入图片描述
新创建的文件是未被跟踪(Untracked files)的状态
在这里插入图片描述
通过git add命令将文件放到暂存区,等待下一步操作。并查看仓库状态

git add readme.MD
git status

表示已经添加到暂存区,等待被提交
在这里插入图片描述
文件只有被提交到仓库中才能被保存起来,并且提交过程只能提交保存至暂存区的文件。这里再新建一个test.txt文件查看状态作为对比。

在这里插入图片描述
在这里插入图片描述

提交版本库

git commit -m "第一次提交"

在这个命令中需要传入-m提交信息
在这里插入图片描述
再次查看仓库状态,已经把readme.MD提交到了仓库,所以已经不显示了。
在这里插入图片描述

批量添加文件

首先通过命令行再创建几个文件

echo "test1" > test1.txt
echo "test2" > test2.txt
echo "test3" > test3
echo "test4" > test4
echo "test5" > test5.sh

查看仓库状态
在这里插入图片描述
git命令中可以使用*+文件后缀的形式将相同结尾的文件添加到暂存区后再查看仓库状态,假设我们要将所有以txt为结尾的文件添加到暂存区

git add *.txt
git status

在这里插入图片描述

如果需要添加当前目录的所有文件,可以使用以下命令

git add .

在这里插入图片描述

交互界面提交版本库

如果在提交版本库时不使用-m参数会自动启动vim交互界面。

git commit

进入交互界面
在这里插入图片描述
交互界面常见操作如下:

命令操作说明
i进入编辑模式
esc退出编辑模式
:w保存
:wq保存并退出
:q退出vim

在这里插入图片描述

查看提交记录

使用以下命令可以查看所有提交到本地版本库中的提交记录

git log

在这里插入图片描述
简洁的查看提交信息

git log --oneline

在这里插入图片描述

版本回退

如果想要回退到之前的版本,可以使用以下命令。

git reset

git reset三种模式

模式工作区暂存区
soft保留保留
hard不保留不保留
mixed(默认)保留不保留

在版本回退之前,我们先新建一个本地仓库repo,然后复制三份。

git init repo
cd repo
echo 111 > file1.txt
echo 222 > file2.txt
echo 333 > file3.txt
git add file1.txt
git commit -m "commit1"
git add file2.txt
git commit -m "commit2"
git add file3.txt
git commit -m "commit3"
git log

在这里插入图片描述
将仓库目录复制三份分别执行不同的参数
在这里插入图片描述
soft方法
在笔者的提交中,倒数第二次提交信息是1e285bf102eec4f4dc99e27517d5dd909ec5dadf,下面先使用--soft参数

cd ..
cd repo-soft
git reset --soft 1e285bf102eec4f4dc99e27517d5dd909ec5dadf
git log

在这里插入图片描述

dir

在这里插入图片描述

git ls-files

在这里插入图片描述

git status

在这里插入图片描述
通过上述的过程,已经将版本回退到上次提交到版本库提交file3.txt之前的状态,file3.txt依旧保存在工作区和暂存区。
hard方法

cd ..
cd repo-hard
git log --oneline

在这里插入图片描述

git reset --hard 1e285bf
git log --oneline

在这里插入图片描述

dir
git ls-files

在这里插入图片描述

在这里插入图片描述
从上面的过程可以看到不仅回到了提交之前的状态,工作区和暂存区的文件也被删除,我们使用以下命令看一下简略的提交日志

git reflog

在这里插入图片描述
可以看到这里只是包HEAD->master切换到了倒数第二个提交,如果想要恢复到倒数第一个提交,也可以使用hard方式进行reset

git reset --hard ce5f4e9
git log --oneline

在这里插入图片描述
mixed方法

cd ..
cd repo-mixed
git log --oneline
git reset 1e285bf
git log --oneline

在这里插入图片描述
在这里插入图片描述

dir
git ls-files

在这里插入图片描述
在这里插入图片描述
通过以上过程,仅保留了工作区的文件

对比文件差距

在很多时候我们需要查看并对比工作区、暂存区、本地仓库之间不同版本和不同分支之间的差异

假如我们将file3.txt
在这里插入图片描述
修改为
在这里插入图片描述
工作区和暂存区的差异
使用以下命令进行对比

git diff

默认比较的是工作区和暂存区的差异
在这里插入图片描述

git add .

添加到暂存区之后再执行就不会显示任何东西了
工作区和版本库之间的差异
使用以下命令可以查看工作区和版本库之间的差异,在上一步的操作中只是把文件添加到了暂存区,在使用命令后依旧可以看到工作区与版本库的差距。

git diff HEAD

在这里插入图片描述
暂存区和版本库之间的差异

git diff --cached

在这里插入图片描述
再次提交

git commit -m "commit4"

在这里插入图片描述
两个版本之间的差距

git log --oneline

在这里插入图片描述

git diff 23921aa ce5f4e9

在这里插入图片描述
和上一个版本的差别

git diff HEAD~ HEAD

在这里插入图片描述
结果是一样的
head之前的2个版本

git diff HEAD~2 HEAD

在这里插入图片描述
查看文件的差异内容

git diff HEAD~3 HEAD file3.txt

在这里插入图片描述

删除文件

直接删除然后使用git add
我们将learn-git目录下的file1.txt删除后查看状态和暂存区的文件

git status
git ls-files

在这里插入图片描述
在这里插入图片描述

可以看到暂存区仍然保存了file1.txt文件
使用git add file1.txtgit add .删除掉暂存区中的文件
然而当使用git status再次查看时发现,实际上版本库中仍然存在file1.txt文件
在这里插入图片描述
所以仍然需要提交一次git commit
更简单的删除方式是直接使用git rm

git rm file2.txt
git status

在这里插入图片描述
所以仍然需要提交一次git commit
如果只想删除暂存区内容而不想删除本地文件,可以通过添加--cached实现,如git rm --cached file2.txt

gitignore_353">gitignore忽略文件

在通常情况下有些文件并不需要上传到版本库,其中包括:

  • 系统或软件自动生成的文件
  • 编译产生的中间文件和结果文件
  • 运行时生产的日志文件、缓存文件、临时文件
  • 涉及身份、密码、口令、密钥等敏感信息文件

这种在添加和提交时忽略的文件可以写在.gitignore文件中

echo "some log" > access.log
echo "other log" > other.log
echo access.log > .gitignore

在这里插入图片描述
因为在.gitignore文件中写入了access.log,所以只能看到other.log.gitignore文件,看不到access.log文件,再执行addcommit操作后也是值会将这两个文件添加到版本库当中
如果我们需要忽略掉以.log为结尾的所有文件,只需要在.gitignore中添加一行*.log
不同语言的.gitignore模板可以参照https://github.com/github/gitignore

远程仓库

这里使用github作为例子,以下操作都需要登录github账号
登入账号后点击new创建新的repository
在这里插入图片描述
创建后添加必要的项目信息
在这里插入图片描述
在这里插入图片描述
然后点击create repository创建项目

克隆远程库
克隆过程一般通过HTTPS、SSH方法进行
复制一下HTTPS的连接,然后使用git clone命令克隆远程仓库,这里需要注意的是需要登录github
在这里插入图片描述
在这里插入图片描述
使用SSH
SSH的使用方式较为复杂
需要先生成密钥

ssh-keygen -t rsa -b 4096

打开C:/users/用户名/.ssh可以看到生成的密钥,复制id_rsa.pub文件,复制其中的内容
在这里插入图片描述
github设置密钥
首先回到github主页,点击头像,选择settings
在这里插入图片描述
然后选择SSH and GPG keys
在这里插入图片描述
选择New SSH key,将复制的内容粘贴进去,然后确认即可。
在这里插入图片描述
复制SSH选项中的连接,然后使用git clone命令
在这里插入图片描述
图形化界面(GUI)
IDE插件/扩展


http://www.ppmy.cn/server/158604.html

相关文章

PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析

PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析 目录 PID控制器 (Proportional-Integral-Derivative Controller) 算法详解及案例分析1. 引言2. PID控制器的基本概念2.1 PID控制器的定义2.2 PID控制器的核心思想2.3 PID控制器的应用领域 3. PID控…

【Rust】结构体示例与调试

目录 思维导图 1. 引言 2. 初始程序示例 3. 使用元组重构 4. 使用结构体重构 5. 调试与输出 6. 进一步的功能扩展 思维导图 1. 引言 本文通过一个计算矩形面积的程序,展示了如何从简单变量逐步重构到使用结构体,以提高代码的清晰度和可管理性。结…

微信小程序获取当前页面路径,登录成功后重定向回原页面

🤵 作者:coderYYY 🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回&#…

java流式处理zip+多线程

概述 流式处理一个zip,zip里有多个json文件。 流式处理可以避免解压一个大的zip。再加上多线程,处理的效率杠杠的。 代码 package 多线程.demo05多jsonCountDownLatch;import com.fasterxml.jackson.databind.ObjectMapper; import lombok.SneakyThro…

Python爬虫-爬取汽车之家全部汽车品牌的brandid(品牌ID)

前言 本文是该专栏的第42篇,后面会持续分享python爬虫干货知识,记得关注。 本文以汽车之家平台为例子,获取所有汽车品牌的“全部品牌ID”,即brandid数据。如下所示: 具体的实现思路以及完整实现代码逻辑,笔者将在正文进行详细介绍。废话不多说,跟着笔者直接往下看正文详…

Mycat读写分离搭建及配置超详细!!!

目录 一、Mycat产生背景二、Mycat介绍三、Mycat安装四、Mycat搭建读写分离1、 搭建MySQL数据库主从复制2、 基于mysql主从复制搭建MyCat读写分离 五、Mycat启动常见错误处理1、Caused by: io.mycat.config.util.ConfigException: SelfCheck### schema TESTDB refered by user u…

消息中间件类型介绍

消息中间件是一种在分布式系统中用于实现消息传递的软件架构模式。它能够在不同的系统或应用之间异步地传输数据,实现系统的解耦、提高系统的可扩展性和可靠性。以下是几种常见的消息中间件类型及其介绍: 1.RabbitMQ 特点: • 基于AMQP&#…

【深度学习】神经网络灾难性遗忘(Catastrophic Forgetting,CF)问题

文章目录 1. 什么是灾难性遗忘?2. 为什么会存在灾难性遗忘?2.1 网络权重的更新2.2 没有有效的记忆机制2.3 任务间数据分布差异 3. 目前解决方案3.1 弹性权重保持(Elastic Weight Consolidation, EWC)3.2 其他方法 1. 什么是灾难性…