最近,有一个分支名为"回归";我不小心做出了";回归";相反
因为变化相对较小,我决定只写下它们是什么,并完全重置我的本地州,该州现在既没有分支。
我想删除远程分支";回归";而不删除";回归";在这个过程中。
我很担心,如果我只是做";git-push-d原点回归";我会不小心删除";回归";还有,因为我的本地Git似乎对哪个是哪个非常困惑。
我如何确保不会发生这种情况,并且只删除正确的一个?
我看到了这篇文章,但它实际上跳过了不正确分支的删除步骤,所以我不确定这一部分。
我有这两个分支的散列,但如果可能的话,我无法找到如何在此基础上删除一个分支。
分支映射到磁盘上存储在.git
目录下的文件。如果您有一个不区分大小写的文件系统(Windows、MacOS(,则不能有两个名称仅大小写不同的分支。
然而,在Linux下,文件系统是区分大小写的,这意味着两个文件可以存在于同一位置,并且它们的名称只能根据大小写而不同。这意味着,例如,托管在Linux上的Github,拥有名为xyz
和XYZ
的分支没有问题,并且您可以安全地引用名为XYZ
的分支,并确保不会无意中影响远程分支xyz
。
如果您正在使用区分大小写的文件系统推送某个位置,则可以安全地运行git push origin :Regression
,并确保不会影响regression
分支。
由于您知道最终分支要指向的提交哈希,一种方法是简单地删除两个分支:
- 在相关提交处创建一个新分支,例如
git branch regression-backup abc123def
,其中abc123def
是提交哈希 - 使用
git push -d origin Regression
删除 - 如果这删除了两个分支,只需使用
git branch regression regression-backup
重新创建正确的分支,并将其推送到远程