远程操作
分布式版本控制系统
概念理解
Git就像正在看的一本书。每当看完一章,可以将其保存起来,如果后面想修改或者查看以前自己看到哪里,随时可以翻看。Git就是帮助记录这些修改的工具,主要负责记录每次改动,就类似于有了一个“时间机器”,可以回到过去任何一个版本。
分布式版本控制则就类似于朋友读一本书的时候,我们都想对这本书进行修改。一般的方法是将书放在一个地方,大家轮流去修改,但是这样效率不高。但是使用分布式版本控制就是每个人都有一本完整书的副本,大家可以各自修改。然后彼此分享修改的部分,最终合并在一起。即使没有网络,大家也可以独立工作。
分布式工作流程
- Forking 工作流:每个人从主仓库 Fork 出自己的仓库,完成工作后通过 Pull Request 将更改合并回主仓库
- Feature Branch 工作流:在主仓库中,每个新功能都在单独的分支上开发,完成后合并回主分支
- Gitflow 工作流:一种更加复杂的工作流程,包含了长期的开发分支、发布分支、热修复分支等
远程操作与协作
- 克隆(Clone):从远程仓库复制整个仓库,包括所有历史记录。
- 获取(Fetch):从远程仓库获取更新,但不合并到本地分支。
- 拉取(Pull):获取并合并远程仓库的更新到本地分支。
- 推送(Push):将本地的提交上传到远程仓库。
克隆远程仓库
实现步骤
SSH方法克隆仓库,自动实现免密Push
首先在服务器上获取公钥
远程仓库推送
推送事例(Push操作)
拉取远程仓库
本地仓库中获取远程仓库中的最新代码(pull)
忽略特殊文件
.gitignore文件,存储在本地不提交的文件
两种创建方式
创建两个忽略的文件,然后将其进行提交
已经被忽略的文件强制提交
.gitignore中不排除某些文件的方法
查看某个文件为什么被忽略
配置命令别名
别名实践(--pretty=oneline --abbrev-commit替换成lpa)
标签管理
标签
git中标签含义理解
Git中的标签类似于版本控制中的“快照”,主要用于给特定的提交创建一个标识。经常用于给软件项目中重要版本打上特定标签。标签主要有两种形式。
- 轻量标签 :指向某个提交的引用,本质上是一个不带附加信息的指针
- 附注标签 :除了提交的引用外,还包含标签名称、创建者信息、日期、注释等
标签基本操作
// 轻量标签:不附加额外信息
git tag v1.0.0
// 附注标签: -a(创建附注标签) -m(提供标签的描述信息)
git tag -a v1.0.0 <commit-id> -m "Release version 1.0.0"
git tag 标签内容:创建标签
标签内容查看
// 列出所有标签
git tag
// 查看某个标签的详细信息
git show v1.0.0
基于之前提交内容打标签
给创建的标签添加描述内容(同时指定特定的一次提交)
删除标签
本地标签推送
单个推送标签
批量推送标签
本地删除标签,然后推送到远端