Windows10安装Git版本控制软件及使用教程

发表于 2023-06-08 06:52:57
阅读 125

介绍

介绍

前面我们学习了GitLab环境的安装部署方法,知道了Git这个版本控制软件的作用和基本使用方法。今天福哥要带着大家学习如何在Windows环境下使用Git客户端去操作我们的项目文件,这个是每一个搞技术的人员都需要学习的知识,请大家打起精神来跟着福哥一起学习吧~

今天的内容有点多,大家可以收藏起来作为Git的使用手册!

除了今天福哥教给大家的知识之外,更多的是需要大家在日常的项目开发当中熟练掌握Git的使用技巧!

环境

操作系统
Windows 10 专业版 64位
Git客户端软件2.41.0
Git服务器软件gitlab/gitlab-ce:12.1.3-ce.0
Git服务器IP192.168.168.68
Git服务器端口1022

安装

下载

Git官网下载地址,我们下载标准安装包的64位版本。

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

de36d195d5edf8510e96762a54ab77a8.png现在这个链接改成github的了,下载速度真的太慢了!

安装

启动安装包,UAC确认一下!

d4a48b78ea03bc1729338596eae2a8ed.png一路“next”安装下去,全部选默认选项即可~

ede6e387e51c5d04b3e09538430ea225.pngGit开始安装了!

9b91064ee970efeed82d22eb04ba63e2.png不用看发行信息,去掉“View Release Notes”选项,点击“Finish”按钮完成安装!

25c04e05490f12f3c083bff797315956.png

使用

建立目录

打开资源管理器,选择一个分区,在里面建立目录tongfu.net\web。

1fea8a17dda3c58ee6a1a96e56cb535b.png

打开Git Bash

在web目录的空白处单机右键选择“Open Git Bash here”打开Git的Bash终端窗口。后面的所有对git的操作都是在这里通过输入命令行完成的哦~

57b5c74323085b936b59451eecdf6850.png

e4e3dfac92b01e5858e813bcbf21ba89.png

SSH授权

先把安装好的Git与前面搭建的GitLab配置起来,这样在使用git操作gitlab的项目的时候就不用输入密码了!

在终端里输入如下命令创建ed25519类型的密钥!

ssh-keygen.exe -t ed25519 -b 4096

c9b6d059b04c7eed8e03fef933516dd5.png

把公钥内容复制出来。

cat /c/Users/tongfu/.ssh/id_ed25519.pub

把公钥添加到gitlab的SSH密钥里(这个上一节有讲,不会的童鞋可以翻回去看看)。

965bb6d330929e0b0d53077eb4b62488.png

添加好了~

现在有三个SSH密钥了,一个是TFCentOS7x64服务器的,一个是TFCentOS7x64Node1服务器的,还有一个是福哥的Windows10的。

配置config

用来配置git相关参数,必须要设置的就是用户名称和用户email。

git config --global user.email "git-client@tongfu.net"
git config --global user.name "git client"

73df93b8769bb446982e62ac4cbfb81a.png

克隆Clone

克隆就是把git服务器上面的一个项目的全部文件都复制一份到自己的电脑上面的操作.

现在福哥要把tfphp项目克隆一份到Windows10的桌面上,在Bash里面输入命令克隆tfphp项目。

git clone ssh://git@192.168.168.68:1022/root/tfphp.git

29b7127ade760bb2ee520ca025accb01.png

拉取Pull/Fetch

拉取就是从git服务器上下载项目最新的文件覆盖到本地项目里的操作。

无论是pull还是fetch都要在项目根目录操作才行,所以福哥要先切换到tfphp项目根目录下面。

cd tfphp/
ls

55db401959c6143b00e4eea9f2435735.png

Pull

使用pull拉取最新的文件,如果遇到了冲突则会自动合并代码,合并不了就会提示要求人工操作。

git pull

df436340597f1549a3dd4be46220acba.png

Fetch

使用fetch拉取最新的文件,如果遇到了冲突就会提示要求人工操作。

git fetch

0e955d21345ca2ecfbb5aad556bdbc18.png

添加Add

命令add用来将需要提交到项目里面的新增文件或者改动文件加入到待提交队列,理论上git可以将任何文件存入项目里面。

福哥在tfphp项目的html目录下面创建了一个htm文件,一个css文件和一个js文件。

8d80ed0db2d039cc8e62f0098972a92f.png

使用add命令将css、js目录和test.htm网页添加到tfphp项目里。

git add html/css/
git add html/js/
git add html/test.htm

26abbd4a4a04b5a6cfd580180e0e8f70.png

使用status命令查看有哪些文件有变化。

git status

d59787498c8aa01d245aa1c271cb566f.png

提交Commit

命令commit用来将add命令添加的待提交队列的内容提交到本地项目里。commit命令可以将一个阶段的改动内容存成一个版本,这个版本就是项目的一个版本。

git commit -m "添加了test.htm网页和相关资源"

339c57204b10edd809b1a17583819f3f.png

日志Log

福哥刚刚提交了一个版本到项目tfphp,那么项目tfphp里面有多少版本呢?怎么查看呢?

git log -v

41679999bf1e56a6157705fa0c761228.png

撤销Revert

命令revert用来将某一次的提交所作的修改撤销掉。如果撤销会造成冲突则需要人工参与合并操作。

福哥使用revert命令把刚刚的提交给撤销回来。撤销操作需要commit ID,可以通过log命令查看。

git revert 4fb8ed332084d6787f3b8dc13f63240168b3eba0

撤销操作还需要提供提交信息,这是默认的提交信息,可以不修改直接“:wq”保存退出。

463c239e9c8ca5334ffc396105e58148.png保存退出后撤销操作就完成了。

3110c2f021d0d63ca381b0530b65cee7.png

再次查看日志,可以看到刚刚所作的revert撤销操作。

39b91650243473b35bee9a591e94a69b.png

重置Reset

命令reset也是用来将某一次的提交所作的修改撤销掉。

reset和revert的区别在于,如果目标版本是一个历史版本,那么reset会把目标版本之后的全部版本清除掉,而revert则会保留这些版本信息。

为了测试这个,福哥就创建了几个改动。

git add html/test.htm
git commit -m "add test.htm"
git add html/css/test.css
git commit -m "add test.css"
git add html/js/test.js
git commit -m "add test.js"

f5d0770708da71321fd017c8600d017f.png

现在有了三个提交记录,也就是三个版本。

b82a9cf110f841efafb2c9704fe02b27.png

福哥要reset到“add test.htm”这个版本,也就是说后面的两个版本也会被撤销掉,而且commit记录也会被丢掉。

git reset 9562550c95b0819fb3536b2f0068588c9722d58e --hard

047737910c6fb97b693901957a8d8c09.png

可以看到test.css和test.js都没了,连目录也没有了。

d9f64d340d7f8f3d22902cb5984e729b.png相关的commit信息也没了。

cbba4d8d271464ecfb97e4b9127d53b3.png

推送Push

刚刚的所有改动都只是在Windows10上面完成的,gitlab服务器上还是没有变化的,要想同步到gitlab服务器上面就需要用到push命令了。

福哥现在使用push命令把刚刚所做的所有改动都推送到远程的gitlab上面去。

git push

877f08dad210349ba5d55d3953475cb5.png

再去gitlab上面看看变化,可以发现html目录有了“add test.htm”这个版本信息了。

7641744f256b9f7a14e4146b934bf36a.png

分支Branch

分支是git非常重要的功能之一,每一个开发人员每天都离不开对项目分支的操作。

分支可以理解为项目的一次任务,每当项目有一次改动任务的时候都应该从主分支master上面切出来一个分支,然后在这个切出来的分支上面进行修改,修改完毕后再把这个分支和主分支master进行合并。这样做可以最大限度地保证主分支master的稳定,还可以避免多人协同工作时候产生的冲突问题。

分支除了用来协同工作之外,也可以作为一个支线版本来使用。比如我们的某个客户想要定制一些功能,这些功能不方便合并到主分支master上面,这个时候就可以为客户单独开辟一个持久的分支,专门为这个客户进行升级。

分支还可以用来实现持续集成,就是说可以设计一个流水线,当某个分支被合并后就自动触发构建任务,自动重新部署远程服务。

查看分支

查看有哪些分支,当前处在哪个分支下。

git branch

0df7f885ac5429704cde27cc9c79704a.png

创建分支

因为当前是master分支,所以我们是基于master分支创建tfdev230927分支。

git branch tfdev230927
git branch

9753610b675101c07a4ae78fd4c41a3f.png

切换分支

新分支有了但是当前还是master分支,切换到tfdev230927分支。

git switch tfdev230927
git branch

1c251f160e9ec2199dc4712d3aab7f33.png

合并分支

先切换到master分支,然后将tfdev230927分支合并到master分支。

因为我们在tfdev230927分支什么都没改,所以也没有什么可合并的内容。

git switch master
git merge tfdev230927 --squash

f1470e1f059012bdf8d5efdc2d6fbab0.png

删除分支

任务做完了,现在可以删除tfdev230927分支了。

删除之前先切到其他分支上,当前是不能删除的。

git switch master
git branch --delete tfdev230927
git branch

f6493941b4a1eb272ee5ab36c957c24e.png

提交分支

我们创建的分支其实只是在本地,如果要保存到git服务器上,还需要使用push命令提交上去。

首次提交分支到git服务器需要--set-upstream参数,后面就不用了。

福哥先创建了一个新的分支tfdev230927b,再把它提交上去。

git branch tfdev230927b
git push --set-upstream origin tfdev230927b

50de48d98dbf3f5eb6917dd605c68171.png去到gitlab上面可以看到刚刚创建的分支tfdev230927b。

1f582dfbfe2832c7adf126610bf4f3c3.png

删除远程分支

如何删除git服务器上的分支?还是使用push命令。

福哥现在把刚刚提交到git服务器上的分支tfdev230927b删除掉。

git push origin -d tfdev230927b

d4f7ee421722a2eae1e2574981ea42c7.png

去到gitlab上看一下,tfdev230927b分支也没有了。

a83080c61b2aae88a11429c7183e7def.png

注意:删除远程分支不代表本地分支也会被删除!!!

标签Tag

标签顾名思义就是给项目打一个版本号,这个版本基于某一次的commit版本。大多数的情况下标签是用来标志着项目的发行版本。通常用来完成持续集成,每次给项目打一个标签就会触发自动构建,自动完成远程服务的重构。

查看标签

现在还没有任何标签。

git tag

86e0e58d93fc2de5663489fd8e85971b.png

创建标签

创建一个标签v1.0.0。

git tag v1.0.0
git tag

f3c8430e0ecfbc4e5ee80fbb4ea8be36.png

删除标签

删除这个标签。

git tag --delete v1.0.0
git tag

27c6a8da2fb6f76d4d3503a54e608a21.png

提交标签

提交标签和提交分支语法类似。

git tag v1.0.1
git tag
git push origin v1.0.1

5583b6e9e919ca48c99d56aadc2ff250.png去到gitlab上面看一看,在标签里面可以看到刚刚提交的v1.0.1标签。

ea3b187256cbd7b7461e663a1332cb5a.png

提交所有标签可以使用这个命令。再参创建两个标签v1.0.2和v1.0.3,一起提交上去。

git tag v1.0.2
git tag v1.0.3
git tag
git push origin --tags

1780d5a87c2a99e357cf7503fcf971fa.png

删除远程标签

删除远程标签和删除远程分支语法也差不多。

git push origin -d v1.0.1

59d05195cc4b044822389ce848bfea57.png

去到gitlab上面看一下,标签里面已经没有v1.0.1这个标签了。

d02c4b3265225b42b17581b25d54901d.png

注意:删除远程标签不代表本地标签也会被删除!!!

分支和标签重名

看到这里大家可能会想,既然分支和标签推送到git服务器的语法是一样的,那么如果分支和标签有重名的情况的话,推送到git服务器的是分支还是标签呢?

这个问题福哥帮大家试验了一下,会有报错的~

git branch v1.0.3
git branch
git push origin v1.0.3
git branch --delete v1.0.3

7c499a89bf21308bde3769cbb3f567ce.png

反过来也是不行的!

git tag tfdev230927b
git tag
git push origin tfdev230927b
git tag --delete tfdev230927b

65def60512383edc97acf617c9cfaae3.png

总结

今天我们学习了在Windows上安装Git客户端,已经使用Git客户端操作项目文件的的各种操作的方法。其实除了这种命令行方式的Git客户端之外,还有很多图形化的Git客户端软件,使用图形化的Git客户端可以更加高效地管理我们的git项目,管理我们的服务。

后面福哥会给大家讲解如何使用小乌龟Git(TortoiseGit)图形化Git客户端来管理我们的git项目,敬请期待~