Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

create a temporary branch name with git

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?

like image 689
pseyfert Avatar asked Sep 11 '17 09:09

pseyfert


1 Answers

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
like image 151
max630 Avatar answered Oct 21 '22 23:10

max630