狠狠撸

狠狠撸Share a Scribd company logo
30分でサボれる骋颈迟
技術開発G???木村?健
はじめに
? この資料は次の方に効能があります
? Gitを知ってることにしたい技術者各位w
? Gitを使いたくないけど使わないとおこられる
各位w
2
この資料のカバーする範囲
? Gitの簡単な使い方
? =最小限のコマンド運用
? rebaseなどの内容については
触れない
? branch切れるくらいのところ
まで
3
Gitを使いこなすためのヒント
? よくGitを知っている人を見つけて手なづけておこ
う(困った時に くためw)
? gitコマンド実行したときに英語のメッセージが出る
ことがあります。無視してはいけません
? Google先生やGoogle翻訳先生に聞いてください。
ヒントが必ずあります。というか、gitコマンドが
困ってメッセージを出してるケースがほとんどで
す
4
前提条件
? コマンドラインベースの資料になります?
コマンドラインツールは以下から入手可能
? Windows: https://msysgit.github.io/
? Mac: git コマンド(brew あたりでさくっと)
? おそらくSourceTree使うときにも参考になると
思います(つこたことないけど。。。)
5
推薦書籍
? 「アリスとボブのGit入門レッスン」川野辺正博
著?秀和システム
? (ごめん、この本読んで資料作ったw)
6
準備編
? BitBucketあたりで新しいリポジトリが既にある
前提で話を進めます
? リポジトリは権限があればWeb UIでさくっと作
れますので省略
7
公開するとき必要な
ファイルなど
? readme.md
? mark down形式のreadme
? 使い方などを書く
? LICENSE
? ライセンスファイル。配布するときは書く
? GitHubならライセンスをプルダウンから選ぶだけで一発
でライセンスファイルを作ってくれるので るw
8
SVNとの違い
? ローカルとリモートの二つのリポジトリがあります
? ローカルの修正はcommitで
? ローカル→リモートはpushコマンドで
? リモート→ローカルはpullコマンドで
? 番号ではなくハッシュ(SHA1)で管理します
? リビジョンはtagを切ってください
? branchはそういうフォルダがリポジトリ内にできるのではなく、
branchコマンドで切り替える流儀です
9
gitコマンド使えますか?
? まずは git help と打ち込んで、何か出るところ
まで、頑張ってください(何をだw)
? GitHubなどの場合、公開 が必要になります。
これも他のドキュメントで頑張ってください
? まぁあの、使ってる人がいればこの辺は聞けば
いいと思うの
10
メアド設定
? gitの設定をします
? git con?g ?global user.name Ayanokoji
? git con?g ?global user.email a@b.c
? あ、ユーザー名はてきとーで
? メアドは自分のメアドを入れてね?
11
とりあえずgitで
? リモートリポジトリの取得
? git clone URL
? URLはgit/https/sshなどがあります
? gitは高速です
? httpsはgit通さないときに使うと便利ですが、みんなhttpsを
使ってる予感がしますw
? 例:git clone https://kimrin@bitbucket.org/kimrin/unko.git
? プライベートな場合パスワード いてきます。入力してください
12
[重要]回し方
1. git pull
1.1.変更をリモートから貰います
2. git add .
2.1.まずは作ったファイルをaddします?
(.はカレント以下変更のあるファイル全部)
3. git commit -m 心がぴょんぴょんするんじゃーw
3.1.コミットします(ローカルに)
4. git push
4.1.リモートリポジトリにうpします
13
?木村健 (~2015)
以上
14
ってのは嘘ですがw
? インデックスとローカルリポジトリ、リモートリポジトリとい
う三つの仮想空間を意識しながらgitで操作してください
? インデックス:addでまな板に寿司を乗っけるイメージ?
?乗っけることをステージングと言います?
?これからcommitするものをここに
? ローカルリポジトリ:実際の変更がローカルに反映される場所
? リモートリポジトリ:BitBucketのサーバーに置かれる最終的
な成果物
15
コンフリクト(衝突)
? gitの操作系コマンドを実行すると、コンフリク
トが起こることがあります
? 基本、gitに詳しい人(前述)に聞きましょう
(ぉぃ
? というかSVNみたいに自分とotherが分かれてファ
イルに書かれるので、どちらかを選んでから、
commitしましょー
16
gitのその日暮らし
コマンド編
? git add
? git reset
? git status
? git commit
? git log
? git push
? git pull
17
git add
? [操作コマンド] 作業フォルダ → インデックス
? git add .
? この場合はカレント以下変更のあるファイル全部がインデックスに入る
? 具体的にはファイルをgit add ?lenameのように指定して使う。
? .gitignoreというファイルをリポのトップに作って、コミットしないファイル
群を挙げておくと吉
? 消したファイルも変更として計上したい場合は、?
git add ?all .?
などとして、消したことをインデックスに知らせる。そうしないと消えたこ
とがわからずリポに残る
18
git reset
? [操作コマンド] インデックス→ 作業フォルダ
? git reset ?HEAD
? コミットを指定する。HEAD は一つ前のコミット
? 特定のファイルをインデックスからワークフォル
ダに戻す
? つまりaddの逆
19
git status
? [無害コマンド] 現在のファイル状態を見る
? カレントフォルダのファイルについて、現在インデックスに上がっているか、まだ
ステージング(インデックスに上げること)をしてないかが表示される
? バージョン管理下に置きたいけどまだuntrackedなファイルについてはaddして管
理下に置く
? modi?ed=変更があった
? new ?le=新しく管理下に入った
? deleted=消えた
? rmでファイルを消してしまったときは、そのファイルもaddする。ファイル名を指
定するのがめんどいときは git add ?all . のようにする
20
git commit
? [操作コマンド]差分をローカルリポジトリにコミットし
ます
? ローカルリポジトリへのsvn commitみたいな感じです
? 通常はgit commit -m コメント のように使います。
? windowsの場合は2バイト文字が使えないかもしれませ
ん。すみません、エディタを指定するなどして凌いでく
ださい。。。
21
git log
? [無害コマンド] 主にcommitした履歴を表示する
のに使います
? git log
? git showというコマンドもありますが、これに
ついてはman git-showでご確認ください
22
git push
? [操作コマンド:取り扱い注意!] ローカルリポ
ジトリの変更をリモートリポジトリに反映しま
す
? これがsvn commitに近いです。なのでチーム開
発のときはこのコマンドを打つ前に一度、入れ
るものを確認してください!
23
git pull
? [操作コマンド] リモートの変更をローカルに反映
? git pull
? 実はgit fetchとgit mergeをやってます。merge操
作が行われるので、pullに失敗することもあります
? その時はgit stashするか、ファイルをこぴってお
いてgit statusで差分が出ないようにしてから、
pullします
24
git checkout
? [操作コマンド:取り扱い注意!] 主にbranchを
取り出すときに使います
? git checkout mybranch
? 上書きする系のコマンドなので注意してくだし
あ
25
gut branch
? ブランチを作成します
? git branchでブランチ一覧を取得できます
? git branch xxx でxxxというブランチを作成し
ます
? そのブランチをgit checkout xxxという感じに
checkoutして変更します
26
その他
? git checkout -- ?le
? インデックスする前のファイルを元に戻せま
す
? git reset HEAD -- ?le
? インデックスした後のファイルを元に戻せま
す
27
? git rm ?le
? 削除します
? git mv ?le1 ?le2
? リネームします
28
? git di?
? コミットする差分の表示
? git tag TAGNAME
? タグを切ります
? gitkコマンド:差分のグラフィカルな表示
29
記号類、表記
? コミットには一意なSHA1ハッシュ(40bytes)が
つけられます。指定するときは上位の7bytesを16
進数で指定可能です。git logに表示されます
? HEAD 1が最新の一つ前のコミットです?
HEAD 10が10個前のコミットです
? HEAD^1が一つ前の親コミットです
? 詳しくはman gitrevisionsしてね?
30
?anonymous
The more we learn,?
the more we confuse.
31

More Related Content

30分でサボれる骋颈迟