- 追加された行はこの色です。
- 削除された行はこの色です。
#topicpath
----
#contents
まだまだ試行錯誤中ですが。。
キレイにGitをつかって開発しようとするとこんな感じ??
イメージとしては master は本番稼働として管理して、そこから派生する開発用のdevブランチがあって、そこからさらにチケットごとにブランチ(下記の例でdev_#50 とか)が作成され、チケットの対応が完了したらdevブランチにマージされていく、、、ってイメージ。
** 初回やること [#f3ad2b35]
GitHub上では masterとdevというブランチが作成済みという前提で進めます。ちなみに、dev ブランチのGitHubへの作成はたとえば[[GitHub/クローンからプッシュまでの流れ]]をみてみてください。
**GitのCloneと、チケットごとのブランチの作成 [#de37d929]
まずは リモートのdev ブランチのCloneをローカルに作成します。
$ git clone https://github.com/xxxxxx/helloworld.git
$ cd helloworld
$ git checkout -t origin/dev <-リモートからのBranchの作成と移動
$ git log --decorate --oneline
9a6a57c (HEAD -> master, origin/master, origin/dev, origin/HEAD) Initial commit
$ git branch
* master
$ git checkout -t origin/dev <-リモートからのBranchの作成と移動
Branch dev set up to track remote branch dev from origin.
Switched to a new branch 'dev'
$ git log --decorate --oneline
9a6a57c (HEAD -> dev, origin/master, origin/dev, origin/HEAD, master) Initial commit
$ git branch
* dev
master
$ git checkout -b dev_#50 <- チケット番号のイメージ。devからのブランチの作成と移動
ここまでで、devというローカルのブランチが作成・チェックアウトされました。各開発環境で初回やるのはここまでで、チケットを対応する際はつぎからの手順を実施します。
**チケットごとのブランチの作成 [#de37d929]
$ git checkout -b dev_#50 dev <- チケット番号のイメージ。devからのブランチの作成と移動
Switched to a new branch 'dev_#50'
$ git branch
dev
* dev_#50
master
devから派生したチケット番号#50用のブランチが作成できました。
**細かなコミットとかを進めていく使い捨てブランチを作成 [#qff1d031]
$ git checkout -b dev_#50_spike
$ git checkout -b dev_#50_spike dev
$ 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にマージされました。。
あとはこれらをコミットするときにちゃんとコメントを書いてコミットすればプッシュできるような履歴が残せますね!
コミットを他のブランチにまとめる手順は
[[GitHubでコミットをまとめる>GitHub/コミットをまとめる]] に整理してあります。
そしてリモートのdev_#50へpushして、そこからdevに対してプルリクエストを行い、devへマージしてもらいます。
$ git push origin dev_#50
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/xxxxxx/helloworld.git
* [new branch] dev_#50 -> dev_#50
# さらにいえば、dev_#50にdevの直近の修正をマージして((rebaseがいいらしいって話があるけどまだ未調査))プルリクエストが望ましい。。
git branch dev_#50
git merge dev
こうやって、devでのコミットをdev_#50へ反映させます。
こうやって、devでのコミットをdev_#50へ反映させます。このマージのイメージは、[[GitHub/基本]]に整理済みです。
**参考 [#i150b780]
-[[7. merge --squash【チュートリアル3 コミットを書き換えよう!】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ>http://www.backlog.jp/git-guide/stepup/stepup7_7.html]]
-[[GitHubへpull requestする際のベストプラクティス - hnwの日記>http://d.hatena.ne.jp/hnw/20110528]]
-[[7. merge --squash【チュートリアル3 コミットを書き換えよう!】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ>http://www.backlog.jp/git-guide/stepup/stepup7_7.html]]
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}