在 GIT 中,如果我签出一个标签,我将获得该标签引用的工作副本,即代码将代表我当时拥有的内容。我说的对吗?
现在,如果我这样做,并修改我的代码并提交。该提交将在哪里进行?它会有点“自动合并”吗?这意味着如果我推送我的提交,克隆存储库的人也会从标签中获得我所做的修复?或者,如果我切换回master,我在那里可以修改代码吗?
在 GIT 中,如果我签出一个标签,我将获得该标签引用的工作副本,即代码将代表我当时拥有的内容。我说的对吗?
现在,如果我这样做,并修改我的代码并提交。该提交将在哪里进行?它会有点“自动合并”吗?这意味着如果我推送我的提交,克隆存储库的人也会从标签中获得我所做的修复?或者,如果我切换回master,我在那里可以修改代码吗?
提交仍然只存储在本地。只有您对修改后的版本有参考。如果您想让其他人可以使用它,您还必须对git push
给定的分支执行一段代码。
您的提交是特定于分支的,这意味着如果您在提交后更改分支,您的更改将不会延续。但是,当您更改回分支时,提交仍然存在。
它不会“自动合并”。它存储在存储库中,由 HEAD 直接引用。通常引用 HEAD(.git 中的小文件,名为 HEAD)包含分支的名称,每次提交都会更新顶级提交引用。在您的情况下,它是所谓的“分离的 HEAD”。
您始终可以将分离的 HEAD 保存在真正的分支引用中:git branch something
. 或者只是检查另一个分支并忘记提交,它们最终会被清理掉。