1. 介绍1.1 介绍前面我们学习了GitLab环境的安装部署方法,知道了Git这个版本控制软件的作用和基本使用方法今天福哥要带着大家学习如何在Windows环境下使用Git客户端去操作我们的项目文件,这个是每一个搞技术的人员都需要学习的知识,请大家打起精神来跟着福哥一起学习吧~。
今天的内容有点多,大家可以收藏起来作为Git的使用手册!除了今天福哥教给大家的知识之外,更多的是需要大家在日常的项目开发当中熟练掌握Git的使用技巧!1.2 环境操作系统Windows 10 专业版 64位
Git客户端软件2.41.0Git服务器软件gitlab/gitlab-ce:12.1.3-ce.0Git服务器IP192.168.168.68Git服务器端口10222. 安装2.1 下载Git官网下载地址,我们下载标准安装包的64位版本。
https://git-scm.com/download/win
现在这个链接改成github的了,下载速度真的太慢了!2.2 安装启动安装包,UAC确认一下!
一路“next”安装下去,全部选默认选项即可~
Git开始安装了!
不用看发行信息,去掉“View Release Notes”选项,点击“Finish”按钮完成安装!
3. 使用3.1 建立目录打开资源管理器,选择一个分区,在里面建立目录tongfu.net\web。
3.2 打开Git Bash在web目录的空白处单机右键选择“Open Git Bash here”打开Git的Bash终端窗口。后面的所有对git的操作都是在这里通过输入命令行完成的哦~
3.3 SSH授权先把安装好的Git与前面搭建的GitLab配置起来,这样在使用git操作gitlab的项目的时候就不用输入密码了!在终端里输入如下命令创建ed25519类型的密钥!ssh-keygen
.exe-ted25519-b 4096
把公钥内容复制出来。cat /c/Users/tongfu/.ssh/id_ed25519.pub把公钥添加到gitlab的SSH密钥里(这个上一节有讲,不会的童鞋可以翻回去看看)。
添加好了~现在有三个SSH密钥了,一个是TFCentOS7x64服务器的,一个是TFCentOS7x64Node1服务器的,还有一个是福哥的Windows10的3.4 配置config用来配置git相关参数,必须要设置的就是用户名称和用户email。
git config --global user.email "git-client@tongfu.net" git config --global user.name "git client"
3.5 克隆Clone克隆就是把git服务器上面的一个项目的全部文件都复制一份到自己的电脑上面的操作.现在福哥要把tfphp项目克隆一份到Windows10的桌面上,在Bash里面输入命令克隆tfphp项目。
git clone ssh://git@192.168.168.68:1022/root/tfphp.git
3.6 拉取Pull/Fetch拉取就是从git服务器上下载项目最新的文件覆盖到本地项目里的操作无论是pull还是fetch都要在项目根目录操作才行,所以福哥要先切换到tfphp项目根目录下面cd tfphp/ ls
3.6.1 Pull使用pull拉取最新的文件,如果遇到了冲突则会自动合并代码,合并不了就会提示要求人工操作。git pull
3.6.2 Fetch使用fetch拉取最新的文件,如果遇到了冲突就会提示要求人工操作。git fetch
3.7 添加Add命令add用来将需要提交到项目里面的新增文件或者改动文件加入到待提交队列,理论上git可以将任何文件存入项目里面福哥在tfphp项目的html目录下面创建了一个htm文件,一个css文件和一个js文件。
使用add命令将css、js目录和test.htm网页添加到tfphp项目里。git add html/css/ git add html/js/ git add html/test.htm
使用status命令查看有哪些文件有变化。git status
3.8 提交Commit命令commit用来将add命令添加的待提交队列的内容提交到本地项目里commit命令可以将一个阶段的改动内容存成一个版本,这个版本就是项目的一个版本git commit -m 。
"添加了test.htm网页和相关资源"
3.9 日志Log福哥刚刚提交了一个版本到项目tfphp,那么项目tfphp里面有多少版本呢?怎么查看呢?git log -v
3.10 撤销Revert命令revert用来将某一次的提交所作的修改撤销掉如果撤销会造成冲突则需要人工参与合并操作福哥使用revert命令把刚刚的提交给撤销回来撤销操作需要commit ID,可以通过log命令查看。
git revert 4fb8ed332084d6787f3b8dc13f63240168b3eba0撤销操作还需要提供提交信息,这是默认的提交信息,可以不修改直接“:wq”保存退出。
保存退出后撤销操作就完成了。
再次查看日志,可以看到刚刚所作的revert撤销操作。
3.11 重置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"
现在有了三个提交记录,也就是三个版本。
福哥要reset到“add test.htm”这个版本,也就是说后面的两个版本也会被撤销掉,而且commit记录也会被丢掉git reset9562550c95b0819fb3536b2f0068588c9722d58e 。
--hard
可以看到test.css和test.js都没了,连目录也没有了。
相关的commit信息也没了。
3.12 推送Push刚刚的所有改动都只是在Windows10上面完成的,gitlab服务器上还是没有变化的,要想同步到gitlab服务器上面就需要用到push命令了福哥现在使用push命令把刚刚所做的所有改动都推送到远程的gitlab上面去。
git push
再去gitlab上面看看变化,可以发现html目录有了“add test.htm”这个版本信息了。
3.13 分支Branch分支是git非常重要的功能之一,每一个开发人员每天都离不开对项目分支的操作分支可以理解为项目的一次任务,每当项目有一次改动任务的时候都应该从主分支master上面切出来一个分支,然后在这个切出来的分支上面进行修改,修改完毕后再把这个分支和主分支master进行合并。
这样做可以最大限度地保证主分支master的稳定,还可以避免多人协同工作时候产生的冲突问题分支除了用来协同工作之外,也可以作为一个支线版本来使用比如我们的某个客户想要定制一些功能,这些功能不方便合并到主分支master上面,这个时候就可以为客户单独开辟一个持久的分支,专门为这个客户进行升级。
分支还可以用来实现持续集成,就是说可以设计一个流水线,当某个分支被合并后就自动触发构建任务,自动重新部署远程服务。3.13.1 查看分支查看有哪些分支,当前处在哪个分支下。git branch
3.13.2 创建分支因为当前是master分支,所以我们是基于master分支创建tfdev230927分支。git branch tfdev230927 git branch
3.13.3 切换分支新分支有了但是当前还是master分支,切换到tfdev230927分支。git switch tfdev230927 git branch
3.13.4 合并分支先切换到master分支,然后将tfdev230927分支合并到master分支因为我们在tfdev230927分支什么都没改,所以也没有什么可合并的内容git switch master git 。
merge tfdev230927 --squash
3.13.5 删除分支任务做完了,现在可以删除tfdev230927分支了删除之前先切到其他分支上,当前是不能删除的git switch master git branch --delete tfdev230927 git branch。
3.13.6 提交分支我们创建的分支其实只是在本地,如果要保存到git服务器上,还需要使用push命令提交上去首次提交分支到git服务器需要--set-upstream参数,后面就不用了福哥先创建了一个新的分支tfdev230927b,再把它提交上去。
git branch tfdev230927b git push --set-upstream origin tfdev230927b
去到gitlab上面可以看到刚刚创建的分支tfdev230927b。
3.13.7 删除远程分支如何删除git服务器上的分支?还是使用push命令福哥现在把刚刚提交到git服务器上的分支tfdev230927b删除掉git push origin -d tfdev230927b。
去到gitlab上看一下,tfdev230927b分支也没有了。
注意:删除远程分支不代表本地分支也会被删除!!!3.14 标签Tag标签顾名思义就是给项目打一个版本号,这个版本基于某一次的commit版本大多数的情况下标签是用来标志着项目的发行版本通常用来完成持续集成,每次给项目打一个标签就会触发自动构建,自动完成远程服务的重构。
3.14.1 查看标签现在还没有任何标签。git tag
3.14.2 创建标签创建一个标签v1.0.0。gittagv1.0.0gittag
3.14.3 删除标签删除这个标签。gittag--deletev1.0.0gittag
3.14.4 提交标签提交标签和提交分支语法类似。gittagv1.0.1gittaggitpushoriginv1.0.1
去到gitlab上面看一看,在标签里面可以看到刚刚提交的v1.0.1标签。
提交所有标签可以使用这个命令。再参创建两个标签v1.0.2和v1.0.3,一起提交上去。gittagv1.0.2gittagv1.0.3gittaggitpushorigin--tags
3.14.5 删除远程标签删除远程标签和删除远程分支语法也差不多。gitpushorigin-dv1.0.1
去到gitlab上面看一下,标签里面已经没有v1.0.1这个标签了。
注意:删除远程标签不代表本地标签也会被删除!!!3.15 分支和标签重名看到这里大家可能会想,既然分支和标签推送到git服务器的语法是一样的,那么如果分支和标签有重名的情况的话,推送到git服务器的是分支还是标签呢?
这个问题福哥帮大家试验了一下,会有报错的~gitbranchv1.0.3gitbranchgitpushoriginv1.0.3gitbranch--deletev1.0.3
反过来也是不行的!git tag tfdev230927b git tag git push origin tfdev230927b git tag --delete tfdev230927b
4. 总结今天我们学习了在Windows上安装Git客户端,已经使用Git客户端操作项目文件的的各种操作的方法其实除了这种命令行方式的Git客户端之外,还有很多图形化的Git客户端软件,使用图形化的Git客户端可以更加高效地管理我们的git项目,管理我们的服务。
后面福哥会给大家讲解如何使用小乌龟Git(TortoiseGit)图形化Git客户端来管理我们的git项目,敬请期待~https://m.tongfu.net/home/35/blog/514016.html
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。