非エンジニアにgitをレクチャーする
- レクチャーしたいターゲット
・ エンジニアではない(エンジニアは自分でちゃんと勉強しましょう)
・デザイナーさん等、ローカルでwebアプリケーションを確認しながらマークアップ編集したり、画像を追加したりする感じで、あまりロジック部分はいじらない
・svnは使ったことがある(コマンドラインからだとうれしいけれど、GUIでも)
・コマンドラインはあまり使ったことがなくてもOK
- 推奨環境
・gitはコマンドラインから使ってもらう
・チームでのブランチの管理はきちんと(masterに直接コミットしないルール/ターゲットがデザイナーさんならデザイナーさん専用のブランチがあり、定期的にエンジニアがmergeしてあげる等)
・基本的にターゲットが見るブランチは1つ
- gitの説明
・svnが少し複雑になったものです(svnとの差分は必要に応じて説明)
- 導入
・公開鍵作成、登録、clone、ブランチチェックアウトまではやってあげるといいかも
- svnのアップデートにあたることをやってもらう
$ git pull origin ブランチ名
- conflictって出た
・駆けつけてなんとかしてあげましょう
・どうしても頻発が免れない状況なら、rebaseをレクチャー
- 前コミットした状態に戻してもらう
・いろいろ試しに編集してよくわからなくなってしまったので、前コミットした状態に戻したいという場合
$ git reset --hard
- みんなのコミットログを見てもらう
$ git log
変更した中身までみたい場合は
$ git log -p
- svnのコミットにあたることをやってもらう
・ まず、編集や追加をしたファイルを確認してもらいます
$ git status
編集したファイル、追加したファイルの一覧が出ると思います
「あれ?これ編集した覚えないぞ?」
というのがあったら、
$ git diff ファイル名
で差分を確認(すべてのファイルで差分は確認してもらいたいけど、それは必要に応じてでいいかなと)
( getApplication , getApplicationDev ) where - import Import import Settings + import Yesod.Auth import Yesod.Default.Config
+が追加、-が削除行です
改行が入り込んだ等で、もとの状態に戻したい場合、
$ git checkout HEAD ファイル名
でもとに戻してもらいます(ファイルを直接編集してもいいけど)
・ いざコミット
まず、追加や変更のあったファイルを、コミット候補に追加します
$ git add ファイル名
次にコミット
$ git commit -m "コミットメッセージ"
続けて、サーバーに変更を送信
$ git push origin ブランチ名
- その他
・開発側がガンガン変更するブランチとターゲット用ブランチは分けて、定期的にmergeするのがいいかと思います。mergeしたらターゲットにpullしてもらう
・pushするとき、ブランチ名に絶対に:が入らないように注意してもらう
エンジニアは本渡して勝手に勉強してもらって、後はペアプロでやればおkだと思っていますが、
エンジニア以外にレクチャーするのは初の試みなので書いてみました
なにかアドバイス等ありましたら教えてほしいです