git学习笔记(一):git客户端基本使用方法
1、git的常用基本指令
下面是一些git常用的基本指令集,这里只是简单罗列一下,方便参考:
1 | 配置git基本信息 |
2、git分支管理与版本维护总结
这里需要特别说明一下;分支管理一般用于在允许你在主开发线上分离一个动态开发线路,主要用来进行新的功能开发,bug调试等工作,主要目的是为了在新功能开发,或者调试bug的同时,不影响主线。分支可以随着新的提交而更新。
常用的分支管理指令如下:
1 | git branch # 列出所有本地分支 |
而版本管理,我们一般用tag指令来处理,Tag通常用来标记特定的点,可以理解为Tag是对某一时刻的提交(commit)的引用。一般用来做版本发布,当软件开发到一个特定节点时,我们可以用tag指令来发布版本。
tag常用指令如下:
1 | git tag -a v1.3 -m "Release version 1.3" |
一般软件版本为x.x.x三组数据组成,第一个为主版本,第二个版本为功能更新版本,第三个为功能修复和完善的版本。也就是说正常情况下,我们发布1.3版本,后续我们回继续对1.3版本进行维护和优化,创建1.3.x版本。如果要增加或者改变功能,我们回同步创建1.4版本。这样就可以实现对多个版本的同步和维护(一般主版本会在产品有重大更新,或者比较大的重构,导致可能会出现兼容性问题的时候,会更新主版本)。
我们现在假设,一款软件,我们已经开发到可以发布1.3版本了。我们会采用tag方式创建和发布1.3版本。一般这个时候,我们同步创建一个分支。用于后续修复和完善该版本。我们操作如下:
1 | git checkout main # 切换主线 |
此时如果我们要同步更新主线分支和v1.3分支的话,可以如下操作
1 | git checkout main # 切换主线 |
如果我们希望将对1.3版本的完善和修复同步到主线,有以下两种操作方法:
- 从release/v1.3的分支合并修复到main分支
1 | git checkout main # 切换主线 |
这种方法将把1.3维护分支的所有更改都合并到 main
分支,适用于所有更改都需要合并的情况。
- Cherry-pick 特定的提交,如果我们只是希望把某个特定的修复合并到主线分支,则可以通过git log查看到该修复操作的哈希值内容。然后通过如下操作:
1 | git checkout main # 切换主线 |
不管是那种操作,我们都需要使用push把它提交到远程仓库
1 | git push origin main # 如果确定目前处于主线仓库,则直接用git push也可以 |
如果我们认为对1.3版本的修复和完善工作已经到了一个阶段,我们可以发布1.3.1版本,此时我们可以如下操作:
1 | git checkout release/v1.3 # 切换到v1.3的分支,确保我们目前处在1.3分支当中 |
当然我们也可以继续基于release/v1.3的分支进行操作,后续可以发布1.3.2~1.3.x的版本。同时可以基于main分支,来发布1.4版本,或者发布1.4版本之后,继续创建release/v1.4的分支内容,用来修复和维护1.4版本的内容。
用如上操作,我们基本上可以使用git来维护软件的各个版本内容了。
3、git中关于二进制文件或者其他非文本类大文件处理方法参考
- 直接用附件上传的方式,把二进制或者其他大文件压缩或者直接作为文件上传到gitee的附件当中去,点击gitee仓库的统计,下面有附件,点击添加附件,然后把“复制链接地址”,把地址或者地址的快捷方式作为文件提供到仓储当中,这样用户就可以通过地址或者快捷方式直接实现二进制或者大文件的下载。
采用Git LFS,但是貌似目前并不是所有的git远程仓库都支持LFS功能,比如gitee的个人版本不支持,只有付费企业版本支持。貌似github/gitlab/bitbucket都是支持LFS的。所以在使用LFS的时候,请确保git的服务器是否支持GIT LFS,否则可能会导致LFS无效。这里对Git LFS做个简单的介绍
在创建或者上传大文件时:
- 在仓库中输入
git lfs install
初始化lfs,如果系统没有lfs插件,git会自动下载lfs插件,并进行初始化。 - 在现有仓库中使用lfs,你需要指定哪些文件被作为大文件。如下操作:
1
2git init
git lfs track "*.psd"- 为了确保仓库的lfs大文件已经被绑定,可以确保
.gitattributes
文件被添加到仓库中
1
2git add .gitattributes
git commit -m "Set Git LFS for psd files" 此时,Git LFS来跟踪所有的
.psd
文件。你可以指定任何文件类型或具体文件。这会创建或修改.gitattributes
文件,包含关于哪些文件应由Git LFS跟踪的规则。- 和正常一样使用git即可
克隆或者拉取具有lfs的仓库时,如下操作
- 和正常一样下载
git clone <repository-url>
或者拉取git pull origin main
文件即可。如果发现大文件没有被同步,可以尝试用git lfs pull
单独拉取一下大文件。 - 另外可以通过
git lfs ls-files
来查看哪些文件时由LFS管理的文件。- 如果LFS的对象存储很大,可以尝试使用
git lfs prune
来同步和清理大文件,这将删除本地存储中的旧版本LFS对象,从而节省空间。
- 如果LFS的对象存储很大,可以尝试使用
可以通过
git lfs track
来查看哪些文件类型被绑定到lfs大文件存储上了。通过git lfs track "*.psd"
来取消某种类型文件的追踪(记得修改完成之后需要push)。- 在仓库中输入
对于一些特别大的文件,或者不经常更改的大型二进制文件,考虑将它们存储在其他地方(如云存储服务),只在Git仓库中保存必要的链接或引用。这个方法和第一个方法基本相同,只是需要自己创建或者寻找第三方的云存储服务而已。