Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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_Branch - Fatal编程技术网

您可以重复使用已删除的Git分支名称吗?

您可以重复使用已删除的Git分支名称吗?,git,branch,Git,Branch,如果我创建了一个名为“foobar”的Git分支,在其中做一些工作,将它合并回我的开发分支,然后删除foobar分支,我可以在将来的某个时候创建另一个同名的分支“foobar”吗?或者这会混淆Git吗?是的,没有问题。分支名称只适用于人类。Git只关心SHA。在Git中,分支名称只是指向特定提交的指针。向分支添加内容只需将该指针移动到新的提交。删除分支仅仅意味着删除指针。如果您在将来的某个时候重新创建同一个分支,那么您只是在创建一个指向不同提交的新指针 TL;DR:是的,你可以这样做,不,它不会

如果我创建了一个名为“foobar”的Git分支,在其中做一些工作,将它合并回我的开发分支,然后删除foobar分支,我可以在将来的某个时候创建另一个同名的分支“foobar”吗?或者这会混淆Git吗?

是的,没有问题。分支名称只适用于人类。Git只关心SHA。

在Git中,分支名称只是指向特定提交的指针。向分支添加内容只需将该指针移动到新的提交。删除分支仅仅意味着删除指针。如果您在将来的某个时候重新创建同一个分支,那么您只是在创建一个指向不同提交的新指针


TL;DR:是的,你可以这样做,不,它不会混淆Git。

你可以随时重用分支名称,Git不会在意

不过,你很容易混淆自己,所以在这里你应该稍微小心一点。(我凭经验说:-)


还有一个需要考虑的问题:当您通过发布存储库中的提交或从其他人处获取提交来与其他人共享工作时,您通常会通过向他们提供分支名称或查看他们的分支名称来实现这一点。如果您上周让Fred查看您的分支
foobar
,然后您删除了
foobar
,并在本周创建了一个新的和不同的
foobar
,Fred去获取您的
foobar
,您可能也会混淆Fred。

Fred不应该期望分支是不变的。即使它是“同一”分支,它也可能随时在时间线上移动。@dualmon:当然,但他(Fred)很可能期望分支只以“快进”的方式移动。例如,上次他取回时,他的遥控器说,
dualmon/foobar
是commit
1cf97a3
,而这次
dualmon/foobar
的历史中甚至没有
1cf97a3
:这怎么可能?一种方法是,这个foobar与前面的foobar无关。如果每个人都同意这种情况偶尔会发生,那并不都是令人困惑的,但这是一件值得考虑的事情。如果foobar被重设基址,也可能发生这种情况。