我的一些项目使用"master",另一些项目使用"main",我经常会不小心检出其中一个。最大的问题在于当我在一个使用"main"的项目上,同时还使用了Heroku,而Heroku使用"master"时,git checkout master
看起来是成功的,但却不正常。
有没有一种本地配置方式可以使创建这个分支失败?
我的一些项目使用"master",另一些项目使用"main",我经常会不小心检出其中一个。最大的问题在于当我在一个使用"main"的项目上,同时还使用了Heroku,而Heroku使用"master"时,git checkout master
看起来是成功的,但却不正常。
有没有一种本地配置方式可以使创建这个分支失败?
以下是我在 .git/hooks/post-checkout 中得出的结果
if [ `git branch --show-current` == "master" ]; then
echo "DO NOT USE MASTER"
git checkout main
git branch -d master
fi
git checkout -tb master origin/main; git symbolic-ref refs/heads/{master,main}
命令,现在您的主分支和 main 分支是相同的。 - jthillpost-checkout
钩子,该钩子将防止自动切换到另一个分支,或在检测到您处于“坏”分支时在屏幕上显示足够大的警告;再加上一个pre-push
钩子,它将防止将“坏”分支推送到远程。
两个快速而不太规范的解决方案:
.git/refs/heads
下创建一个空文件,并将该文件设置为只读:# under linux :
touch .git/refs/heads/main
chmod a-rwx .git/refs/heads/main
git pack-refs
时也会保留在那里,但我还没有检查它是否会在所有情况下都保留。
main/dontcreate
的分支git
不允许同时拥有命名为main
和main/something
的分支-- git
仍希望能够创建位于.git/refs/heads
下的文件来表示分支,并且这将创建一个同名的文件和目录。
git
(目前为git v2.33),未来版本可能会发生变化。
main
和master
,而你的问题是不小心检出了错误的分支,那么这个方法对你有帮助吗?(如果这不是你的问题,我可能没有理解你的情况) - mkrieger1.git/refs/heads
目录下创建一个符号链接(或符号引用),将其中一个链接到另一个。这样,无论使用哪个名称,它都将有效地指向同一个分支。 - Jeff Mercado