在针对特定的跟踪问题进行补丁修复时,我们的工作流程如下所示:
1. git checkout patch; git pull upstream patch; # make sure we're up-to-date
2. git checkout -b issue-435-db-integrity-exception
3. # code some awesome
4. git commit -am "Fixes issue #435"
5. git push -u origin issue-435-db-integrity-exception
origin/435
然后我们从to打开一个拉取请求upstream/patch
,以便可以在 GitHub/Bitbucket 上进行代码审查。然后我们从第 1 步重新开始。
但是,虽然这听起来有点啰嗦,但如果我们不必显式命名我们要创建的远程分支,那就太好了:
git push -u origin issue-435-db-integrity-exception
重新输入那个分支名称并不是很有趣,而且我不同意将其更改为 just435
或更紧凑的名称。
有没有办法(1)强制 Git 将当前分支推送到一个类似命名的分支,如果有必要创建它而不显式命名它?不是全球性的,只是一种现场标志。
或者,是否可以 (2) 访问 Git 别名中的当前分支,并编写如下内容:
[alias]
pnew = push -u origin $(git symbolic-ref --short HEAD)
(但这不起作用 - 它认为该--short
选项适用于push
)