git 将 `main` 和 `master` 视为相同的别名
git alias that treats `main` and `master` the same
我有(除其他外)git 别名:
grm
: git rebase master
grim
: git rebase -i master
整个开发社区正在放弃对默认分支使用 master
,转而使用 main
。 (出于与历史关联有关的原因)
不幸的是,社区并没有统一这样做,而且我经常在项目之间切换,所以我不得不不断编辑我的别名。
有什么方法可以编写别名,以便它与“此存储库中存在的 master
或 main
中的任何一个交互”? (很高兴假设这两个中只有一个在本地存在)
回复:建议的答案。
问题不在于"I as a human don't know which is in use in this repo";通过浏览历史来识别这是微不足道的。这是我的*别名*不知道。
我原以为解决方案会以某种方式“尝试两种选择”,但是使用链接问题直接确定正确答案的解决方案然后使用该答案 也可以。
使用 的答案之一写一个别名来查找正确的分支名称,然后在其他别名中使用它:
# ~/.gitconfig
[alias]
main-branch-name = "!f() { git symbolic-ref refs/remotes/origin/HEAD | sed \"s@^refs/remotes/origin/@@\" ; }; f"
rm = ! git rebase $(git main-branch-name)
我会这样处理这个问题:
git rev-parse main >/dev/null 2>/dev/null && git rebase main || git rebase master
如果有 main
分支使用它否则尝试 master
.
它应该比 git remote show origin
.
的使用更不滞后
我有(除其他外)git 别名:
grm
:git rebase master
grim
:git rebase -i master
整个开发社区正在放弃对默认分支使用 master
,转而使用 main
。 (出于与历史关联有关的原因)
不幸的是,社区并没有统一这样做,而且我经常在项目之间切换,所以我不得不不断编辑我的别名。
有什么方法可以编写别名,以便它与“此存储库中存在的 master
或 main
中的任何一个交互”? (很高兴假设这两个中只有一个在本地存在)
回复:建议的答案。 问题不在于"I as a human don't know which is in use in this repo";通过浏览历史来识别这是微不足道的。这是我的*别名*不知道。
我原以为解决方案会以某种方式“尝试两种选择”,但是使用链接问题直接确定正确答案的解决方案然后使用该答案 也可以。
使用
# ~/.gitconfig
[alias]
main-branch-name = "!f() { git symbolic-ref refs/remotes/origin/HEAD | sed \"s@^refs/remotes/origin/@@\" ; }; f"
rm = ! git rebase $(git main-branch-name)
我会这样处理这个问题:
git rev-parse main >/dev/null 2>/dev/null && git rebase main || git rebase master
如果有 main
分支使用它否则尝试 master
.
它应该比 git remote show origin
.