git 删除git远程分支
为什么选择Git
专有软件使版本控制系统(VCS)符合其要求:
- 该项目有严格的发布时间表
- 团队并置
- 冲刺的目标是明确定义的,重点是有限的故事
- 分支通常保留用于发布或有风险的开发功能
- 集中式服务器对外界隐藏
在这种情况下,出现了集中式版本控制系统(例如Subversion ),但这不适用于开源项目,因为:
- 发行不受截止日期的限制
- 贡献者可能分散在全球各地
- 欢迎新想法,即使是激进或耗时的
- 随着开发人员致力于功能而非冲刺,分支变得必不可少
- 该代码可供全世界使用
Git是软件开发精神的精髓。 如果可用工具不适合您的用例,则可以构建自己的工具。 Git是一个分布式版本控制系统(DVCS),用于解决开放源代码开发与经典VCS之间的阻抗不匹配问题。
使用Subversion时,像Tortoise SVN这样的用户界面已绰绰有余 ,而且我很少需要使用Subversion命令行。 基于主干的开发风格简化了版本控制过程,这就是UI可以处理它的原因。
Git提供了多种工作流程样式供您选择。 您仍然可以使用主干基础开发样式(我将其用于管理此博客源代码示例),但是如果您打算为其他开源项目做出贡献,则必须熟悉功能分支。
为什么要分支
Git使分支成为一种商品,并且每个功能都可以在单独的分支中开发。 这是合乎需要的,因为合并过程可能不受您的控制。 如果您在默认主默认分支上进行开发,并且给定的提交功能被推迟,则在开始使用完全不同的功能之前,必须先还原所做的更改。 功能分支使您可以隔离更改并简化合并过程。 但是一旦开始使用功能分支,您就会意识到命令行不再是可选的。 为了正确理解Git并成功使用它,建议先掌握其命令。
功能分支示例
我决定将度量支持添加到Bitronix事务管理器中 ,因此第一步是创建一个新的度量分支。
首先,我必须检查我当前的分支。
D:\wrk\vladmihalcea\btm>git branch
* master
我只有默认的master分支,所以让我们创建一个新分支,我的更改将进入该分支。
D:\wrk\vladmihalcea\btm>git checkout -b metrics
Switched to a new branch 'metrics'
前面的命令有两件事:
- 它创建一个新的本地指标分支
- 它将工作文件夹切换为引用新创建的分支
我们可以看到当前分支引用已更改:
D:\wrk\vladmihalcea\btm>git branch
master
* metrics
通常,您会进行多次提交,直到对最终版本满意为止,但是为了简化合并过程,您必须将提交压缩为一个看起来像这样的单个提交:
commit f75838a7cf8cfdb9ceeb364a0f0faae24642d39e
Author: vladmihalcea <mih_vlad@yahoo.com>
Date: Thu Jan 23 11:57:16 2014 +0200
add metrics support (Codahale)
add PoolingDataSource connection wait time histogram
add PoolingDataSource in-use connections histrogram
以前的所有更改仅适用于我的本地存储库,因此我需要使它们对外界可用。 此过程称为远程分支 ,您可以按照以下步骤进行操作:
D:\wrk\vladmihalcea\btm>git push --set-upstream origin metrics
Username for 'https://github.com': vladmihalcea
Password for 'https://vladmihalcea@github.com':
Counting objects: 56, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (32/32), done.
Writing objects: 100% (34/34), 7.64 KiB | 0 bytes/s, done.
Total 34 (delta 15), reused 0 (delta 0)
To https://github.com/vladmihalcea/btm.git
* [new branch] metrics -> metrics
Branch metrics set up to track remote branch metrics from origin.
从本地指标分支推送的所有更改现在都将转到远程指标分支。
D:\wrk\vladmihalcea\btm>git push
Username for 'https://github.com': vladmihalcea
Password for 'https://vladmihalcea@github.com':
Everything up-to-date
让我们去GitHub看看结果:
要将我的贡献通知产品负责人,我们需要发送拉取请求:
产品负责人可以查看更改并决定是否以及何时将其合并到主分支。 在审核过程中,产品负责人可能会在合并分支机构之前要求进行其他更改,因此您需要:
- 向本地指标分支提交新更改
- 重新压缩提交到单个提交
- 强制推送到您的远程分支(例如git push -f)
根据经验,发布更改后通常不会重写提交历史记录。 这可能会影响其他使用您的分支机构作为其工作起点的贡献者。 但是,您的功能分支不打算由产品所有者以外的其他贡献者使用,产品所有者只会在准备就绪时将其合并。
有关Git的更多信息,您可以查看免费的在线Pro Git书籍或本精巧的精简指南 。
翻译自: https://www.javacodegeeks.com/2014/02/a-beginners-guide-to-git-feature-branches.html
git 删除git远程分支