やりたいこと
複数のブランチの設定を適用した状態でテストを実施したい。目的が異なるため複数ブランチで修正を実施していたが、両方共適用しないと上手くアプリが動かないという状態に陥った。
やりかた
git clone git@github.com:hoge/fuga.git -b dev1 cd fuga git checkout -b dev2 origin/dev2 git merge dev2
checkout -b hoge origin/hoge
でリモートからブランチをcheckout
これでdev1にdev2がマージされる。普段はそれぞれでブランチ切って、GitHub上でマスターにマージするだけだったのでローカルでやるとこんな感じ
作業中のブランチ最新のmasterを反映したいときも git merge
でいける
git merge master
めも
最初、以下コマンドで git clone
してたところ、ずっと他のブランチが見えなくてなんでだろうと思ってた。このコマンドはスクリプトからコピペしてたので注意してなかった
git clone --depth 1 git@github.com:hoge/fuga.git -b dev1
リモートブランチは .git/packed-refs
で定義されている。 —depth
を利用すると、デフォルトで --single-branch
が有効になり、remoteブランチの情報は格納されない。 --no-single-branch
を利用することでリモートブランチの情報が格納される
—depth
は指定したコミット数分だけcloneできる。ダウンロードサイズを減らすことができるのでデプロイなどで利用すると便利
かんそう
普段あんまり複雑な操作をしてないのでたまに変わったことをやろうとすると都度調べてる。まあ何事も勉強ということで。ただしコピペしたコマンドを何も考えずに使っちゃうクセは治す。
さんこう
https://techacademy.jp/magazine/10264
https://kakakakakku.hatenablog.com/entry/2017/03/22/195640