有没有一种方法可以在git命令中缩短分支名称?

3

当我处理大型项目时,我使用较长的分支名称,例如 dev / username / PROJECT-JIRANUM_some_description 。 能够做到这一点会很酷:

git branch -D STH(xxxx)

STH()是一些语法,可以使用类似于全局匹配分支名称的语法(因此xxxx可以是包含在分支名称中的JIRA号码)。如果存在歧义,git将通知并中止命令。

目前是否有类似的功能?我找不到任何相关信息。


3
大多数Shell都支持用Tab键补全Git分支名称,可以尝试在输入分支名称时按两次Tab键。 - Ferrybig
1
你可以将分支重命名为更短的名称。 - poke
@ferrybig:这对我来说没有帮助,因为在同一个项目中有许多分支,甚至JIRA号码也会重复。因此,我需要多次进行tab->写sth->tab等过程,而从分支名称的末尾给出一些唯一的部分就可以解决问题。 - tkleczek
@poke:当你在整个项目中有特定的命名约定时,这是不可能的。 - tkleczek
但是分支名称仅在本地有效。您可以在本地存储库中随意命名它们,而不会影响其他共享存储库。 - poke
3个回答

2
我建议使用zshprezto,因为它可以提供分支名称自动完成功能: (每次按下tab键时都会出现'...'以进行分支名称的自动完成) enter image description here 如果你选择这条路线,以下是我启用的prezto模块列表(在~/.zpreztorc中):
# Set the Prezto modules to load (browse modules).
# The order matters.
zstyle ':prezto:load' pmodule \
  'environment' \
  'terminal' \
  'editor' \
  'history' \
  'archive' \
  'directory' \
  'spectrum' \
  'utility' \
  'completion' \
  'ssh' \
  'git' \
  'history-substring-search' \
  'prompt'

我认为(就你所需的而言)最重要的是实用性、完整性和 Git。


这正是我正在寻找的。可悲的是,似乎没有Bash的等效物,但也许这会鼓励我切换shell。 此外,我正在Windows上工作,这使事情变得有点困难。 - tkleczek
哦,是的,请花几天时间使用 Zsh (+Prezto),相信我,您不会回头!就我而言,在 Windows 的 Cygwin 上愉快地使用 zsh,并且几乎没有任何问题(仅当使用 prezto 中特定的 PROMPT 主题时,某些字符无法显示,但这并不是问题)。让我有动力去使用 zsh 的一件事情是它可以轻松同步多个会话中的历史记录,这在 bash 中只能通过 hack 来实现!还有许多超酷的东西,例如 https://github.com/zsh-users/zsh-history-substring-search !! - Ashutosh Jindal

0

我的建议是将你的分支重命名为短而易于记忆的名称,例如 git branch -m <oldname> <newname>

否则,如果你还没有启用 git 自动补全功能,建议你启用。请参考 git http://code-worrier.com/blog/autocomplete-git/。这样你就可以使用 Tab 键来自动完成你的分支名称。


不幸的是,autocomplete-git 的工作方式类似于普通的自动完成,它没有我在问题中描述的特征。 - tkleczek

0

由于git分支实际上是可移动标签,因此在本地,您可以根据自己的喜好对它们进行命名。唯一真正需要的是在将更改推回中央存储库时遵循项目约定。为了方便起见,您可以配置特定分支的获取和推送设置(检查那些branch.<name>....设置),以便在fetchmergepush时自动映射您的分支。


这样针对每个分支进行配置似乎非常不方便。 - tkleczek
如果您有一个给定的命名约定,那么很可能您有一个规则来简化、自动重写分支名称。因此,您可以为所有远程分支设置一个单一的重写规则。 - user3159253

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接