分支和提交之间有什么区别

时间:2017-05-05 20:53:23

标签: git github netbeans version-control

我从GitHub的基础开始,因为我必须以程序员的身份工作,其他人告诉我在Netbeans中创建/克隆目录以及提交/分支项目;但我并不完全理解commit和branch之间的区别。就像你在这里看到的那样:

https://guides.github.com/activities/hello-world/

“默认情况下,您的存储库有一个名为master的分支,它被认为是权威分支。我们使用分支进行实验并在将它们提交给master之前进行编辑。

当您从主分支创建分支时,您正在制作主分支的副本或快照,就像在那个时间点那样。如果其他人在您的分支机构工作时对主分支进行了更改,则可以提取这些更新。“

我知道我有一个名为master的分支,它是权威的分支,我可以在Netbeans中创建其他分支,点击我的Netbeans项目。我知道如何在Netbeans中这样做,但我不明白分支和提交之间的区别。我可以使用分支在代码中进行一些实验或更改,以便在将项目与主服务器合并之前查看结果。也许我正在处理我的代码中的一些更改,但是我无法得到我想要的内容,这是进行分支时进行一些测试以查看结果的最佳时刻。

我无法理解这一点: “如果其他人在您的分支机构工作时对主分支进行了更改,则可以提取这些更新。”

我不能读一本关于Git的书,因为我没有时间去做,但是我对Git(Github)有些问题。

我的老师在工作中向我解释说你必须在提交之前做分支。

2 个答案:

答案 0 :(得分:1)

嗯......提交意味着"创建修订版",通常在分支上(但在git上不是强制性的)。分支(在git中)只是修订的指针。当人们谈论"分支"他们的意思是创建分支,然后合并/ rebase /无论它们混合来自不同的人/分支的代码。了解在分布式VCS上,当人们在不同的存储库上工作时,始终不同的分支上工作是非常重要的(即使他们正在分支机构上工作)具有相同的名称)。

答案 1 :(得分:1)

git的一个想法是拥有一个稳定版本(分支),其中f.e。您可以向您的客户和其他人展示您将在哪里试验新功能,应用测试等。

当您要为应用程序实现新功能时,通常会为该功能/一系列功能创建新分支。然后你努力工作,让它发光。 合并后,将(主要)分支显示给您的客户。
enter image description here 在这张图片中,每个红点都是提交(更改)到存储库,您在开发过程中逐个更新应用程序。
虽然图片上的每个新行级别都是分支。最上面一个是主要,而另外两个是新功能。您可以逐个进行提交(在主分支中也可以),只要代码更改即可。最后,在您完成新功能的处理后,您将合并到主分支(也会在图片上显示 - 查看主分支的第5点) 。

简单来说,您应用于应用程序的每个更改都称为提交。如果您使用桌面UI Git-client,如GitKraken,Tower,GitHub DeskTop等(此处更大的列表https://git-scm.com/downloads/guis),您通常会在之后将提交提交到本地存储库>提交到本地存储库已经让你推送 cll将其更改到远程存储库(可能有很多本地提交)。