0


Git软件在Windows系统上安装与命令使用详细说明

引言

  上期在讲述“注册GitHup账号”的流程,接上期此次讲述如何在windows系统上安装git软件,以及如何使用“git”命令。

   Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

  Git可以在windows上使用,也可以在linux上使用;本期给各位小伙伴介绍windows系统如何安装使用“Git”,欢迎各位小伙伴阅读与纠正。

1 下载地址

    介绍三个下载软件的地址,大家可以根据需求进行选择下载。

    有些网站可能需要梯子下载速度才会很快,但是一定要安全上网。

1.1 官网下载地址(不推荐)

    官网下载地址:https://git-scm.com/download/win

    备注:在没有梯子的情况下进入会很慢,但是也可以进入。

    下载步骤:

    第一:登录官网页面,然后向下拖动找到并单击“Downloads”按钮,如下图1-1-1所示。

图1-1-1

  第二:选在“系统类型”,此处选择“windows”版本,大家可根据需求选择,如下图1-1-2所示。

图1-1-2

  第三:进入软件下载界面,然后在“Standalone Installer”选项下面“选择”要下载的系统版本,根据电脑系统选择即可,如下图1-1-3所示。

图1-1-3

   第四:下载完的软件如下图1-1-4所示

                            ![](https://i-blog.csdnimg.cn/direct/1be78f6f92294ab387f496d31a540388.png)

图1-1-4

1.2 阿里镜像下载(推荐)

   推荐使用“阿里的镜像”进行下载,因为下载速度较快。

   阿里镜像下载地址:https://registry.npmmirror.com/binary.html?path=git-for-windows/

   下载步骤:

第一:登录阿里镜像地址,如下图1-2-1所示。

图1-2-1

  第二:选择“软件”版本,然后单击进入,这里选择的是目前最新的版本“v2.46.0”,如下图1-2-2所示。

图1-2-2

  第三: 步骤2后,在下载界面,根据系统架构的“位数”选择即可;然后“单击名称”即会开始下载,如下图1-2-3所示。

图1-2-3

  第四:下载成功的软件同“1.1”小节中完全相同。

1.3 gitforwindows网站下载

  网站地址:https://gitforwindows.org/

  下载不需要梯子,速度也很快。

   进入界面后,直接单击“Download”按钮即可下载,默认下载最新版本,如下图1-3-1所示。

图1-3-1

2 安装Git

2.1 新建安装目录

  新建一个安装Git的“安装目录(文件夹)”,新建的目录路径一定要是“全英文”的。

  新建的安装目录建议选择“c盘”以外的盘符,当然也可以不新建安装目录,直接使用默认目录。

2.2 安装软件

   安装流程如下面小节。

2.2.1 进入安装界面

   选中软件包后,右键“以管理员身份执行”开始安装;进入的安装页面如下图2-2-1所示,然后直接点击“Next”按钮进入下一步即可。

图2-2-1

2.2.2 选择安装路径

   选择安装路径,这里选择在“2.1”小节中新建的目录,然后点击“Next”按钮进入下一步操作,如下图2-2-2所示。

图2-2-2

2.2.3 组件选择

  选择“(NEW!)Add a it Bash Profile to Windows Terminal”组件,含义是在windows终端中添加一个Git的bash环境;然后点击“Next”按钮进入下一步操作,如下图2-2-3所示。

图2-2-3

2.2.4 选择开始菜单文件夹

  这里“默认”即可,直接点击“Next”按钮进入下一步操作,如下图2-2-4所示。

图2-2-4

2.2.5 选择Git的默认编辑器

  这里选择的是“Notepad++”,大家根据需求选择即可,但是必须是电脑上已经安装的文本编辑器;然后点击“Next”按钮进入下一步操作,如下图2-2-5所示。

图2-2-5

2.2.6 选择Git的初始化分支

  默认即可,直接点击“Next”按钮进入下一步操作,如下图2-2-6所示。

图2-2-6

2.2.7 选择Git的环境变量调整方式

  默认即可,直接点击“Next”按钮进入下一步操作,如下图2-2-7所示。

图2-2-7

2.2.8 选择SSH可执行文件

  默认即可,直接点击“Next”按钮进入下一步操作,如下图2-2-8所示。

图2-2-8

2.2.9 选择HTTPS传输后端

  默认即可,直接点击“Next”按钮进入下一步操作,如下图2-2-9所示。

图2-2-9

2.2.10 配置行结束转换

  默认即可,直接点击“Next”按钮进入下一步操作,如下图2-2-10所示。

图2-2-10

2.2.11 配置与Git bash环境一起使用的终端仿真器

  默认即可,直接点击“Next”按钮进入下一步操作,如下图2-2-11所示。

图2-2-11

2.2.12 选择“git pull”的默认行为

  默认即可,直接点击“Next”按钮进入下一步操作,如下图2-2-12所示。

图2-2-12

2.2.13 选择一个凭证帮助器

  默认即可,直接点击“Next”按钮进入下一步操作,如下图2-2-13所示。

图2-2-13

2.2.14 配置额外选项

  默认即可,直接点击“Next”按钮进入下一步操作,如下图2-2-14所示。

图2-2-14

2.2.15 配置试验选项

   勾选“Enable experimental support for pseudo consoles(启用对伪控制台的实验支持)”;然后点击“Install”安装按钮,如下图2-2-15所示。

图2-2-15

2.2.16 安装进度

  软件安装进度如下图2-2-16所示。

图2-2-16

2.2.17 安装完成

   安装成功后,去掉“View Release Notes(查看发行说明)”选项,然后点击“Finish(完成)”按钮即可,如下图2-2-17所示。

图2-2-17

2.3 检验是否安装成功

  windows+r快捷键打开cmd窗口,然后输入命令“git --version”检验是否安装成功Git软件,如下图2-3-1所示。

 到此软件安装结束,可以进行使用了。

图2-3-1

  通过电脑的“开始”菜单,看到“Git”文件夹,也表示安装成功,如下图2-3-2所示。

  可以单击下图中的“Git Bash”或“Git CMD”启动,然后进行git操作;也可以“win+r”快捷键启动cmd窗口进行git命令操作。

图2-3-2

2.4 启动Git Bash窗口

2.4.1 第一种方法-启动Git Bash

   如上“2.3”节的图中,直接点击“Git Bash”

2.4.2 第二种方法-启动Git Bash

   第二种方法:桌面空白处右键---选择“Open Git Bash Here”,如下图2-4-1所示

图2-4-1

打开后的界面如下图2-4-2所示;此窗口可以执行linux常用的命令。

图2-4-2

2.4.3 第三种方法-启动Git Bash

  cmd窗口中直接使用,因为在安装git软件时已经将git的环境添加到本地计算机的环境变量中了;启动方法如图2-4-2所示。

  注意:此窗口中不能使用linux命令

图2-4-2

2.5 用户操作配置

2.5.1 名字配置

用户名配置语法: git config --global user.name "用户名"  #如图2-5-2

图2-5-1

2.5.2 邮箱配置

邮箱配置语法: git config --global user.email "真是邮箱"  #如图2-5-2

图2-5-2

2.5.3 查看配置的名字与邮箱

 查看配置命令:git config --global --list  #如图2-5-3

图2-5-3

2.5.5 名字与邮箱存储的配置文件

配置文件:C:\Users\本地计算机用户名.gitconfig (如图2-5-5)

图2-5-4

图2-5-5

2.6 系统配置

2.6.1 查看系统配置命令

查看系统配置命令:git config --system --list   #图2-6-1

图2-6-1

2.6.2 系统配置文件存放目录

   系统配置文件:D:\Apply\other\DownTool\Git\install\Git\etc\gitconfig  (如图2-6-2)

   配置文件存放在git软件的安装目录下,参考“2.2.2”小节选择的安装路径。

   系统配置文件中的参数与“2.6.1”小节中命令查出的配置完全一样。

图2-6-2

2.7 同时查看系统与用户配置命令

查看命令:git config l (小写的L)      #如图2-7-1

图2-7-1

3 Git的基础知识

3.1 Git基础简介

  1、git是一个分布式的代码管理工具。

  2、可以是C/S架构,也就是Client/Server。

  3、只要有适当的权限,每个客户端都可以下载或上传数据到服务器。

3.2 Git的工作区域组成

   工作区:Workspace;写代码的目录,就是项目代码存放的目录。

   暂存区:Index/Stage;用于存放临时改动代码的文件,为工作区和版本库区两者之间的缓存地带;保存即将提交到文件列表的信息。

   本地版本库:Local Repository,用于存放提交到本地仓库代码文件的目录。

   远程仓库:Remote Repository,代码托管的服务器或开源平台,例如github、gitcode等等。

图3-2-1

3.3 Git的基本工作流程

git的基本工作流程

   1、在工作区(Workspace)中修改文件。

   2、将修改过的文件“添加”到本地仓库的暂存区,暂存区为一个临时存放目录,命令git add。

   3、将“暂存区”的文件“提交”至本地的版本库中,提交命令“git commit”。

   4、将“提交”至本地版本库中的文件“同步”至远程仓库中,同步命令“git push”。

3.4 Git文件状态

  Git的本质是对版本进行控制,也就是对文件的版本进行控制,使用Git对文件进行修改、或者提交等操作时,需要知道文件当前处于什么状态,不然可能出现文件提交错误,在Git中文件分为以下状态:

  Untracked:文件未跟踪;此文件在文件夹中,但并没有加入git库,不参与版本空盒子。

  Unmodify:文件已入库,并且未修改;即版本库中的文件内容与文件夹中完全一致。

  Modified:文件已修改;仅仅是修改,并没有进行其它操作。

  Staged:文件已暂存;并没有同步到本地版本库中。

  Committed:文件已提交;已提交到本地版本库,受到版本控制。

4 Git的使用

4.1 Git所有命令

  git最常用的几个命令分别是:git init,git clone,git add,git commit,git push,git pull,git checkout;其它命令根据需求使用,所有的命令如下表格所示:

命令****作用下载与创建命令git init创建或初始化一个新的本地库;帮助信息在命令后加“-h”git clone克隆(或下载)仓库中的源码;帮助信息在命令后加“-h”提交修改命令git add将本地修改的文件上传到仓库的暂存区;帮助信息在命令后加“-h”git mv移动或重命名一个文件、目录或软连接;帮助信息在命令后加“-h”git restore恢复或撤销文件的更改,为Git 2.23 版本引入;帮助信息在命令后加“-h”git rm将文件从暂存区和工作区中删除;帮助信息在命令后加“-h”查看命令git bisect使用二等分法来查找一个引入bug(错误)的commit(提交);帮助信息在命令后加“-h”git diff比较文件的不同,即暂存区和工作区的差异;帮助信息在命令后加“-h”git grep查找提交历史、工作目录、甚至索引中的一个字符串或者正则表达式;帮助信息在命令后加“-h”git log查看本地仓库的历史提交记录;帮助信息在命令后加“-h”git show显示 Git 对象的详细信息;帮助信息在命令后加“-h”git status查看本地仓库的状态;帮助信息在命令后加“-h”分支操作命令git branch列出、创建或删除分支;帮助信息在命令后加“-h”git commit将暂存区文件提交到版本库;帮助信息在命令后加“-h”git checkout切换分支;帮助信息在命令后加“-h”git merge合并分支;帮助信息在命令后加“-h”git rebase用于将一个分支上文件更改移到另一个分支之上;帮助信息在命令后加“-h”git reset将所有内容恢复到最后一次提交,可以指定退回某一次提交的版本;帮助信息在命令后加“-h”git switch更清晰地切换分支,为Git 2.23 版本引入;帮助信息在命令后加“-h”git tag创建、列出或删除标签,标签用于标记特定的提交;帮助信息在命令后加“-h”远程仓库操作命令git remote查看远程仓库名字,或将本地仓库与远程仓库关联;帮助信息在命令后加“-h”git fetch从远程仓库下载所有代码库文件;帮助信息在命令后加“-h”git pull将远程仓库的代码文件同步到本地;帮助信息在命令后加“-h”git push将本地代码文件同步到远程仓库中;帮助信息在命令后加“-h”

4.2 查看相关命令

4.2.1 查看本地仓库状态git status

  作用:查看本地仓库的状态。
命令语法:git status   #如图4-2-1
查看git status命令可跟参数命令:git status -h

图4-2-1

4.2.2 查看提交日志命令git log

  作用:查看本地仓库的提交日志信息。
查看提交日志命令:git log   #如图4-2-2
以简洁模式显示提交日志命令:git log --oneline #如图4-2-2  

查看git log命令后可跟参数命令:git log -h

图4-2-2

4.2.3 比较文件的不同

     作用:比较文件的不同,即暂存区和工作区的差异。
比较两个文件不同之处:git diff   #如图4-2-3
查询git diff后可跟哪些参数:git diff -h

从图4-2-3中可以看到对比结果显示出,同一个文件工作区比暂存区新增了一个内容"lianhua",
新增内容显示为“+绿色内容”

图4-2-3

4.2.4 查看git对象的详细信息git show

   作用:显示 Git 对象的详细信息,可以查看git的仓库、标签、分支等的详细信息。
查看git对象详细信息语法:git show 对象名称(分支、标签等等)
查看git show后可跟哪些参数命令:git show -h

例子:
查看分支详细信息:git show main  #如图4-2-4,main为分支名称
查看标签详细信息:git show v1.0  #如图4-2-4,v1.0为标签名称

图4-2-4 查看git对象详细信息

4.2.5 查找指定文本内容git grep

   作用:查找提交历史、工作目录、甚至索引中的一个字符串或者正则表达式;只能查询暂存区和提交到版本库的文件所包含的内容;与同于linux中的“grep”管道命令类似。
语法:git grep content(搜索内容,可以是正则表达式)

注意:只能查找暂存区、提交的版本库中的文件。

常用参数说明:
   -c,--count:显示查找到内容所在的每个文件名以及对应文件中内容的数量
   -e <pattern>:指定多个模式。
   -i,--ignore-case:查找内容时忽略大小。
   -n,--line-number:显示查找到的内容在文件中的行号。
   -v,--]invert-match:显示不匹配的行。
   -w,--word-regexp:查找内容时只匹配整个单词。

其它可用参数查询命令:git grep -h

查找内容“louts”不区分大小写并显示行号:git grep -i -n "louts" #如图4-2-5
查找内容“louts”并显示每个文件中的数量:git grep -c "louts"    #如图4-2-5
只在“.js”文件中查找“louts”内容:git grep "louts" -- '*.js'   #如图4-2-5
查找正则表达式“<script”开头的行:git grep -e "\<script"      #如图4-2-5

图4-2-5 查找内容

4.3 下载命令git clone

4.3.1 下载命令语法

下载远程仓库代码语法:git clone url地址(查询网站获得)
命令git clone后可以跟参数查询方法:git clone -h

下载github远程仓库例子:如图4-3-6
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git 

此处以在githup网站下载Ai绘图软件“stable-diffusion-webui”的源码为例。

4.3.2 下载命令例子

下载流程如下:

(1)进入githup官网:https://github.com/

图4-3-1

 (2)在检索框中输入要搜索的“stable-diffusion-webui”软件名称,只需要输入源码名称的部分即可,不需要输入“”全名称,如图4-3-2所示。

图4-3-2

(3)检索出的“软件源码”包如图4-3-3所示,这里“单击”第一个进入;个人可根据需求选择。

图4-3-3

  (4)进入页面后,点击“code”,然后在弹出的“对话框”中复制“https”地址,如图4-3-4所示。

图4-3-4

 (5)快捷键“win+r”键启动cmd窗口;也可新建一个目录,在目录的“路径”位置,输入“cmd”回车启动“cmd”窗口;此处为新建了一个“目录”,如图4-3-5示。

图4-3-5

 (6)然后在cmd窗口中输入下载命令。
下载github远程仓库开源代码命令:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
   输入命令后,按回车键开始下载,会显示“下载进度”,当进度到达“100%”时,表示下载完成,如图4-3-6所示。

图4-3-6

  (7)下载成功的“stable-diffusion-webui”源码如图4-3-7所示。

图4-3-7

4.4 创建本地存储库命令git init

   作用:创建或初始化一个新的本地库存储库。      

4.4.1 创建一个本地存储库

创建本地仓库命令语法:git init 项目名称
查询git init后可跟哪些参数命令:git init -h

创建本地仓库命令例子:git init test    #创建一个名字为"test"的本地存储库,如图4-4-1

图4-4-1

4.4.2 初始化创建好的本地仓库

(1)本地任意目录“右键”新建一个文件夹,命名为“test”,如图4-4-2所示。

图4-4-2

(2)双击进入“test”文件夹内,如下图4-4-3所示。

图4-4-3

(3)空白处右键选择“Open Git Bash Here”,参考“2.4.2”小节;如图4-4-4所示。

图4-4-4

(4)启动“Git Bash”窗口后,执行“git init”初始化命令,成功后如图4-4-5所示。

初始化创建的本地仓库命令:git init   #如图4-4-5
图中的“master”表示此时本地库处于“master”分支。

图4-4-5

(5)初始化成功后,会在“test”本地仓库中生成一个“.git”的隐藏文件夹,如图4-4-6所示。

图4-4-6

(6)分支指向性文件,如图4-4-7所示。

图4-4-7

4.5 添加代码至本地暂存区命令git add

  作用:将本地修改的文件上传到仓库的暂存区,暂存区文件的状态为“Staged”。
单个文件语法:git add 文件全名(包括后缀)

上传所有文件命令:git add .   #注意“点”表示当前目录

查询git add后可跟哪些参数命令:git add -h

添加单个文件至本地暂存区例子:git add test.txt     #如图4-4-1

图4-4-1

4.6 提交代码至本地仓库命令git commit

  作用:将暂存区文件提交到版本库;提交至版本库的文件状态为“commited”。
命令语法:git commit -m "message(提交文件信息)"     (-m 表示提交信息)

查看git commit后可跟哪些参数命令:git commit -h

提交例子:git commit -m "first file"   #提交成功如图4-6-1
表示将“test.txt”提交至版本库,提交信息是“first file”,提交信息可以随意编写,一定要是英文。

图4-6-1

  查看提交日志信息命令:git log  (见“4.2.2”节)

图4-6-2

4.7 分支命令应用

4.7.1 查看与创建分支命令git branch

   作用:用于列出、创建或删除分支。

列出本地或远程仓库分支:

列出本地所有分支:git branch  #如图4-7-1

列出远程仓库所有分支:git branch -r  #如图4-7-1

列出本地和远程仓库所有分支:git branch -a  #如图4-7-1
从图4-7-1中可以看出查询的分支只有“master”为绿色,绿色则表示为当前正在使用的分支。

查看git branch后可跟哪些参数命令:git branch -h

图4-7-1

创建分支:

创建分支语法:git branch new_branch(新分支名称)

创建分支例子:git branch test_branch  #创建成功如图4-7-2

创建一个名字为“test_branch”的新分支。

图4-7-2

4.7.2 切换或创建分支命令git checkout

   作用:切换当前正在使用的分支;如果切换的分支不存在,此命令会自动先创建一个新分支,然后在切换。
切换分支语法:git checkout branch_name(要切换的分支名称)
注意:如果切换的分支不存在,就会自动创建一个新分支,并切换到创建的分支。

查看git checkout后可跟哪些参数:git checkout -h

切换分支例子:git checkout test_branch   #如图4-7-3

图4-7-3

   查看分支执行性文件,如图4-7-4所示;可以与“4.7.2”小节的图4-7-2对比。

图4-7-4

4.7.3 切换或创建分支命令git switch

   作用:主要用于切换分支;如果切换的分支不存在,此命令会自动先创建一个新分支,然后在切换;同“git checkout”的区别是,此命令更加简洁和直观。
切换分支语法:git switch branch_name(要切换的分支名称)

创建并切换新分支语法:git switch -c branch_name(分支名称)
注意:如果切换的分支不存在,就会自动创建一个新分支,并切换到创建的分支。

查看git switch后可跟哪些参数:git switch -h

切换分支例子:git switch test_branch   #如图4-7-5

图4-7-5

4.7.4 合并分支命令git merge

  作用:将两个分支合并起来,方便代码文件的统一管理。
合并分支命令语法:git merge 要合并的分支名称

查看git merge后可跟哪些参数:git merge -h

合并分支命令例子:git merge master   #如图4-7-7

命令含义:表示将“master”分支合并至主分支“main”;执行合并命令前,必须把gitbash窗口中的分支切换到“main”。

合并分支的操作流程如下所示:

(1)创建并切至主换至分支“main”,如图4-7-6所示。

图4-7-6

(2)将“master”分支合并到主分支“main”中,如图4-7-7所示。

图4-7-7

4.7.5 更改文件所属分支git rebase

  作用:用于将一个分支上文件更改移到另一个分支之上。
变更当前分支到指定分支语法:git rebase branch_name(要变更到的分支名字)
查询git rebase后可跟哪些参数命令:git rebase -h

变更当前分支到指定分支例子:git rebase main #如图4-7-8
含义:将当前正在使用的分支变更到"main"分支

图4-7-8

4.7.6 删除分支命令git branch

   作用:删除本地仓库任意一个不在使用的分支,删除一定要确定该分支不在使用。
删除本地仓库分支语法:git branch -d branch_name(要删除的分支名字)

参数含义:-d:表示删除分支;    -D:表示强制删除分支。

删除远程分支语法:git push origin --delete 分支名字
origin:表示远程仓库的名字。

删除分支例子:git branch -d test_branch    #如图4-7-9

注意:不能删除正在使用的分支。

图4-7-9

4.8 远程仓库操作命令

4.8.1 查看远程仓库名称git remote

   作用:查看远程仓库的名字。
查看远程仓库命令语法:git remote  #如图4-8-1

同步命令语法:git pull 给远程仓库定义的名字 本地分支
同步命令例子:git pull lhqcx HEAD  #如图4-8-1

查看git remote后可跟参数命令:git remote -h

图4-8-1

4.8.2 下载远程仓库到本地

下载远程仓库所有仓库文件语法:git fetch 本地关联远程仓库的名称
查看git fetch后可跟哪些参数命令:git fetch -h

获取远程仓库更细的数据:git fetch lhqcx  #如图4-8-2

获取到更新数据后,需要将远程仓库的数据合并到本地仓库的“main”分支,
合并命令:git merge lhqcx/main  #如图4-8-2

lhqcx:本地与关联的远程仓库的名字,见“6.3.2”小节。
main:为本地正在使用的分支,使用命令“git branch”查看分支,列出的所有分支中“绿色”的表示当前正在使用的分支。

图4-8-2

4.8.3 远程仓库文件同步至本地命令git pull

  作用:将远程仓库的代码文件同步至本地仓库中,此处以在“github”上创建远程公有仓库为例。
同步命令语法:git pull 给远程仓库定义的名字 本地分支
同步命令例子:git pull lhqcx HEAD   #如图4-8-3

查询git pull后可跟参数命令:git pull -h

图4-8-3

4.8.4 本地文件同步至远程仓库命令git push

   作用:将“提交”到本地仓库的文件“同步”至远程仓库中,这里以在“github”代码托管网的远程仓库为例子。
命令语法:git push 给远程仓库定义的名字 分支名称

命令例子:git push lhqcx main  #如图4-8-4

查看git push命令可跟参数命令:git push -h

图4-8-4

4.9 移动或重命名命令git mv

   作用:用于移动或重命名一个文件、目录或软连接。
重命令语法:git mv 原文件名 旧文件名

移动语法:git mv 文件  要移动到目录(绝对路径)
注意:只能在同一个仓库中移动,无法移动到其它仓库中。

查看git mv后可跟哪些参数命令:git mv -h

重命令例子:git mv text.txt test1.txt   #如图4-9-1

移动命令:git mv hello.txt /d/Study/Program/gitcode/test/work   #如图4-9-2

图4-9-1

图4-9-2

4.10 标签命令git tag

  作用:用于创建、列出或删除标签,标签用于标记特定的提交。

4.10.1 列出与创建标签

列出标签:git tag

创建标签语法:git tag tag_name(标签的名字)  #例子如图4-10-1

查看git tag后可跟哪些参数命令:git tag -h

图4-10-1

4.10.2 创建带注释的标签

创建带注释的标签语法:git tag -a tag_name(标签的名字)    #例子如图4-10-2
推荐用此方法创建标签:因为可以注释标签的创建作者、时间等信息

查看日志历史记录信息:git log  #图4-10-4,此时便可以看标签的信息了

查看git tag后可跟哪些参数命令:git tag -h

图4-10-2 创建带注释的标签

图4-10-3 创建带注释的标签成功

图4-10-4 查看日志历史记录信息

4.10.3 同步标签至远程仓库

    作用:将在本地创建的标签同步至远程仓库中,此处远程仓库以在github创建的公有仓库(public)为例。
推送标签至远程仓库语法:git push 远程仓库名称 tag_name(标签名字)

推送所有标签至远程仓库语法:git push 远程仓库名称 --tags

查看git push后可跟哪些参数命令:git push -h

推送标签至远程仓库例子:git push lhqcx v2.0  #如图4-10-5
lhqcx:本地定义的远程仓库的名字,见“6.3.2”小节中本地仓库关联远程仓库操作

图4-10-5

进入github官网(方法参考“6.3.1”),查看标签是否推送成功,如图4-10-7所示。

图4-10-6 github官网进入标签页

图4-10-7 推送至github公有仓库的标签

4.10.3 查看标签信息git show

  作用:查看标签的详细信息。
查看标签信息语法:git show tag_name(标签名字)
查询git show后可跟哪些参数命令:git show -h

查看标签信息例子:git show v1.0

图4-10-8 查看标签的信息

4.10.4 删除标签

   作用:删除本地仓库和推送至远程仓库的标签。
删除本地仓库标签语法:git tag -d tag_name(标签名字)

删除远程仓库标签语法:git push 本地与远程仓库关联的名字 --delete tag_name(标签名字)

查看git tag后可跟哪些参数命令:git tag -h

删除本地仓库标签例子:git tag -d v2.0   #如图4-10-9
删除远程仓库标签例子:git push lhqcx --delete v2.0    #如图4-10-9
lhqcx:本地仓库定义的与远程仓库关联的名字,参考“6.3.2”小节。

图4-10-9 删除标签

4.11 版本回退相关命令

4.11.1 回退指定版本命令git reset

  作用:将所有内容恢复到最后一次提交,可以指定退回某一次提交的版本。
回退到指定版本语法:git reset HEAD+版本号 file_name(回退文件,可以不加)
常用参数说明:
    --soft:用于回退到某个版本。
    --hard:用于撤销工作区中所有未提交的修改内容,将暂存区与工作区都回退到上一次版本,并删除之前的所有提交的信息。
    HEAD说明:用于指向当前所在分支的指针;为一个分支、调教的跟踪指向性文件,位于本地仓库的隐藏目录
“.git”下,文件名字就是“HEAD”。

查询git reset后可跟哪些参数命令:git reset -h

HEAD版本说明:
HEAD:表示当前版本。
HEAD^:表示上一个版本。
HEAD^^:表示上上一个版本。
HEAD^^^:表示上上上一个版本;以此类推。

HEAD版本也可以用数字表示:
HEAD~0:表示当前版本。
HEAD~1:表示上一个版本。
HEAD~2:表示上上一个版本。
HEAD~3:表示上上上一个版本;以此类推。

使用例子:
回退所有内容到上一个版本:git reset HEAD~1
回退指定文件到上一个版本:git reset HEAD~1 hello.txt
回退所有内容到指定版本:git reset 8e5c (提交哈希值的后四位,可以通过git log查询)

回退所有内容到上上一个版本:git reset --soft HEAD~2

回退所有内容到上上一个版本:git reset --hard HEAD~2 
回退到某个版本回退点之前的所有信:git reset –hard 8e5c(提交哈希值的后四位,可以通过git log查询)
将本地的状态回退到和远程的一样:git reset --hard lhqcx/master
lhqcx:为本地仓库与远程仓库关联的名字,见“6.3.2”小节

4.11.2 恢复或撤销文件更改git restore

  作用:恢复或撤销文件的更改,为Git 2.23 版本引入,简化和改进文件恢复操作,相比于旧的命令(如 
git checkout

git reset

),它更专注于恢复文件内容和工作区状态。

语法:git restore file_name1 file_name2(要恢复的文件命令)
常用参数:
    -S,--staged:恢复暂存区中的文件内容到工作区,即移除暂存区中的文件。
    -s,--source=HEAD+版本号:从指定的提交中恢复文件内容;默认为HEAD,即当前提交。
    -2,--ours:在合并冲突时,恢复为当前分支的版本。
    -3,--theirs:在合并冲突时,恢复为另一个分支的版本。
    --dry-run:显示将要恢复的文件和路径,而不实际进行恢复。

查看git restore后可跟哪些参数命令:git restore -h

使用例子:
  例子1:恢复工作区中的“hello.txt”文件到最近的提交状态?
  命令1:git restore hello.txt

  例子2:恢复暂存区中的“hello.txt”文件内容到工作区?
  命令2:git restore --staged hello.txt

  例子3:从提交“HEAD~1”版本中恢复文件“hello.txt”?
  命令3:git restore --source=HEAD~1 hello.txt

  例子4:在合并冲突时,将文件“hello.txt”恢复为当前分支的版本?
  命令4:git restore --ours hello.txt

  例子5:在合并冲突时,将文件“hello.txt”恢复为另一个分支的版本?
  命令5:git restore --theirs hello.txt

  例子6:恢复工作区中的“hello.txt”和“flowers.txt”文件到最近的提交状态?
  命令6:git restore hello.txt flowers.txt

4.12 删除文件git rm

   作用:用于将文件从暂存区和工作区中删除。
同时删除暂存区和工作区的文件语法:git rm file_name(要删除的文件全名)
强制删除暂存区和工作区的文件语法:git rm -f file_name(要删除的文件全名)

只删除暂存区文件语法:git rm --cached file_name(要删除的文件全名)

递归删除目录下所有文件及子目录语法:git rm -r 目录名
此命令还可以写作:git rm -r * (必须要进入要删除子目录及文件的主目录下)

查询git rm后可跟哪些参数:git rm -h

只删除暂存区文件例子:git rm --cached hello.txt #如图4-12-1
删除暂存区和工作区文件例子:git rm hello.txt     #如图4-12-2

图4-12-1 只删除暂存区的文件

图4-12-2 删除暂存区和工作区的文件

5 本地与远程仓库交互

5.1 本地与远程仓库交互基础

  在第4节中都是针对本地仓库的操作,通常使用中需要把本地文件“上传或提交”到远程的仓库中,方便我们在任意位置都可以下载。

 常用的远程仓库有:

1、githup:全世界性的代码开源社区托管平台,但是没有梯子会较慢。

  地址:https://github.com

2、gitcode :中国代码开源社区托管平台,会转存github上的部分源码 。

  网址:https://gitcode.com/                              

3、gitee:俗称码云,中国代码开源社区托管平台。

  网址:https://gitee.com/

5.2 ssh建立github仓库的链接

   目前githup远程仓库上,一般都是通过ssh(安全外壳协议)进行授权的,实现本地与githup远程仓库建立通讯,实现数据的交互。

   本地仓库还是自己任意创建一个目录,然后使用“git init”命令初始化即可,参考“4.2”小节。

5.2.1 本地生成ssh秘钥

   查看本地是否安装“ssh”,默认windows系统是不安装的,但是在安装“git”软件时会给自动安装后,所以此处只需要查看验证一下即可,如图5-2-1所示。

图5-2-1

生成ssh秘钥命令:ssh-keygen -t rsa   #生成的秘钥如图5-2-2

看到这个命令经常使用linux系统的小伙伴是不是感觉到很熟悉,不错这个命令就是和linux系统生成ssh秘钥命令完全一致。

图5-2-2

秘钥存放路径:C:\Users\用户名.ssh (秘钥存放路径如图5-2-3)

图5-2-3

秘钥文件如图5-2-4所示。

图5-2-4

5.2.2 登录githup网站

   github的账号注册与使用,参考另一篇文章“github网站注册流程”;此处不在详述。

   github登录网址:https://github.com/    (登录成功的首页如图5-2-5)

图5-2-5

5.2.3 github添加ssh秘钥

(1)github网站首页右上角点击“账号头像” ,如图5-2-6所示。

图5-2-6

(2)选择“setting(设置)”,如图5-2-7所示。

图5-2-7

(3)seeting(设置)页面,如图5-2-8所示。

图5-2-8

(4)ssh秘钥添加位置,如图5-2-9所示。

图5-2-9

(5)将“5.2.1”小节中生成的公钥“id_rsa.pub”中的秘钥复制粘贴到“key”的输入位置,然后点击“Add SSH key”按钮,如图5-2-10所示。

图5-2-10

(6)添加成功的“公钥”信息显示,如图5-2-11所示;一般需要刷新在确定一下添加的公钥。

图5-2-11

5.2.4 验证git与github的通信

   验证本地的git是否与github网站是否成功建立通讯信息。
验证命令:ssh -T [email protected]   #建立成功链接如图5-2-12

图5-2-12中“Hi github用户名! You've successfully”表建立链接成功。

图5-2-12

5.3 github新建仓库

   在github上创建一个公有(public)仓库,方便上传自己的代码与下载代码;当然不创建仓库也是可以从github上下载代码的,参考“4.1”小节。

(1)登录github网站(登录地址:https://github.com),首页右侧点击“加号”旁边的“箭头”--选择“New repository”即可进入创建仓库页面,如图5-3-1所示。

图5-3-1

(2)在"Create a new repository(创建一个新仓库)"页面,填写创建仓库的基础信息,然后点击“Create repository”按钮即可,如图5-3-2所示。

图5-3-2

(3)创建成功后,会自动进入仓库主界面如图5-3-3所示。

图5-3-3

5.4 下载github仓库

使用“命令”下载github仓库操作方法如下所示:

   (1) 在“5.3”小节中已经进入创建的新仓库的主界面,然后点击“code”弹出下载选项,如图5-4-1所示。下载方法有三种,介绍如下:

https/ssh/github cli:使用git命令下载的链接地址,常用方法之一;此处选择次方方法。

Open with Github Desktop:github桌面端下载,不常用。

Download ZIP:下载zip压缩放,常用方法之一。

图5-4-1

(2)因为搭建的是“ssh”通道,所以选择“ssh”链接下载地址,如图5-4-2所示。

复制的链接地址:[email protected]:zkp-lhqcx/qcx.git

图5-4-2

(3)本地“Git Bash”窗口,打开方法见“2.4”小节,下载如图5-4-3所示;下载命令git clone的使用见“4.1”小节

git clone [email protected]:zkp-lhqcx/qcx.git

图5-4-3

5.5 同步本地文件至github远程仓库

     将本地代码文件上传至github远程仓库操作流程:

(1)首先需要将本地代码文件“存放”到下载的本地仓库“文件夹”下(见“5.4”节图5-4-3);此处以新建一个文件为上传例子,如图5-5-1所示。

图5-5-1

(2)使用“git add”命令将“helloworld.txt”代码文件上传至仓库“暂存区”,操作方法如图5-5-2所示。

添加文件至本地仓库暂存区命令:git add helloworld.txt

查看添加至暂存区文件状态命令:git status

statged:表示暂存区

图5-5-2

(3)将上传至“暂存区”的代码文件“提交”至github远程版本库中,操作方法如图5-5-3所示。

暂存区文件提交至本地仓库命令:git commit -m "qcx file_v1.0"  #如图5-5-3
"qcx file_v1.0":表示提交的信息,自定义即可,一定要是英文

查看提交至本地仓库状态命令:git status
commit:表示为提交状态

注意:此处提交至本地的“qcx”仓库中,并未同步至github网站的远程仓库中。

图5-5-3

(4)查看github远程仓库的名字,操作方法如图5-5-4所示。

查看远程仓库命令:git remote #如图5-5-4

图5-5-4

(5)将提交至本地版本库中的“helloworld.txt”代码文件上传至github的远程仓库中,操作方法如图5-5-5所示。

上传远程仓库命令:git push origin main #如图5-5-5
origin:表示远程仓库的名字。
main:表示远程仓库中分支的名字。

图5-5-5

6 手动建立本地仓库与远程仓库的关联

6.1 新建本地仓库

  作用是与远程库建立链接后,上传与下载源码的本地存储仓库。

  在本地计算机上新建一个目录,新建位置及名称自定义即可,创建好的文件夹如图6-1-1所示。

图6-1-1

6.2 初始化新建的本地仓库

   初始化“6.1”小节中新建的本地仓库,初始化命令:git init    (如图6-2-1)

图6-2-1

6.3 关联本地仓库与远程仓库

  将创建的本地仓库“gitsd”与“5.3”小节中在github官网创建的公有仓库“qcx”进行关联。

6.3.1 查询github远程仓库名称

  github登录地址:https://github.com/

(1)首页单击左侧单击“仓库名称”,进入仓库,如图6-3-1所示。

图6-3-1

(2)进入github的远程公有仓库后,复制“ssh”地址,如图6-3-2所示。

复制的ssh地址:[email protected]:zkp-lhqcx/qcx.git
远程仓库名称:qcx

图6-3-2

6.3.2 关联本地仓库与github的远程仓库

关联命令语法:git remote add 给远程仓库定义的名字 远程仓库的ssh地址
关联命令例子:git remote add lhqcx [email protected]:zkp-lhqcx/qcx.git  #关联成功如图6-3-3

图6-3-3

6.4 远程仓库代码同步至本地

   将github上的远程仓库同步到本地,实现本地与远程仓库的代码上传与下载。
同步命令例子:git pull lhqcx HEAD
含义解释:
    lhqcx:给远程仓库定义的名字
    HEAD:是指向当前所在分支的指针;指向的是一个引用(reference),它可以是一个分支、标签
或者提交记录的哈希值;HEAD的存在可以让Git跟踪当前所在的分支,以便在commit、merge等操作时
知道当前所在的位置。

(1)本地默认分支一般是“HEAD”,查看分支文件如图6-4-1所示。

图6-4-1

(2)执行将远程仓库同步到本地命令,如图6-4-2所示。

图6-4-2

6.5 本地文件同步至远程仓库

6.5.1 创建主分支main

   如果本地已经有了“main”分支,只需要将分支从“master”切换至主分支“main”;如果没有就创建一个主分支“main”,同时也可以将创建的“master”分支合并到“main”分支方便统一管理;当然合并不合并根据需求决定。

   合并分支命令见“4.7.5”小节。

图6-5-1

图6-5-2

6.5.2 本地文件同步至远程仓库

   将修改后的本地代码文件上传至github远程仓库的操作流程如下:

(1)先修改一个本地代码文件,如图6-5-1所示。

图6-5-1

(2)将修改后的“README.md”文件上传至本地仓库暂存区,使用的命令“git add”见“4.4”小节,操作方法如图6-5-2所示。

添加文件至本地仓库暂存区命令:git add README.md #如图6-5-2

图6-5-2

(3)将添加至本地仓库“暂存区”的文件“提交”至本地仓库,使用的命令“git commit”见“4.5”小节,操作方法如图6-5-3所示。

将本地暂存区文件提交至本地仓库命令:git commit -m "first README.md" #如图6-5-3
查看提交日志信息命令:git log
commit:表示提交状态

图6-5-3

(4)将提交至本地仓库的文件,上传至远程仓库中,操作方法如图6-5-4所示。

命令语法:git push 给远程仓库定义的名字 分支名称
命令例子:git push lhqcx main #如图6-5-4    

图6-5-4

(5)githup远程仓库查看是否上传成功,进入github远程仓库方法见“6.3.1”小节,验证成功如图6-5-5所示。

图6-5-5

标签: git

本文转载自: https://blog.csdn.net/qq_24265053/article/details/141168839
版权归原作者 落花千重雪 所有, 如有侵权,请联系我们删除。

“Git软件在Windows系统上安装与命令使用详细说明”的评论:

还没有评论