git本地分支有什么用?

为什么git要有本地分支和远程分支?

难道不能始终保持本地和远程分支一样么?

我如果在本地创建了一个分支branch1,这个分支可以和远程的master分支关联嘛?

阅读 10.7k
4 个回答

我觉的你对远程分支和本地分支的理解没什么问题,只是对 git 或者版本控制工具有一些误解。

版本控制工具的诞生,并不单单是为了备份而诞生的,它更多是为了方便多人协作

从这个角度上来看的话,你可以这么理解:

  • 远端主分支(比如 origin/master):是为了与多人协作存在的,同时也是一个项目的公共代码仓库
  • 本地主分支(比如 master):是为了与远端公共分支保持同步而存在的,这和你的理解一致,就是理想情况下,它应该和远端保持一致
  • 远端副分支(比如 origin/develop 或者 origin/feature-xxx):是为了像公共分支合并代码存在的,同时也兼顾一定的协作职能
  • 本地副分支(比如 develop 或者 feature-xxx):单存是为了个人开发方便,因为你可能会同时开发多项功能,而多项功能的 codebase 缺是相同的

如果本地和远程一样了,那写错了怎么办,全删了重写吗

你本地分支开发完了肯定要push到远端啊,你有点混淆远程分支和生产环境的分支概念,远端仓库中已有的分支均可称为远程分支,你本地分支是可以选择跟踪哪一个远程分支的
另外,一般认为master是生产环境的稳定分支,我们平时进行一个新版本的迭代,正常操作就是从远程master拉下一新分支(new_name),在这个分支上写这个版本的代码,然后经过测试(当然也可以设计开发环境的dev分支),没问题了再merge到远端master分支发布代码,你所说的关联远程master分支这个说法表达的不清楚。

默认主分支master,按照实际开发会新建dev分支,prod分支等
本地新建的branch1分支肯定是可以和远程master分支关联的
步骤:

  1. git checkout branch1切换到branch1分支
  2. git remote add origin [远程仓库地址] 连接远程地址
  3. git push origin branch1:master 本地branch1分支推送到master分支
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进