sea*_*308 4 git branch github branching-and-merging git-branch
我在上我的第一个软件工程课。这是我们中的任何人第一次在团队中工作并使用 git 和 github。在课堂上我们的老师告诉我们,您通常应该从 master 分支,在完成新功能后,将其合并回 master。这就是我一直在做的。然而,我组的其他成员没有分支。他们从 github 上的 master 拉到他们的本地机器,进行编辑,在他们的本地 master 上完成他们的功能,然后推送到 github 上的 master。
我试图说服他们分支,但现在我想到它,我发现它更令人困惑。有人告诉我,分支的目的是制作代码的副本,而不必担心因意外放置无法运行的代码而破坏主节点。
但是他们的本地master不就是一个分支本身吗?当他们进行编辑时,他们不会更改 github 上的 master,因此其他人可以自由地从 github 中提取工作代码。然后它们合并,类似于分支。
我很困惑,如果他们正在做的事情似乎有效,我们为什么要分支?
谢谢!
但是他们的本地master不就是一个分支本身吗?
是的!
我很困惑,如果他们正在做的事情似乎有效,我们为什么要分支?
这取决于您的工作流程。您似乎在描述的是这个工作流程:
Alice 创建一个alice跟踪的分支,masterBob 创建一个bob也跟踪的分支master。Alice 始终致力于alice并且 Bob 始终致力于bob。然后,当他们对自己的更改感到满意时,他们会合并到master.
当然,这与 Alice 和 Bob 在当地master分支机构工作几乎没有任何区别!
当同一个人同时处理多个功能时,通常会出现问题。例如
Alice 正在工作Feature A,Bob 正在工作Feature B。Alice 已经完成了一半,Feature A并在alice. 然而,Feature A实现起来非常困难,所以 Alice 决定她应该继续工作,Feature C并在 上进行一些提交alice。鲍勃完成Feature B并决定他要铲球Feature A,因此alice进入bob。
鲍勃完成后,Feature A他想合并bob到master. 但是,bob现在包含Feature A,Feature B和 的部分Feature C,但Feature C还没有准备好合并!很容易看出,这样的工作流程会导致许多令人困惑的合并冲突。
诀窍在于,与其拥有个人分支,不如拥有功能分支。Alice 应该有一个Feature Aand的分支Feature C,Bob 应该有一个Feature Band的分支Feature A。这样他们就可以在不同的功能上工作而不会踩到对方的脚趾。
| 归档时间: |
|
| 查看次数: |
1716 次 |
| 最近记录: |