$30 off During Our Annual Pro Sale. View Details »

Git 入門(2014/1/10 社内勉強会)

Git 入門(2014/1/10 社内勉強会)

社内で SVN が利用されていたなかで、いずれ git へ移行するために勉強してみようという趣旨での発表でした。現在の社内標準VCSは git であり、git-svn を利用する必要もなくなりました。

Yoko TAMADA

January 10, 2014
Tweet

More Decks by Yoko TAMADA

Other Decks in Programming

Transcript

  1. Agenda バージョン管理システム いろいろ Git の学習 Git の設定(Tips) git-svn 使ってみた GUI

    で git 書いていて気づく、 サーバ側の話はほとんどわかってない… リポジトリ?ホスティングサ(ry -----------------------------
  2. Git の学習:入門編 まずはここから! サルでもわかるGit入門
 http://www.backlog.jp/git-guide/ 『入門git』ーオーム社
 Travis Swicegood 著・でびあんぐる 訳

    便利なチートシート ※オンライン Git Cheatsheet
 http://ndpsoftware.com/git-cheatsheet.html -------*---------------------
  3. Git の学習:その他 Windows 環境への導入、どの方法が一番いいのか よくわからない… Windows ユーザ向け Git 入門 -

    CodeZine
 http://codezine.jp/article/corner/479
  2013年10月頃の連載。まとまってて良さそう
 ---------*-------------------
  4. Git の学習:合わせて読みたい いつやるの? git入門
 http://www.slideshare.net/matsukaz/git-17499005
  仕組みから丁寧に説明あり! こわくない Git
 http://www.slideshare.net/kotas/git-15276118 デザイナのためのGit入門


    http://www.slideshare.net/dsuket/git-16343460 GitHubを使ったプログラマとデザイナーのイテ レーティブな開発フロー
 http://bit.ly/1euxdZI
  Git の学習とはちょっと違いますが! ----------*------------------
  5. ※ローカルでバージョン管理するだけなら (Macは最初からgitコマンド入ってますよ) 例:利用中のフォルダをgitで管理する $ cd path/to/work $ git init #

    git管理ファイルを作成 $ git add . # すべてのファイルをINDEXに追加する $ git status # INDEXの状態を見てみよう $ git commit -m "gitでバージョン管理始めます!" $ git log # コミットログを確認 $ git status # INDEXの状態をもう一度見てみる -----------*-----------------
  6. Git の設定:これだけはやっとけ編 ユーザ情報の設定 $ git config --global user.name "Yoko TAMADA"

    $ git config --global user.email [email protected] 設定しておかないとコミットのたびに懇切丁寧な
 設定方法が表示されます。 --------------*--------------
  7. Git の設定:これだけはやっとけ編 git merge の設定(--no-ff) # master 上で git merge

    するときは常に --no-ff $ git config branch.master.mergeoptions "--no-ff" # git merge するときは常に --no-ff $ git config --global merge.ff false fast-forword 状態でも必ずマージコミットを残す。
 参考:図で分かるgit-mergeの--ff, --no-ff, --squashの違い ---------------*-------------
  8. Git の設定:これだけはやっとけ編 git push の挙動(git-svn では関係ない) $ git config --global

    push.default matching # or $ git config --global push.default simple 同期先(リモート)にあるブランチと、ローカルブランチの upstream が一致していたら push できる(simple)、等
 参考:gitのpush.defaultに関するノウハウ ----------------*------------
  9. Git の設定:これだけはやっとけ編 除外ファイル # .gitignore ファイルを作成して除外条件を記述する # global に設定したい場合は以下のように、 #

    global 用の .gitignore ファイル名を指定する $ git config --global core.excludefile "~/.gitignore" igonore設定まえにうっかりINDEXに登録(add)してしまっ た場合は「INDEXから削除する」操作が必要になります。
 (ファイルを削除してコミット、ではignoreにならない) -----------------*-----------
  10. Git の設定:これだけはやっとけ編 日本語ファイルを扱うために # UTF8-MAC対策(濁点などを正しく判断させる) $ git config --global core.precomposeunicode

    true # git コマンドでファイル名が数値コード化されないように $ git config --global core.quotepath false # git用 GUI ツールのデフォルトエンコーディング設定 $ git config --global gui.encoding utf-8 内部エンコーディングがUTF-8で揃っていれば(一応)大丈夫。
 Windowsでも最新のmsysgitはUTF-8対応しているので安心。 ------------------*----------
  11. Git の設定:便利だよ編 設定ファイルの include $ git config --global include.path "~/.gitconfig.local"

    たとえば dotfile をリポジトリで管理している場合に、環境ごとに 変わる config は外出ししてリポジトリから除外しておく、等できる。 --------------------*--------
  12. Git の設定:便利だよ編 alias 設定 [alias] co = checkout ch =

    checkout st = status br = branch ls = log --oneline --color -n 10 la = log --oneline --decorate --color -n 10 ll = log --decorate --color -n 5 lg = log --oneline --graph --color -n 10 logc = log --color logg = log --oneline --graph --color sts = status -s git のサブコマンド(add とか log とか)の alias が書けます。
 ↑は自分の設定内容より。ログ系いろいろ(*ノω・*)テヘ ---------------------*-------
  13. git-svn 使ってみた 所感 ローカル環境は完全に git!(∩´∀`)∩ワーイ
 リモートと関係したい時だけ git-svn を使う。 観測範囲=自分ONLYな現時点では特に問題なし。 


    SVN側のブランチルールはこれまで通りとしてい る。 ただし(SVNの)ブランチでの作業しか実施できて いないので、
 今後 trunk に merge して他の人がそれを取得 してゴニョゴニョ…となっていったときに問題が 爆発する可能性がなきにしもあらず…(gkbr ------------------------*----
  14. git-svn 使ってみた やったこと@SocialPlus ※別途メモを共有します リモート(SVN リポジトリ)からローカルに
 git svn clone を使ってバージョン管理情報を
 写しとる →

    30分くらい git で好きに作業する。
 ただし先の記事を参考にいろいろ気をつける。
 あとで SVN リポジトリが壊れませんように…(-人-)ナムナム git の作業ブランチ
 →(SVN のブランチを示すブランチに)マージ 
 → push の代わりに svn dcommit を使って
  リモート(SVN)に同期する。 -------------------------*---
  15. GUI で Git Atlassian SourceTree http://www.sourcetreeapp.com/ Mac OS 10.6+, Windows

    7+ Git と Mercurial 対応 日本語化されているし、
 日本語ファイル名も問題なし 指定フォルダ配下のリポジトリを自動検出 リモートの変更を追跡・通知してくれる Mac と Windows でほぼ同じように使える ---------------------------*-
  16. GUI で Git TortoiseGit ver.1.8.6.0 http://code.google.com/p/tortoisegit/ msysgit 1.7.10+ も必要 Windows環境専用、日本語化もできる

    エクスプローラから直接、
 右クリック(コンテキストメニュー)で操作 msysgit 1.7.10(2012年リリース)から
 Unicode 対応され、日本語ファイル名も
 問題なし(Mac環境との共同開発も大丈夫) TortoiseSVN を使っていれば学習コスト低? ----------------------------*