由于我是 git 的新手,我不知道将分支名称设置为小写是一个好习惯,所以我最终将其设置为大写。所以现在我正在尝试重命名该分支并尝试了此处建议的内容,但没有成功。
我也尝试过的命令
git branch -m newfeature
git branch -m NEWFEATURE newfeature
Run Code Online (Sandbox Code Playgroud)
当我尝试上述命令时出现的错误是
fatal: A branch named 'newfeature' already exists
Run Code Online (Sandbox Code Playgroud)
两点:
如果您的 Git 存储库位于不区分大小写的文件系统上(例如,Windows 上具有默认设置的 NTFS 或 MacOS 上的 HFS[+]),则任何将分支重命名为大小写不同版本的尝试都会失败。
原因是 Git 中的(“新鲜”)分支存储为普通文件,这些文件的名称就是它们所代表的分支的名称。在不区分大小写的文件系统上,名称“foo”、“FOO”和“FoO”被视为引用同一个文件,因此如果名称为“WHATEVER”的文件已存在于文件系统中,则不可能创建名为“whatever”的文件。同一目录。
要在使用命令时强制重写分支git branch -m
,您可以使用其大写版本:git branch -M
即使目标分支存在,也会替换它。
回顾一下,重命名分支的最简单方法是使用一些当前未采用的中性名称:
git branch -m temp newfeature
git branch -m newfeature NEWFEATURE
Run Code Online (Sandbox Code Playgroud)
另请注意,如果您只关心已推送的分支的名称,您可以远程重命名它:命令
git push origin WHATEVER:refs/heads/whatever :refs/heads/WHATEVER
Run Code Online (Sandbox Code Playgroud)
将推送本地分支“WHATEVER”以在称为“origin”的远程存储库中创建名为“whatever”的分支,然后删除那里名为“WHATEVER”的分支。
假设“WHATEVER”在本地包含与已经以相同名称推送到“origin”的历史记录相同的历史记录,则该命令甚至不会传输任何数据。
归档时间: |
|
查看次数: |
1829 次 |
最近记录: |