用git创建一个临时分支名称

pse*_*ert 5 git shell temporary

此问题略相关,我想在shell脚本中使用一个临时分支。

有点像:

cd $(git rev-parse --show-toplevel) &&
git subtree split --prefix=some_subfolder -b temp &&
git push my_remote temp:publication_branch -f
Run Code Online (Sandbox Code Playgroud)

现在,我不确定如果分支temp已经存在,该怎么办,无论如何,我都不希望结果my_remote/publication_branch依赖于此。而且我也不想修改分支temp(假设我有不相关的东西)。充其量,我也会在最后进行清理

cd $(git rev-parse --show-toplevel) &&
git subtree split --prefix=some_subfolder -b temp &&
git push my_remote temp:publication_branch -f
git branch -D temp
Run Code Online (Sandbox Code Playgroud)

因此,我正在寻找一种创建尚不存在的临时分支名称的方法,类似于mktemp?是否有可以创建临时分支名称的git命令?

max*_*630 3

对于此特定任务,您可以使用不带 的 split -b,通过使用此(来自其手册):

成功分割后,单个提交 ID 会打印到 stdout。这对应于新创建的树的 HEAD,您可以根据需要对其进行操作。

所以

split_head=`git subtree split --prefix=some_subfolder`
git push my_remote "$split_head":publication_branch -f
Run Code Online (Sandbox Code Playgroud)