简介
简介
代码管理对于软件开发而言永远是一个绕不过去的坎。笔者初学编程时对软件的版本没有任何概念,出了问题就改一改,把现在的代码复制保存一份留着以后用,这种方式无疑是是非常混乱的,这也是为什么VCS(Version Control System)会诞生的原因。这类软件的发展史还是蛮长的,笔者曾经短暂的在一个临时参与的项目中使用过SVN,现在应该不太常见了,几乎大部分项目都是在用git进行项目管理。大多数情况下,笔者都只是在拉代码和推代码,其他的命令几乎很少用到,不过这也侧面印证了git的稳定性。写下这些内容是为了对自己git相关知识的进行一个总结,更加熟悉之后,处理一些疑难杂症时会更加得心应手。
开源地址(镜像):git/git: Git Source Code Mirror
官方网站:Git (git-scm.com)
提示
本章内容大量参考GitBook,该书有着良好的中文支持,十分建议阅读。
安装
git本身是为linux设计的,不过也有windows版本的。
前往官网下载对应平台的发行版,笔者所使用的是windows版本,下载完成后执行命令查看git是否可用
> git version
git version 2.42.0.windows.2
对于linux而言,可以使用apt来安装
apt install git
或者
yum install git
更新
更新git的方法相当简单
- 第一种是直接下载新的文件覆盖旧文件
- 第二种是执行
git update-git-for-windows
命令进行更新。 - 对于linux而言使用自己对应软件包管理工具的更新方法
帮助
寻求git帮助的方式有很多种
- 在官网查阅命令文档
- 执行
git help verbs
获取详细帮助 - 执行
git verbs -h
来获取简短的描述
善用这些方法和渠道,因为很多时候出了问题并不会有人来帮你解决,自己多去看看文档说不定会发现问题所在。
配置
通过git config
命令可以查看git配置,比如
$ git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=/etc/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
...
一般来说,刚安装后,你需要配置你的名称和邮箱,因为这个信息会在你日后对每一个git仓库的每一次提交出现,比如当你和其他人合作开发项目时,突然看到一段很烂的代码,通过这个信息就可以很快的知晓到底是哪个大聪明写的代码。通过--global
参数进行全局设置,同样的也可以使用--local
来进行局部设置,全局设置会作用到所有的仓库,而局部设置只会覆盖当前的仓库。
$ git config --global user.name "abc"
$ git config --global user.email "tencent@qq.com"
通过添加--show-origin
参数可以很清晰的看到每一个配置的来源。
$ git config --list --show-origin
# 全局设置
file:D:/WorkSpace/DevTool/Git/etc/gitconfig diff.astextplain.textconv=astextplain
file:D:/WorkSpace/DevTool/Git/etc/gitconfig filter.lfs.clean=git-lfs clean -- %f
file:D:/WorkSpace/DevTool/Git/etc/gitconfig filter.lfs.smudge=git-lfs smudge -- %f
file:D:/WorkSpace/DevTool/Git/etc/gitconfig filter.lfs.process=git-lfs filter-process
file:D:/WorkSpace/DevTool/Git/etc/gitconfig filter.lfs.required=true
file:D:/WorkSpace/DevTool/Git/etc/gitconfig http.sslbackend=openssl
file:D:/WorkSpace/DevTool/Git/etc/gitconfig http.sslcainfo=D:/WorkSpace/DevTool/Git/mingw64/etc/ssl/certs/ca-bundle.crt
file:D:/WorkSpace/DevTool/Git/etc/gitconfig core.autocrlf=true
file:D:/WorkSpace/DevTool/Git/etc/gitconfig core.fscache=true
file:D:/WorkSpace/DevTool/Git/etc/gitconfig core.symlinks=false
file:D:/WorkSpace/DevTool/Git/etc/gitconfig pull.rebase=false
file:D:/WorkSpace/DevTool/Git/etc/gitconfig credential.helper=manager
file:D:/WorkSpace/DevTool/Git/etc/gitconfig credential.https://dev.azure.com.usehttppath=true
file:D:/WorkSpace/DevTool/Git/etc/gitconfig init.defaultbranch=master
# 来自操作系统的用户设置
file:C:/Users/Stranger/.gitconfig credential.http://59.110.221.188.provider=generic
file:C:/Users/Stranger/.gitconfig user.name=abc
file:C:/Users/Stranger/.gitconfig user.email=tencent@qq.com
file:C:/Users/Stranger/.gitconfig credential.https://gitee.com.provider=generic
file:C:/Users/Stranger/.gitconfig http.sslverify=false
file:C:/Users/Stranger/.gitconfig http.https://github.com.proxy=http://127.0.0.1:7890
file:C:/Users/Stranger/.gitconfig https.https://github.com.proxy=http://127.0.0.1:7890
# 来自仓库中的.git目录
file:.git/config core.repositoryformatversion=0
file:.git/config core.filemode=false
file:.git/config core.bare=false
file:.git/config core.logallrefupdates=true
file:.git/config core.symlinks=false
file:.git/config core.ignorecase=true
注意
最后说一句,后续的git学习只会使用命令行工具,因为只有命令行才能体验到git的完整功能。掌握了命令行以后,再去使用其他GUI工具就轻而易举了。在windows平台,如果安装成功了的话,是可以直接在cmd和powershell里面使用git命令的,当然也可以使用git bash
,这是git自带的命令工具,你可以在鼠标右键菜单中找到它。
使用git bash
的好处是可以兼容一些基础的linux命令。git有着很多的内置命令,没必要去死记硬背,忘了也很正常,我写这些文章的目的就是为了未来有一天忘了的时候可以回顾这些内容,所以放平心态。