Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如果我签出标记并提交,我的提交会去哪里?_Git - Fatal编程技术网

Git 如果我签出标记并提交,我的提交会去哪里?

Git 如果我签出标记并提交,我的提交会去哪里?,git,Git,在GIT中,如果我签出一个标记,我将得到该标记引用的工作副本,即代码将表示我当时拥有的内容。我说的对吗 现在,如果我这样做,修改我的代码并提交。那要去哪里?它会有点“自动合并”吗?这意味着,如果我推我的提交,克隆回购协议的人也会从标记中得到我所做的修复?或者,如果我切换回master,是否可以在那里修改代码?提交仍然只存储在本地。只有您有对修改版本的引用。如果您想让其他人使用它,您还必须将代码的git-push推送到给定的分支 您的提交是特定于分支的,这意味着如果您在提交后更改分支,您的更改将不

在GIT中,如果我签出一个标记,我将得到该标记引用的工作副本,即代码将表示我当时拥有的内容。我说的对吗


现在,如果我这样做,修改我的代码并提交。那要去哪里?它会有点“自动合并”吗?这意味着,如果我推我的提交,克隆回购协议的人也会从标记中得到我所做的修复?或者,如果我切换回master,是否可以在那里修改代码?

提交仍然只存储在本地。只有您有对修改版本的引用。如果您想让其他人使用它,您还必须将代码的
git-push
推送到给定的分支

您的提交是特定于分支的,这意味着如果您在提交后更改分支,您的更改将不会继续。但是,当您更改回分支时,提交仍将存在。

它不会“自动合并”。它存储在存储库中,由HEAD直接引用。通常,引用头(在.git中的小文件,名为HEAD)包含分支的名称,每次提交时都会更新顶级提交引用。在你的情况下,这是一个所谓的“分离头”


您始终可以将分离的头保存在真实的分支引用中:
git branch something
。或者只是签出另一个分支并忘记提交,它们最终将被清理。

是的,我知道我必须推动它。但是,当我这样做的时候,它会去哪里?假设我按下“遥控器/原点/主控器”。这将在那里合并?好的,如果我从一个标记签出,我应该对一个新的分支签出。然后使用我的代码,然后将其合并回orgin/master,然后推送它。否则,修复程序将无法继续执行。@code-gijoe-Right,您的代码只会推送到上游配置的任何位置,或推送到指定的任何分支。如果您向一个分支推进,您的代码将仅在该分支上可用。如果您希望主控中的更改可用,则需要向主控推进,或像您提到的那样合并更改。@code gijoe“remotes/origin/master”不是您要推进的内容。它是本地存储库中的一个标记,用于表示远程存储库中名为“master”的分支的位置,该分支在本地(同样)配置中由“origin”标识。所以要回答您的问题:它将转到远程存储库。如果远程“主机”在您拉取和修改后没有更改,它将被更新为指向您的提交。否则,
推送
将中止,并出现一个错误,描述问题fwiw,您可以将其推送到本地存储库中。这没有多大意义,因为只需运行
git update ref
就可以更容易地更新本地引用,但这当然是可能的:
git push。标题:foo