Git安装及使用图文教程详解(附带安装文件)


Git安装及使用图文教程详解(附带安装文件)

原创:丶无殇  2023-06-26


文章目录

  • 下载安装
    • 下载
    • 安装
    • 验证安装成功
    • 版本查看
  • 基础指令
    • Git常用指令
    • 【首次必须】设置签名用户、邮箱
    • 1.初始化本地仓库
    • 2.查看本地库状态
    • 3.创建文件
    • 4.添加文件至暂存区
    • 5.提交本地库
    • 6.文件操作历史
      • 6.1.文件修改
      • 6.3.版本信息
    • 7.版本操作
      • 7.1.版本切换
      • 7.2.版本退回
    • 8.分支操作
      • 8.1.查看分支
      • 8.2.创建分支
      • 8.3.切换分支
      • 8.4.合并分支
        • 8.4.1.合并整个分支的修改
        • 8.4.2.合并部分提交的代码
      • 8.5.删除分支
      • 8.6.分支差异对比
    • 9.标签操作
      • 9.1.添加标签
      • 9.2.查看标签
  • 远程操作
    • 1.克隆远程仓库到本地
    • 2.查看当前远程别名
    • 3.拉取推送

下载安装

下载

本文使用v2.39.1.windows.1版本的软件

GitHub:Git-2.39.1-64-bit.exe

阿里云盘:Git-2.39.1-64-bit.exe

官网:https://git-scm.com/download/win

官网下载

安装

  1. 运行安装程序,点击Next
    1

  2. 选择安装路径后,点击Next
    2

  3. 选择需要的组件后,点击Next

  4. 设置开始菜单中的文件夹名称,默认为Git,点击Next
    4

  5. Git的默认编辑器,建议使用默认编辑器,点击Next
    5

  6. 设置默认分支名,建议选择Git决定,默认为master,点击Next
    6

  7. 修改Git环境变量,选择默认的仅在Git Bash中使用,不修改环境变量,点击Next
    7

  8. 使用默认的OpenSSH即可,点击Next
    8

  9. 选择后台客户端连接协议,选默认的OpenSSL协议,然后点击Next
    9

  10. 配置换行符,Windows使用CRLF,Linux使用LF,点击Next
    10

  11. 配置Git Bash终端类型,点击Next
    11

  12. 选择Git pull合并的模式,选择默认模式,点击Next
    12

  13. 选择凭据管理器,默认使用跨平台凭据管理器,点击Next
    13

  14. 其他配置,选择文件缓存机制,点击Next
    14

  15. 实验室功能,一般都不勾选,最后点击Install安装:
    15

  16. 安装中,不要操作,等待完成:
    16

  17. 直到出现以下画面,安装完成!
    17

验证安装成功

执行程序,或者在桌面空白处右击,选择Git Bash Here
选择git bash

点击后,会打开Git编辑窗口:
Git控制台

版本查看

输入git -v或者git --version后回车,可以查看当前版本,显示当前版本信息
版本查看

基础指令

以下介绍经常使用的功能

Git常用指令

指令作用
【首次必须】git config --global user.name 用户名设置签名用户
【首次必须】git config --global user.email 邮箱设置签名邮箱
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m " 日志信息 " 文件名提交到本地库
git reflog/log查看历史记录
git reset --hard 版本号版本切换

【首次必须】设置签名用户、邮箱

设置用户名、设置邮箱名、查询用户名、查询邮箱名:

git config --global user.name USERNAME	//设置用户名
git config --global user.email EMAIL	//设置邮箱
git config --global user.name			//查询用户名
git config --global user.email			//查询邮箱
git config -l							//查看全部配置信息
git congig --global --list|-l			//查看全局信息

效果如图:
设置邮箱

此配置文件.gitconfig可以在C:\Users\Administrator中看到:
配置信息

设置签名的作用主要为了区分操作者的身份,用户的签名在每次的提交记录中能看到

*:必须设置用户签名,否则无法提交代码

1.初始化本地仓库

指令:git init

会生成.git文件夹,如果没有显示,需要勾选文件显示设置中的:显示隐藏文件夹
隐藏文件

初始化完成后,此路径会被标记为master主分支

2.查看本地库状态

指令:git status

通过这个指令可以查看当前文件夹内的文件状态,
查看状态

3.创建文件

可以手动添加文件进来,也可以使用指令操作,详情参考:创建文件指令

此处演示vim创建的方式

指令:vim a.txt,然后按i进入编辑模式,按Esc后yy复制,p粘贴
vim操作

编辑完成,按Esc后输入:wq退出,此时使用ll指令,显示文件,会发现已经创建了a.txt文件

然后查看文件内容,使用cat a.txt显示
使用cat查看

此时使用git status查看状态,会发现文件还没有提交,也不在暂存区(未被追踪的文件)
未提交状态

4.添加文件至暂存区

指令:git add FILENAME

比如添加刚刚的a.txt到暂存区,可以使用指令:git add a.txt

如果需要添加所有文件,可以使用指令:git add .
添加文件

绿色字体上面提示了如何清除暂存区的文件,使用指令:git rm --cached <filename>

移除暂存区文件后,git状态回到未添加暂存区的状态:
移除暂存区

5.提交本地库

指令:git commit -m "MESSAGE" (FILENAME)

其中-m "MESSAGE"是提交信息选项
提交本地库

提交完成后,git status中的工作树是干净的

其中,第4点和第5点可以合并为一条指令:git commit -am "MESSAGE"

6.文件操作历史

6.1.文件修改

将文件a.txt进行修改,做好修改的标记:
文件修改

查看状态,文件被标记显示为已修改,然后提交到暂存区
修改后暂存

6.3.版本信息

查看版本信息:git reflog (-n)

查看详细信息:git log (-n)

reflog可查看所有历史记录,包括提交、切换和删除,log可查看详细历史记录到当前HEAD所指向的记录

可以多尝试几次后查看
查看详细信息

如果历史记录比较多,可以通过-n来显示前n行记录,当记录很多的时候,会显示:,按回车可以继续显示,按Q退出

如果觉得git log显示的信息太多,可以使用git log --pretty=oneline

7.版本操作

7.1.版本切换

指令:git reset --hard 版本号|HEAD@{index}

比如多次提交后,发现需要回到之前提交的版本去做,就可以使用版本切换,当前a.txt如下:
版本切换

比如标记为HEAD@{2},这里的表示距离当前版本2次前的记录,版本号为a0f42be

切换后如下:
切换版本后

HEAD已经指向版本号a0f42be,并且a.txt中已经变成之前的内容

7.2.版本退回

如果要退回上一个版本,可以使用git reset --hard HEAD^

如果退回上两个版本,可以使用git reset --hard HEAD^^

还可以使用个数n来,可以使用git reset --hard HEAD~n

未提交的操作版本,可以使用git checkout -- 文件名(路径),也可以使用git rm --cached 文件名(路径)删除缓存区文件

8.分支操作

8.1.查看分支

指令:git branch -v

输入指令查看当前分区的分支,*表示当前所在分区
查看分支

8.2.创建分支

指令:git branch 分支名

创建新的分支,非当前分区时候,前面没有*标记
创建分支

8.3.切换分支

指令:git checkout 分支名|版本号

切换分支,激活的分支高亮显示,并且命令提示符末尾分支名也变了
切换分支

8.4.合并分支

8.4.1.合并整个分支的修改

指令:git merge 分支名

分支名合并到当前分支,如果没有冲突,则可以合并成功,如果有冲突,需要人为修改后提交合并
合并操作

解决冲突

首先查看两个冲突的文件:
解决冲突

然后合并之后,查看这个文件,会有特殊标记,删除特殊标记,决定要使用的内容

特殊符号:

<<<<<< HEAD				//需要删除
当前分支的代码				//A:选择一个保留
=======					//需要删除
合并过来的代码				//B:选择一个保留
>>>>>>> 合并的分支		//需要删除

AB两处冲突的内容,选择好保留的记录,其他的删除,指令模式输入DD可以快速删除一行,操作完成后保存

文件显示如下:
文件显示

保存好了之后重新提交既可:
保存后提交

8.4.2.合并部分提交的代码

指令:git cherry-pick 提交ID1 提交ID2…

首先切换到需要合并到的分支,然后执行指定的提交ID,可以是多个分支,当没有冲突的时候,合并完成,当有冲突的时候,会提示如下:
提示冲突

需要按照前面内容修改冲突内容后再次提交,也可以撤销此次提交操作,撤销指令:git cherry-pick --abort

冲突文件修改好了之后提交,会有cherry-pick的标记:
重新提交后

8.5.删除分支

指令:git branch -d 分支名
删除分支

8.6.分支差异对比

指令:git diff 当前分支 其他分支

对比分支的文件差异,通过红色绿色显示出来:
分支差异

9.标签操作

9.1.添加标签

指令:git tag 版本号

一般版本可以使用v1.0.1这种格式

9.2.查看标签

指令:git tag可以查看标签列表

如果需要查看当前标签的详细信息,可以使用:git show 版本号
查看标签

其他操作

git tag查看所有标签

git tag 版本号给当前最新的commit打上标签

git tag 版本号 提交ID给指定的commit-id打上标签

git tag -a 版本号 -m 描述信息 提交ID给指定的commit-id打上标签并附上说明文字

git tag -d 版本号删除标签

远程操作

1.克隆远程仓库到本地

指令:git clone 远程地址
克隆仓库

将远程仓库克隆到本地,之后可以像前面操作本地仓库一样操作

2.查看当前远程别名

指令:git remote -v

查看当前所有远程地址别名

指令:git remote add 别名 远程连接

远程连接起别名

其他操作

查看远程仓库:git remote -v

添加远程仓库:git remote add [name] [url]

删除远程仓库:git remote rm [name]

修改远程仓库:git remote set-url --push [name] [newUrl]

3.拉取推送

拉取远程仓库:git pull [remoteName] [localBranchName]

推送远程仓库:git push [remoteName] [localBranchName]

将本地的分支提交到远程仓库,并作为master分支或者其他分支

可使用:git push origin 本地分支:远程分支

推送到远程一般使用:git push origin master,第一次会提示登录,需要登录相关账号
第一次需要登录

然后显示类似这样就是成功了:
登录成功

至此,教程结束!
如有补充,后续将进行修改。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

maven打包本地jar到项目中

在maven项目中&#xff0c;我们的项目依赖一般取自local的repository或者远程的repository&#xff0c;比如下面这个配置&#xff1a; maven <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> &l…

C++11新特性(5):多线程

学习C11&#xff0c;根据网上资料的知识总结。 1. 线程创建 1.1 初始函数 #include <iostream> #include <thread> void myfunc(int &a) {cout << "a in myfunc:" << a << endl; }int main() {int a 1;std::thread mythread(…

C1. Make Nonzero Sum (easy version) - 思维

分析&#xff1a; n一但是奇数就一定不行&#xff0c;因为无论有多少-1和1都会导致最后的和是-1或1&#xff0c;每次断开一个区间会改变2&#xff0c;所以一定不行&#xff0c;直接输出-1。 其次&#xff0c;如果数组满足题意也可以一个一个输出每一个下标&#xff0c;遍历数组…

flask socket版本问题

1、版本问题 问题解决 根据官方给定的兼容版本&#xff0c;从socket.io官网CDN下载最新的4.4.1版本js文件&#xff0c;https://cdn.socket.io/。 python-engineio使用版本。需要更新的javascript.socketio包&#xff0c;具体可对照官方文档Requirements部分末尾 https://flask-…

ansible实训-Day3(playbook的原理、结构及其基本使用)

一、前言 该篇是对ansible实训第三天内容的归纳总结&#xff0c;主要包括playbook组件的原理、结构及其基本使用方式。 二、Playbook 原理 Playbook是Ansible的核心组件之一&#xff0c;它是用于定义任务和配置的自动化脚本。 Ansible Playbook使用YAML语法编写&#xff0c;可…

帆软 FineReport 绘制漏斗图

七一建党节&#xff0c;祝党生日快乐&#xff01; 夏日炎炎&#xff0c;周末在家&#xff0c;想起在用帆软做页面展示的时候&#xff0c;使用到了漏斗图&#xff0c;记录下来&#xff0c;方便查看。 以订单销量变化为例&#xff0c;分为五个阶段&#xff0c;商品浏览人数&#…

PDF如何转换成Word?PDF转Word方法分享!​

PDF大家都不陌生了吧&#xff1f;作为打工人&#xff0c;学生党的大家都知道&#xff0c;PDF是现在不可或缺的文件传输工具之一&#xff0c;不仅可将文档转为Word&#xff0c;还可以转成excel,ppt等各种形式&#xff0c;其重要性不言而喻&#xff0c;那么今天小编就跟大家具体说…

【MySQL】表的约束

目录 一、空属性 二、默认值 三、列描述 四、zerofill 五、主键 六、自增长 七、唯一键 八、外键 九、综合案例 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#xff0c;更好的保证数据的合法性&#xff0c;从业务逻…

NSQ 实现逻辑探秘

1 什么是 NSQ NSQ 是一个消息队列中间件&#xff0c;用 go 实现&#xff0c;有如下特点&#xff1a; 分布式&#xff1a; 它提供了分布式的、去中心化且没有单点故障的拓扑结构&#xff0c;稳定的消息传输发布保障&#xff0c;能够具有高容错和高可用特性。 易于扩展&#xf…

星辰秘典:揭开Python项目的神秘密码——2048游戏

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;html css js&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;你好&#x…

深度学习与神经网络

文章目录 引言1. 神经网络1.1 什么是神经网络1.2 神经元1.3 多层神经网络 2. 激活函数2.1 什么是激活函数2.2 激活函数的作用2.3 常用激活函数解析2.4 神经元稀疏 3. 设计神经网络3.1 设计思路3.2 对隐含层的感性认识 4. 深度学习4.1 什么是深度学习4.2 推理和训练4.3 训练的相…

python语法(高阶)-多线程编程

""" 演示多线程编程的使用 """ import time import threadingdef sing(msg):while True:print(msg)time.sleep(1)return Nonedef dance(msg):while True:print(msg)time.sleep(1)return Noneif __name__ __main__:# 创建一个唱歌的线程&#xf…

html实现好看的多种风格导航菜单(附源码)

文章目录 1.设计来源1.1 顶部导航菜单1.1.1 界面风格1-一二级连体导航菜单1.1.2 界面风格2-二级导航下拉框1.1.3 界面风格3-系统开始风格1.1.4 界面风格4-购物类导航菜单1.1.5 界面风格5 - 带搜索扩展的导航条1.1.6 界面风格6-火热效果多级导航条 1.2 悬浮按钮菜单1.2.1 界面风…

电力系统系统潮流分析【IEEE 57 节点】(Matlab代码实现)

&#x1f4a5; &#x1f4a5; &#x1f49e; &#x1f49e; 欢迎来到本博客 ❤️ ❤️ &#x1f4a5; &#x1f4a5; &#x1f3c6; 博主优势&#xff1a; &#x1f31e; &#x1f31e; &#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 …

Ceph分布式存储系统搭建

目录 安装部署示例 &#xff08;一&#xff09;准备环境 1). 设置主机名 2). 关闭防火墙 3).添加sdb磁盘并格式化 4).配置hosts解析文件 5).配置免密登录 6).同步时区 7). 安装 Ceph 包 &#xff08;二&#xff09;创建 Ceph 集群 1、 安装ceph-deploy管理工具 2、 …

Linux 用户名称高亮和最近路径显示

1、通常情况下&#xff0c;Linux中的路径名称会不断叠加显示&#xff0c;如下图&#xff0c;这样看起来会很长。 2、为了设置路径只是当前最近的文件路径&#xff0c;先进入自己的家目录&#xff0c;然后进入.bashrc&#xff1a; 3、在.bashrc文件中的最后一行加入以下内容…

C国演义 [第三章]

第三章 组合分析步骤递归函数的返回值和参数递归结束的条件单层逻辑 组合总和 III 组合 力扣链接 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1…

Echarts区域面积areaStyle用图片进行纹理填充

React DOM结构代码&#xff1a; import fillImg from xx/fillImg.png; // 填充纹理图片...... {/* 趋势图填充纹理图片 */} <img id"fillImg" src{fillImg} style{{ width: 0 }} /> <div id"line" style{{ width: 100%, height: 300 }}></…

蓝绿发布、灰度发布和滚动发布

系列文章目录 文章目录 系列文章目录一、1.金丝雀发布&#xff08;Canary Release&#xff09;的工作原理&#xff1a;2.滚动发布&#xff08;Rolling Release&#xff09;3.蓝绿发布&#xff08;Blue-Green Deployment&#xff09;有钱人玩的&#xff01; 总结 一、 当涉及到…