まだまだ試行錯誤中ですが。。
キレイにGitをつかって開発しようとするとこんな感じ??
イメージとしては master は本番稼働として管理して、そこから派生する開発用のdevブランチがあって、そこからさらにチケットごとにブランチ(下記の例でdev_#50 とか)が作成され、チケットの対応が完了したらdevブランチにマージされていく、、、ってイメージ。
$ git clone https://github.com/xxxxxx/helloworld.git $ cd helloworld $ git checkout -t origin/dev <-リモートからのBranchの作成と移動 Branch dev set up to track remote branch dev from origin. Switched to a new branch 'dev' $ git branch * dev master $ git checkout -b dev_#50 <- チケット番号のイメージ。devからのブランチの作成と移動 Switched to a new branch 'dev_#50' $ git branch dev * dev_#50 master
devから派生したチケット番号#50用のブランチが作成できました。
$ git checkout -b dev_#50_spike $ git branch dev dev_#50 * dev_#50_spike master
開発はここで進めていきます。全体に反映されたくないようなコミットはココにやっていきます(とりあえずコミット!とかね)。。最終的に対応が完了したら、dev_#50にコミットをマージします。
$ git checkout dev_#50 ←移動して $ git merge --squash dev_#50_spike
dev_#50_spikeで作業していた内容が、まるっと dev_#50にマージされました。。 あとはこれらをコミットするときにちゃんとコメントを書いてコミットすればプッシュできるような履歴が残せますね!
そしてリモートのdev_#50へpushして、そこからdevに対してプルリクエストを行い、devへマージしてもらいます。
# さらにいえば、dev_#50にdevの直近の修正をマージして*1プルリクエストが望ましい。。
git branch dev_#50 git merge dev
こうやって、devでのコミットをdev_#50へ反映させます。
この記事は
現在のアクセス:4090