[[TODO]]

*概要 [#r124b5b5]
-バージョン管理、プルリク、gitlab、チケットなど
-コードが先。バージョン管理は後。
--人はバージョン管理をするためにコードを書いているのではなくてコードを書くためにバージョン管理をしている。
--Gitを最初から完璧に運用する必要はなくて、「とりあえずひたすらmasterにコミットする」という単純なルールから始めて、なんか問題が発生したら、詳しい人がいじって修正すればいい
--最小限のルールで運用せよ

*下位ページ [#a7e6818d]
-[[バグの上げ方]]

*プラットフォーム [#n728a298]
**チケット [#k9d35232]
-Redmine
--人数無制限だけど、自分でサーバを建てないといけない
-2016年現在、Redmineを使わないと人数制限が無かったり、いろいろダメ。

**バージョン管理 [#n5778dfb]
-gitlab
--マージリクができるので、きちんとした開発フローができる。
--人数制限なくレポジトリを変更できるので嬉しい
-github
--プルリクできるんだっけ?


**開発手順 [#a2e05978]
-[[すごくわかりやすい手順>http://d.hatena.ne.jp/hnw/20110528]]

-手順
--GitHub内部で、https://github.com/octocat/Spoon-Knifeをfork
--できたforkをローカルにclone

 # 取ってくる
 git clone git@github.com:hnw/Spoon-Knife.git
 cd Spoon-Knife
 
 # masterで作業するとウルトラギルティなので、自分用ブランチを作る
 git checkout -b myFeatureSpike
 
 # 作業する
 # 作業1
 git commit -a -m '作業1'
 # 作業2
 git commit -a -m '作業2'
 
 # コミットを1つにまとめないと、マージ担当者に怒られるのでまとめる
 git checkout myFeatureSpike
 git checkout -b myFeature
 git rebase -i master
 
 # 作業中にmasterが変わってる可能性があるので、確認する
 # 一回だけやる
 # git remote add upstream git://github.com/octocat/Spoon-Knife.git
 git stash
 git checkout master
 git pull upstream master # 同期
 git checkout myFeatureSpike
 git rebase master myFeatureSpike
 git push origin master
 git push -f origin myFeatureSpike
 git checkout myFeatureSpike
 git stash pop
 # 最後のコミットのpickをsquash = ぺちゃんこにする、にして保存
 
 # myFeatureをgithubにpush
 git push origin myFeature
 
--最後、GitHubからpull requestする





*雑多 [#m6d9e64f]
-http://simplearchitect.hatenablog.com/entry/2016/09/24/113117
Gitの正しい運用方法を学びたい

仕事ではSVNの進化系みたいなの使っていて,やはり人類に優しいのはSVN的なものだと思ってやまない.ブランチ切って数ヶ月開発とかどう考えてもマージ絶対大変だし,細かな単位でマージするならmasterに直接pushでよくない?主にgitのコマンドが非直感的なのが不満ではあるけど.
コードレビュー,皆が自分のタスクよりも優先的にやってくれるので時間かかる感覚はないし,間違いを見つけられるだけではなく,知識(バグを減らす書き方とか,C++11ではこう書くのが良いとか,社内の新しいスタイルとか)を共有して議論でき学べる場でもあるのでとても良いですよ

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS