2017-09-11 5 views
4

と少し関連していますthis questionシェルスクリプトの一時的なブランチで作業したいと思います。gitで一時的なブランチ名を作成

多少の線に沿って:今

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

、私は私が依存する​​に結果をたくない場合には、枝tempがすでに存在する場合、これは何をするかわからないんだけどそれ。また、私はブランチtemp(私はそれが無関係の何かを持っていると仮定して)を変更したくありません。せいぜい、私はまた、それでは私が探していることはmktempに似てまだ存在していない一時的なブランチ名を作成する方法です終わり

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 

をクリーンアップをしますか?一時的なブランチ名を作成できるgitコマンドはありますか?あなたは(そのマニュアルから)これを使用することにより、-bずにスプリットを使用することができ、この特定のタスクのために

+1

私はあなたが本当に名前の衝突の被害妄想している場合は、使用にいくつかの並べ替えのUUIDを持っているつもりが、良い質問の1だと思います。 –

+1

私はgitがこれを行う方法はないと思っていますが、コマンドラインでenvを使ってこのbashの例のような一意のtempブランチを生成することができます: 'git branch temp_'date +%H-%M-%S- %N''(メモ、 '日付...'の部分のバックティックであることを意味します。 –

+0

私はmax630の答えを使用し、インフォーマティックスの共通のパターンに遭遇したというコメントを書き留めます:名前空間を追加するまで管理するのが非常に難しくなります。一意の名前を保証する1つの方法は、*名前*を持たないことです、max630の答えと同じように! – torek

答えて

3

に成功分割した後、単一コミットIDがstdoutに出力されます。これは新しく作成されたツリーのHEADに対応していますが、必要に応じて操作できます。

ので

split_head=`git subtree split --prefix=some_subfolder` 
git push my_remote "$split_head":publication_branch -f 
+0

'git subtree split'の起源ではないブランチ名でスクリプトを作成したいという別のユースケースがあるかもしれませんが、それでも私の現在の問題は非常にうまく解決されています。 – pseyfert

関連する問題