Git存储库如何与开发和主分支一起工作?
我是Git新手,这真的让人困惑。我想开始在Git上开发一个web应用程序,到目前为止,我一直在处理让我落后的问题 我读过一篇关于Git成功的分支模型的帖子。我真的对建立类似的东西很感兴趣 它表示存储库有两个主要分支,分别称为Git存储库如何与开发和主分支一起工作?,git,Git,我是Git新手,这真的让人困惑。我想开始在Git上开发一个web应用程序,到目前为止,我一直在处理让我落后的问题 我读过一篇关于Git成功的分支模型的帖子。我真的对建立类似的东西很感兴趣 它表示存储库有两个主要分支,分别称为master和develope。所以我继续创建了一个存储库。然而,令我惊讶的是,存储库本身是默认的master分支。我应该如何创建一个develope分支?我是否在master分支的父级中创建它?这意味着develope分支位于存储库之外 我是不是完全错了?我是否忽略了在主分
master
和develope
。所以我继续创建了一个存储库。然而,令我惊讶的是,存储库本身是默认的master
分支。我应该如何创建一个develope
分支?我是否在master
分支的父级中创建它?这意味着develope
分支位于存储库之外
我是不是完全错了?我是否忽略了在主分支内创建两个分支的事实?默认情况下会创建
主分支;您可以将其视为其他VCS系统中的“主干”。nvie分支模型中使用的develop
分支来自master
,可能来自第一次提交
develope
分支是master
的正常分支
git branch develope
创建develope
分支
git init
A [master]
在nvie分支模型中,所有的开发工作都在develope
分支上完成,只有在代码准备发布时才合并到master并在那里标记。许多人使用的典型工作流只是将所有开发提交给主控
,并在代码准备发布时进行标记。分支不是目录。它是一个随提交一起移动的提交标签,就像标记是一个随特定提交一起移动的提交标签一样。在master
分支中不会有任何内容,相反master
和developer
最初都会标记相同的提交
创建开发分支,如下所示:
git branch develop
澄清一下:假设您有初始提交A。它将被标记为master
分支
git init
A [master]
如果进行新的提交B,则分支标签将移动:
git commit -a
A -> B [master]
如果随后分支到开发
,则B也将获得新标签:
git branch develop
A -> B [master, develop]
如果您在develope
上提交,它将移动,但master
不会:
git checkout develop
git commit -a
A -> B [master] -> C [develop]
如果现在在主机上提交
,则树将分叉:
git checkout master
git commit -a
A -> B -> C [develop]
+--> D [master]
同时,您的目录中只有当前提交的内容。切换分支,目录内容也会更改。如果我的主目录中有新的更改,然后是git checkout develop
,那么当我切换到分支时,我未提交的更改会丢失吗?很抱歉,我是svn用户。@Harrison:如果您有未提交的更改,您应该不能git签出
。你应该在这之前git reset
,git commit
或git stash
我会调查的,谢谢!我只是习惯于在我的WC中看到分支
目录,同时编辑分支和主干。