Git工作流协作的一些经验,分支、合并、提交,推送,移除历史
版本管理在编程中的重要程度不言而喻,其中git工作流也是最主流的方式,接下来总结一下git工作流中的一些比较实用的概念和具体方法。
在实际使用中,我还是用图形软件 sourcetree为主,不过图形软件只是为了方便,并且有很多用法还是要实用命令行来解决,所以要先理解概念,再熟悉命令,最后使用工具。
最常规的几个命令 init, add, rm, status, diff, commit 分别用来 新建仓库、添加、删除、查看概览、比较更改,提交更改。 基本上有这几个命令就可以顺利进行本地仓库的“备份”了。 clone, pull, push 是基于网络管理仓库比较常用的命令,用于 复制仓库,拉取更新,推送更新到服务器。
在git工作流中,协作的重要性是很高的,随着项目规模的升级,以及更多的人使用项目(fork),基于协作的共同维护就很有意义了。
这里主要有两个协作方式 1. 成为维护开发者 2. 创建分支、提交推送
第二种方式,不仅可以用于为源仓库贡献代码,也可以作为“定制化”开发的一种可行途径。这时候如果觉得自己开发的某些代码对于源仓库也有价值,可以再考虑贡献回去。
在github中,成为协作者主要是使用invitation功能,成为维护开发者之后,就可以和创建人一起管理仓库了。
当没有足够认可成为维护开发者,或者只是希望做一些定制化开发留为己用的时候呢,可以使用GitHub的fork功能。
这里我设计了一张图来诠释fork时,repo之间的关系。
在fork之后,实际上我们不必把自己的仓库当成是树枝,当我们创建完分支后,两个仓库已经是对等的了。我们可以向源仓库推送更新,也可以把源仓库的更新当做推送方,合并到自己的仓库中。
在github中,两个仓库之间的拉取是很简单的,无论是希望推送,还是希望从源仓库更新都适用这个拉取。 如果是希望更新就将两个仓库的顺序对转然后进行对比。
之后就根据需要进行合并操作就可以了。
如果是贡献代码,那么需要源仓库开发者通过并且选择再合并。我们更新则是自己来通过。
移除所有记录中的文件
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch THE_FILE_PATH' --prune-empty --tag-name-filter cat -- --all
git push --force
相关文章
- 在 Amazon EMR on Amazon EKS 上使用您的 Apache Spark 应用程序自定义和打包依赖项
- 新功能 – Amazon BugBust:消灭所有错误
- python socket编程
- 引领行业趋势,基于云上ARM架构赋能数值天气预报
- Python lxml教程
- 基于Amazon Kinesis Video Streams实现 IP Camera云存项目
- 推出适用于 AWS CloudFormation 的公有注册表
- 使用Amazon Step Functions实现Amazon CloudWatch持续报警
- 亚马逊云科技(中国区)网关负载均衡服务集成FortiGate安全网关扩展安全服务性能
- Amazon Glue ETL作业调度工具选型初探
- 参加 Graviton 挑战,迁移您的工作负载!
- 新增 Amazon Step Functions Workflow Studio:一种用于构建状态机的低代码可视化工具
- 华盛顿邮报的 Arc Publishing 如何使用 CloudWatch Metrics Explorer 来降低成本
- SaaS Boost 安装避坑指南
- 提醒 — AWS 新闻博客 RSS 源更改
- 即将推出 – AWS 以色列特拉维夫区域
- Amazon SageMaker 被评为企业 MLOps 平台的绝对领导者
- 利用 AWS Serverless 构建现代化的自动驾驶数据注入管理平台
- 使用 Dex 和 dex-k8s-authenticator 对 Amazon EKS 进行身份验证
- 新功能 – Amazon App Runner:几分钟内就可通过代码创建可扩展、安全的 Web 应用程序