create a temporary branch name with git

2019-06-21 13:06发布

Slightly related to this question I'd like to work with a temporary branch in a shell script.

somewhat along the lines of :

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

Now, I'm not sure what this will do if the branch temp already exists, in any case I don't want the result on my_remote/publication_branch to depend on that. And I also don't want to modify the branch temp (assuming I have it for something unrelated). At best, I would also do a cleanup at the end

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

So what I'm looking for is a way to create a temporary branch name that doesn't exist yet, similar to mktemp? Is there a git command which can create a temporary branch name?

1条回答
我只想做你的唯一
2楼-- · 2019-06-21 13:56

For this specific task you can use split without -b, by using this (from its manual):

After splitting successfully, a single commit id is printed to stdout. This corresponds to the HEAD of the newly created tree, which you can manipulate however you want.

So

split_head=`git subtree split --prefix=some_subfolder`
git push my_remote "$split_head":publication_branch -f
查看更多
登录 后发表回答