SlideShare a Scribd company logo
1 of 95
Download to read offline
【Save Your History】
社内 Git 勉強会資料
株式会社エースユニオンデザイン
part.1
今日のアジェンダ
1. Git
2. SourceTree(ぼっちドリブン編)
ウソを教えちゃわないように頑張ります(`・ ω・´)
僕も初心者なので大目に見てね …
1. Git
Gitってそもそもなに?
・ バージョン管理をするツール。
・分散型バージョン管理システム
・「分散型」?
基準のデータに対して自分の作業を反映させるのではなく、「自分を基準」とし
て、あくまでも自分のデータに対して作業する。
マスターはひとつではなく、作業をする全員の手元にあるのが「それぞれのマ
スター」になる。
「公開サーバのデータ」 ≠「マスターのデータ」のこともある。
まず最初に覚える用語その1
・リポジトリ(Repository=倉庫)
ファイルやディレクトリの状態を記録している場所全体のこと。
変更履歴を管理したいディレクトリをリポジトリの管理下に置くことで、そ
のディレクトリ内のファイルやディレクトリの変更履歴を記録することがで
きる。
→ Gitで管理しているプロジェクトのディレクトリ一式。
どこをGitで管理するか?がポイント
まず最初に覚える用語その2
・ローカルリポジトリ
・リモートリポジトリ
ローカルリポジトリ=自分の手元にある実際の作業をするところ
(普段の作業はすべてここで。この中でもバージョン管理する。)
ゲームで言う「セーブデータ」をどんどん残すイメージ
リモートリポジトリ=各々が作業したデータを反映させるところ
(公開するデータの置き場所。これまででいえばサーバ。)
リモートリポジトリが「共用サーバ」という位置づけ。
まず最初に覚える用語その3
・origin(オリジン)
・origin: リポジトリの場所(URL)の別名
・「origin」はデフォルトのリポジトリ
・cloneした時にgitが自動で作成する。
Git をインストール
インストーラをダウンロードする
http://sourceforge.net/projects/git-osx-installer/
特別な設定は何もいらないので、リンク先からダウンロードしたインストーラを
起動して手順に従っていればインストールが完了する。
でもちょっと待って!
Gitを使うために(GUI? CLI?)
・GUI (Graphical User Interface)
・CLI (Command Line Interface)
GUI=操作が見た目で直感的にわかる。
Gitの操作の流れを知らなくてはいけないのは CLIと変わらない。
データの量によっては操作が重くなることがある。
CLI=すべて黒い画面からの操作。軽い。
強制的な修正のために使う必要があるケースも。
最初にターミナルの使い方が第一関門になる。
→ GUIの「SourceTree」を使う
(Mac用、Win用両方ある。一緒にgitがインストールされる)
最初に覚える用語その1
・ブランチ(branch)
・ステージング(stage)
最初に覚えるコマンドその1
・add
・コミット(commit)
最初に覚える用語その1
・ブランチ(branch=枝・支店)
・履歴の流れを分岐して記録していくためのもの。
・同じリポジトリ中で複数のブランチを作ることができる。
・分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ 中で複
数の変更を同時に進めていくことができる。
→ 同じ案件に対して、違う修正を並行して進めることができる
(あとでまとめればいい)
※今の作業が「どのリポジトリ」の「どのブランチ」かを意識するのが大事
最初に覚える用語その1
・ブランチ(branch)には種類がある
【役割】・master branch
・topic branch
・(head)
【所属】・local branch
・remote branch
・tracking branch(追跡ブランチ)
最初に覚える用語その1(branch・役割)
・マスター(master branch)
・リポジトリに最初のコミットを行ったときに Gitが作るブランチ。
【運用ルール】
・このブランチ自体では作業しない
・新たな作業をするときは「ブランチを切る」
・masterへは「push」するだけ
→ 「push?」次回。
・リリースできないものを masterに入れない。
最初に覚える用語その1(branch・役割)
・トピックブランチ(topic branch)
・あるブランチから「ブランチを切って」作られたブランチ。
【運用ルール】
・これが作業用のブランチ(通常「ブランチ」と言ったらこれを指す)
・topic branchはremote repositoryにも存在しうる
・ローカルではいくつ作っても OK
・ある程度自分でルールぎめして管理すればお k
・途中でやめてまた別のブランチを切って作業してもいい
・ブランチの数だけworking treeがどんどん分岐していく
→ 「working tree?」あとで
最初に覚える用語その1(branch・役割)
・ヘッド(head)→ ブランチ名ではない
・いま現在どのブランチで作業しているのかを示す「ポインタ」
→ 「head」は「git」が監視するために自動で付与する
・作業しているローカルブランチの先頭に「 head」がつく
・headが外れている状態で作業した時はアラートが出る !
・headが移動することで、使用するブランチが変更される。
・branchの切り替えはcheckoutで。
→ 「checkout?」あとで
最初に覚える用語その1(branch・所属)
・ローカルブランチ(local branch)
・local repository 内に作られたブランチ。
・まずはローカルだけで gitに慣れましょう。
【運用ルール】
・local repository のlocal branchが作業用のブランチ
・topic branchのローカル側のブランチが local branch
・通常はlocal repository のlocal branchの中でcommitしていく。
→ 「commit?」あとで
最初に覚える用語その1(branch・所属)
(参考)リモートブランチ(remote branch)
・remote repository 上のブランチ
【運用ルール】
・このブランチは直接作業しない( push、fetchするくらい)
・remote branchのmasterはremote repository にある
・remote branchのmasterが「本公開サーバのソース」である
・masterではないremote branchが「テストサーバ用のソース」
・誰か独りが管理するのではなく「 全員でメンテナンスする 」つもりで
最初に覚える用語その1(branch・所属)
(参考)追跡ブランチ(tracking branch)
・これ大事(混乱しやすいので) → 今回は触りません。
・追跡ブランチはlocal repository 上に作られる。
・remote branchの情報を持っているブランチのこと。
・「remote branchの情報」にはこれが表示される。
・remote branch = tracking branchじゃないこともある。
【運用ルール】
・最新のremote repository の情報を取得するには fetchする。
→ 「fetch?」次回
最初に覚える用語その1
・ステージング(stage)
・少し前までは「index(インデックス)」という呼び方が一般的だった。
・変更したファイルを記録するための下準備のこと
【運用ルール】
なんでステージングが必要なの?
→ gitにcommitする内容を選べるから
(複数回のコミットに分けるとか、一部だけ commitするから)
最初に覚えるコマンドその1
・add
・作業ディレクトリ内の変更をステージングエリアに追加するコマンド。
・個々のファイルのアップデート内容を次回コミットの対象として指示すること。
・「git add」コマンドだけでは実際にはローカルリポジトリに何の影響も与えない。
・選択したファイルをトラック対象( Git上で変更内容を追跡できる)にしている。
【運用ルール】
なんでステージングが必要なの?
→ gitにcommitする内容を選べるから
最初に覚えるコマンドその1
・コミット(commit=預ける)
・ステージされたスナップショットを local repository に記録するコマンド。
(スナップショット=git addされたファイル群のこと)
・スナップショットは常にlocal repositoryにcommitされる。
・local repository にcommitを蓄積することができる。
【運用ルール】
・commitは出来る限り細かい粒度で行う。
→ ひとまず、複数のバグの修正をひとつの commitのまとめる等はNGで。
・commitの際に必ず適切なコメントをつける 。
→ 他の作業者が見た時に commitの内容がわかるように
最初に覚えるコマンドその1
・コミット(commit=預ける)
【運用ルール・コメントの書き方編】
・以下のフォーマットで。
1行目 :変更内容の要約(タイトル、概要)
2行目 :空行
3行目以降 :変更した理由(内容、詳細)
日本語でも英語でも OKだが、リポジトリ内で統一するのが吉。
最初に覚えるコマンドその1
・コミット(commit=預ける)
【運用ルール・コメントの記述例編】
・commitの種別
fix :バグ修正
hotfix:クリティカルなバグ修正
add :新規(ファイル)機能追加
modify:機能修正(バグではない)
change:仕様変更
clean :整理(リファクタリング等)
disable:無効化(コメントアウト等)
remove :削除(ファイル)
upgrade:バージョンアップ
revert :変更取り消し
最初に覚えるコマンドその1
・コミット(commit=預ける)
【運用ルール・コメントの書き方編】
・記述例
[fix]記事がなかった場合の不具合の修正
「お知らせ」記事が1件もなかった場合の条件分岐が loop内になかったため追加。
こんな感じで書くのがいいんじゃないでしょうか …?
このへんは実際に運用していきながら修正していきましょう。
こんなん使ってみなきゃわかるわけないじゃん
(´・ω・`)
SourceTree(ぼっちドリブン編)
・ GitをGUIで操作するツール。
・コマンド知らなくても操作できる。
・インストール
・登録
・使ってみよう
2.
SourceTree をインストール
ディスクイメージをダウンロードする
http://sourcetreeapp.com/
リンク先からディスクイメージをダウンロードしたらダブルクリックして開き、
「SourceTree」を「アプリケーションフォルダ」に移動すればインストー
ルが完了する。
SourceTree を起動
ユーザー登録
早速使ってみよう!
(その前に)ざっくりコマンド一覧
init
add
status
diff
commit
clone
reset
branch
checkout
remote
fetch
merge
pull
rebase
push
log
stash
cherry-pick
reflog
gc
revert
rm
show-branch
tag
clean
mv
(´ ; ω ; `)
ざっくりコマンド一覧(最低限これくらい)
init
add
status
diff
commit
clone
reset
branch
checkout
remote
fetch
merge
pull
rebase
push
log
stash
cherry-pick
reflog
gc
revert
rm
show-branch
tag
clean
mv
コマンドの詳細はここで https://www.atlassian.com/ja/git/tutorial/git-basics
SourceTree を使いながら覚えます。
コマンド分からない…(´ ; ω ; `)
・最初はわからなくても大丈夫。
・ただ、コマンドを知らないと「こういう時はどうするの?」がわからないので。
・GUIのSourceTreeの裏側でやっていることは単なるコマンド操作です。
・先々コマンドラインから使うことになってもコマンドの意味がわかります。
・だから「使いながら覚える」です。
SourceTree を使ってみよう
1.ユーザー登録
・まず最初にユーザー登録が必要
・@ace-union.net でアカウント作成
・ユーザー登録すれば無料で利用可能
SourceTree を使ってみよう
2.新しく始める
「New Repository 」をクリック
・「Clone〜」:gitのリポジトリをローカルにクローン(コピー)
・「Add existing〜」:今あるディレクトリを gitに登録
・「Create local〜」:local repository を新たに作る
・「Create remote〜」:remote repository を新たに作る
SourceTree を使ってみよう
2.新しく始める
1.「Clone from URL 」を選択
・「Source URL」:web上のgitのリポジトリのURL
・「Destination Path 」:コピー先のgitリポジトリへのパス
→ 新たにディレクトリが作られるので、任意の場所に書き出すように指定。
・「Name」:リポジトリの名前
= git clone(ブランチやコミットの情報もすべてローカルにコピー)
SourceTree を使ってみよう
2.新しく始める
2.「Add Existing local repository 」を選択
・フォルダ選択画面が開く
・gitリポジトリとして登録したいフォルダを選択して「開く」
SourceTree を使ってみよう
2.新しく始める
3.「Create local repository」を選択
・「Destination Path 」:新たに作るgitリポジトリへのパス
・「Name」:リポジトリの名前
→ この場合も新たにディレクトリが作られる。
・まずはここから。一人で Git管理してみましょう。
SourceTree を使ってみよう
2.新しく始める
ちなみに、コマンドで言うと「 git init」
・init=initialize (初期化)
・gitリポジトリとして登録したいフォルダを「初期化」する。
SourceTree を使ってみよう
3.local repositoryを作る
「Create local repository」を選択
【運用ルール】
・「Destination Path 」:任意の新しいディレクトリを指定する
→ 案件名でディレクトリを作成する
・「Name」:任意の名前をつける
→ [案件名]名前-(html|php|wp)-local
・ディレクトリ名は2byte文字は使わないこと! (正しく認識されないかも)
SourceTree を使ってみよう
3.local repositoryを作る
カラのリポジトリが作られる
その時のディレクトリを見るときは「 Finderで開く」をクリック
← 中身はこんな状態
「.git」ディレクトリがあるだけ
「.git」ディレクトリ内に履歴が記録される
SourceTree を使ってみよう
4..gitignoreを用意する
「.gitignore」?
gitの管理から除外するファイル・ディレクトリ群を指定するための設定ファイル
・管理する必要のないもの、不要なもの
https://gist.github.com/saiki-aceuniondesign/a006272bf349115bb8d2
上記ファイルをDLしていま作ったディレクトリに配置する
SourceTree を使ってみよう
4..gitignoreを用意する
右の画像のようになるはず。
・.gitignoreファイルは不可視ファイル
通常は触る必要がない
基本的にコピペで使い回せばいい
→ どの案件でも管理しないファイルはほぼ共通
・.gitignoreはgitで管理するrootのディレクトリに配置する
SourceTree を使ってみよう
5.いよいよファイル管理
1.「index.html」を作成
・ファイルを新規作成するときは普通に Finderからでいい。
・特に一番最初はgitに全く管理されていないので気にしない。
→ いつものエディタでいつもどおりに。
・今回はダミーで。
SourceTree を使ってみよう
5.いよいよファイル管理
2.この時「SourceTree」は…?
なんか変わってる!
SourceTree を使ってみよう
5.いよいよファイル管理
3.gitで管理していないファイルがある(?マーク)
gitで管理するように登録する必要がある。
SourceTree を使ってみよう
5.いよいよファイル管理
4.git addしてステージング
「作業ツリーのファイル」にチェックを入れる
SourceTree を使ってみよう
5.いよいよファイル管理
4.git addしてステージング
ステージングされるとファイルの表示される場所が変わる 。
「?」マークが「+」マークに!
ステージングされてcommitする準備ができた、ということ。
→ この時点で「Indexにステージしたファイル」のチェックを外せば
ステージングは解除される
(それぞれのチェックを個別に外しても同じ)。
SourceTree を使ってみよう
5.いよいよファイル管理
5.git commitする
ヘッダー部分の「Commit」ボタンをクリック
SourceTree を使ってみよう
5.いよいよファイル管理
6.コミットメッセージを記述する
SourceTree を使ってみよう
5.いよいよファイル管理
6.コミットメッセージを記述する
こんな感じで。最初の commitは「first commit」がお約束。
確認して問題なければ「コミット」ボタンをクリックする。
SourceTree を使ってみよう
5.いよいよファイル管理
7.できた!…あれ? → 落ち着いてサイドバーの「ブランチ > master」をクリック
SourceTree を使ってみよう
5.いよいよファイル管理
7.おおおおぉぉぉぉぉ、できた!
(・∀・)
おめでとうございます
SourceTree を使ってみよう
6.first commitの次にすること
1.まずmasterがひとつだけできていることを確認
・gitでの管理が始まった状態。
SourceTree を使ってみよう
6.first commitの次にすること
2.ブランチを切る
・作業をするブランチを作る。
→ 上部のアイコンの中から「ブランチ」をクリックする。
SourceTree を使ってみよう
6.first commitの次にすること
2.ブランチを切る
プルダウンが出てくるので新規ブランチ名を入力。
【運用ルール】
・最初に作るブランチ名は『 dev-(html|php|wp)- 名前-案件名 』で。
・すべての作業は基本的にこのブランチでする 。
SourceTree を使ってみよう
6.first commitの次にすること
2.ブランチを切る
できた!(・∀・)
→ サイドバーで「いまどこのブランチにいるか」を 必ず把握すること。
ハイライトしているところではなく、太字のところ にいる!
よくあるミス → 違うブランチで作業して commitしてたorz
SourceTree を使ってみよう
7.SourceTreeの画面の説明
1.サイドバーの「ブランチ」
・いまリポジトリで管理しているブランチが表示される。
・クリックするとブランチの中身が見える
・ここをダブルクリックして作業するブランチを切り替え
(=checkout)することもできる。
・アクティブになっているブランチは太字で表示される。
(いま自分が「どこにいるか」が大事!)
SourceTree を使ってみよう
7.SourceTreeの画面の説明
2.「グラフ」
・いわゆる「ツリー」がこれ。
・「ワーキングツリー」とは「 いま自分が作業している場所 」。
・「ワーキングツリー」は二重丸で表示されている。
・クリックすることでツリー内を自由に行き来できる。
・ダブルクリックでブランチを切り替え( =checkout)できる。
SourceTree を使ってみよう
7.SourceTreeの画面の説明
3.「説明」
・コミットコメントを表示
・枠で囲まれているのは「ブランチ名」。
・「ブランチ名」のところが「 そのブランチのいま現在の状態 」。
・ここの説明と並んだ位置のグラフが対応している。
・この部分をクリックして切り替えできるのもグラフと一緒。
SourceTree を使ってみよう
7.SourceTreeの画面の説明
4.詳細画面(左)
・いま表示しているコミットの具体的な内容を表示。
・黄色いアイコンは「内容の変更」、緑のアイコンは「ファイルの追加」、
赤いアイコンは「ファイルの削除」を表している。
・その下はコミットの詳細情報。
・記載したコミットコメントはここですべて読める。
SourceTree を使ってみよう
7.SourceTreeの画面の説明
5.詳細画面(右)
・左画面でハイライトしているファイルの具体的な変更内容を表示。
・いわゆる「diff(=差分)」の表示になっている。
・赤地の「-」は削除された部分。
・緑地の「+」は追加された部分。
・画像のように並んでいる場合は「書き換えがあった」とき。
SourceTree を使ってみよう
8.ローカルブランチで作業
1.次にファイルの編集・追加・削除をしたら?
・基本的に「add」「commit」の繰り返し。
・commitする前のツリーは画像のような状態になっているはず。
・上に伸びている「Uncommited changes 」がまだ反映されていない変更分。
SourceTree を使ってみよう
8.ローカルブランチで作業
2.自分のタイミングでcommitする
【運用ルール】
・特別な決まりはないが、ひとまとまりの作業が済んだら。
・ある程度は細かくcommitしておいたほうがあとで戻るのはラク。
・「Uncommited changes 」をクリックすると詳細部分で変更が確認できる。
SourceTree を使ってみよう
8.ローカルブランチで作業
3.Uncommited changes をadd + commitした状態
devブランチが進んでいるのがわかる。
【運用ルール】
・当面、ローカルでの作業中は「 master」ブランチは触らなくていい。
・リモートリポジトリを使うまではかえってわかりづらいだけなので。
SourceTree を使ってみよう
9.途中に戻って作業をやり直したい
1. branchを作るためにcheckoutする
checkoutする場所によって意味が変わってくるので注意!
・checkoutには3種類ある
・branchに対するcheckout
・commitに対するcheckout
・fileに対するcheckout
SourceTree を使ってみよう
9.途中に戻って作業をやり直したい
1. branchに対するcheckout
「branchを切り替えるコマンド」
・複数のブランチがある場合に選択できる
→ 作業ディレクトリの中身がまるっと入れ替わる!
SourceTree を使ってみよう
9.途中に戻って作業をやり直したい
2. commitに対するcheckout
「新たにbranchを切る準備のコマンド」
・選択したcommitの場所に新たにブランチが作られる
→ 作業ディレクトリがそのコミットと完全に一致した状態になる
・そこから作業を始めれば全く別の作業ができる
・もちろんあとで元のブランチに戻ることもできる
commitをcheckoutしてもリポジトリには全く影響がない
SourceTree を使ってみよう
9.途中に戻って作業をやり直したい
3. fileに対するcheckout(参考)
「fileの中身を確認するコマンド」
新しいスナップショットに再コミットすることができる
→ ファイルの変更を上書きできてしまうので使いドコロに注意!
過去のファイルとのdiffを取るときなどに使う。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
※ここからの作業はちょっとわかりづらいのですが、運用上
のことを考えると避けて通れない手順になります。
まずは自分で何度か練習して感覚を掴みましょう。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
【解説】(参考)
ここから先の作業は「git reset --hard」を含んでいま
す。作業を完全に元に戻す便利な方法ですが、リモートリ
ポジトリにpushしたあとに、pushする以前のcommitに対
して「git reset --hard」すると全員の履歴に影響が
及んで大混乱が起きます。
この手順は「git pushする前のローカルリポジトリでだ
け」有効な手段、と考えてください。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
1. 今いる場所でブランチを切る
今の状態を保存するためのブランチを作る。
・「戻りたい場所」をきちんと確認する(今回は例として 1つ戻る)。
・コミットを細かくしておくとこの時点での選択が楽になる。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
2. ブランチを切る
「Branch」ボタンをクリック → 「新規ブランチ」。
【運用ルール】
・一旦保留にするブランチ名は『 temp00-名前-案件名 』で。
・先々このブランチ(の一部とかファイルの参照とか)を使うかも
しれないので、消さずに残しておいたほうが吉。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
あれ、「dev-」と「temp00-」が並んじゃってるけど?
「 dev- 」を元に戻します
( ー`дー´)キリッ
(´ ; ω ; `)
SourceTree を使ってみよう
10.checkoutしてブランチを切る
3. 「dev-」をcheckoutする
デフォルトではブランチを新規作成すると同時に checkoutしている。
サイドバーの「dev-」をダブルクリックすれば checkoutできる。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
4.戻したい時点のcommit上で右クリック
・出てきたプルダウンから「このコミットまで dev-を元に戻す」を
選択する。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
5. ポップアップの内容を確認し、モードを「 Hard」にする。
「Hard」モードは『 完全に削除 』なので取り扱いに要注意。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
6. 再度怖いアラートが出る (´;ω;`)
大丈夫。「OK」をクリックする。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
7. 無事に戻った!( ´ー`)フゥー
なんでこんな心臓に悪いこと …。
【運用ルール】
・作業をするところはあくまでも「 dev-」。
・そうすればいつでも誰でも作業を引き継げるので。
・後から見直した時にもすぐ内容が把握できる。
SourceTree を使ってみよう
10.checkoutしてブランチを切る
8. さて、じゃあまた「dev-」に戻って続きを。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
0. ここから先の注意点
gitにはあらゆるコマンドが用意されているので、間違った操作をしても
ほとんどの場合また元に戻せます( 戻せないものもあります )。
【運用ルール】
・基本的に『 戻す操作 』はしない(履歴が大事!)。
・共同のプロジェクトだとリポジトリがとんでもないことになる。
・作業中の最新の「dev-」または「master」を壊してしまった時だけ。
・通常は新たにブランチを切って、そこから作業を始めればいい。
・「merge」して不要になったブランチは削除してもお k。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
1-1. 途中のcommitからブランチを切りたい!
ブランチを切りたいcommitを選択して、上部の「 Checkout」ボタンをクリック。
・先ほど説明したうちの「 2. commitに対するcheckout」に該当。
・ブランチがない場所で checkoutすると挙動が違います。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
1-2. アラートが出るので確認する
新たにブランチを作成するので「 OK」をクリックする。
「detached HEAD」ってなに?
→ いずれのブランチにも属していない状態のこと。
ここで「HEAD」が示しているのはブランチの先頭ではなく
「コミット」だということ。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
1-3. detached HEAD
この画像のような状態が「 detached HEAD」。
「HEAD」だけが独立していてブランチに属していない。
→ この「detached HEAD」をブランチに含めるのが
「ブランチを切る」ということ。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
1-4. ブランチを切る
「Branch」ボタンをクリック → 「新規ブランチ」。
・「現在のブランチ」が( detached〜)になっていることに注意。
・「detached〜」の状態のまま放置してはいけない 。
・他の作業をしてしまうと「 detached〜」の状態だったcommit
は削除されてしまう(どこのブランチにも属していないので)。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
1-5. はい、できました。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
1-6.「temp01-」と「dev-」を入れ替えないと…
新しく作った「temp01-」をチェックアウトしてひとつ進めればいいので「 dev-」の
あるcommitを右クリックする。
【運用ルール】
・コマンドは「cherry-pick」。
SourceTreeから操作できるので大丈夫。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
1-7.「temp01-」と「dev-」を入れ替えないと…
新しく作った「temp01-」をチェックアウトしてひとつ進めればいいので「 dev-」の
あるcommitを右クリックする。
・コマンドは「cherry-pick」。
プルダウンの中から「チェリーピック」を選択。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
1-8.アラートが出るので「 OK」をクリック。
cherry-pickをすると「temp01-」ブランチが「dev-」ブランチと並ぶ。
「dev-」を戻す操作は先ほどの手順と同じ。
・先ほどの手順よりも一手間かかるので、落ち着いて。
気をつけるのは「git reset --hard」だけです。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
2.「add」したのを元に戻したい!
上部の「Remove」ボタンをクリックすればお k。
・ワーキングツリーからステージングした段階での取り消し。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
3-1.直前に「commit」したコメントを修正したい!
上部の「Commit」ボタン → 右下の「コミットのオプション」をクリック。
・プルダウンから「最新のコミットを修正」を選択する。
・コメントが表示されるので編集して「 OK」。
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
3-2.「commit」しちゃったけど元に戻したい!
戻し方(git reset)には3種類ある
・soft reset(変更はステージングエリアに戻る)
・mixed reset(no option) (変更はワーキングツリーへ入る)
・hard reset(それまでの変更はすべて削除される)
SourceTree を使ってみよう
11.【Tips】いろいろな『戻る』
3-2.「commit」しちゃったけど元に戻したい!
※要注意ポイント
このhard resetは「履歴を削除する」コマンドなので、「 git pushする前のロー
カルリポジトリでだけ 」行ってください。リモートリポジトリに pushしたあとに、pushす
る以前のcommitに対して「git reset --hard 」すると全員の履歴に影響が及
んで大混乱が起きます。
リモートリポジトリで「元に戻したい」場合は、別の「 revert」コマンドを使います。こ
の説明は次回に。
次回のアジェンダ
1. BitBucket
2. SourceTree(共同作業編)
お疲れさまでした…。
いきなりは訳がわからないことになるかもしれませんが、少しずつ覚え
て、みんなでラクをして安全なファイル管理をしましょう。
次回はいよいよ共同作業として「リモートリポジトリ」を使ったファイル管
理をします。それまでにローカルでいろいろ試してみましょう。

More Related Content

What's hot

Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩Ayana Yokota
 
新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)pupupopo88
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.kiki utagawa
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
LightGBM: a highly efficient gradient boosting decision tree
LightGBM: a highly efficient gradient boosting decision treeLightGBM: a highly efficient gradient boosting decision tree
LightGBM: a highly efficient gradient boosting decision treeYusuke Kaneko
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理Takafumi Yoshida
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーSaeko Yamamoto
 
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方naoto teshima
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -ShionITO1
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?hoxo_m
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料直久 住川
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使うAtsushi Hayakawa
 
[DL輪読会]モデルベース強化学習とEnergy Based Model
[DL輪読会]モデルベース強化学習とEnergy Based Model[DL輪読会]モデルベース強化学習とEnergy Based Model
[DL輪読会]モデルベース強化学習とEnergy Based ModelDeep Learning JP
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例Hirohito Kato
 
ChatGPT は高階層の意味理解にはほど遠い?
ChatGPT は高階層の意味理解にはほど遠い?ChatGPT は高階層の意味理解にはほど遠い?
ChatGPT は高階層の意味理解にはほど遠い?Hide Koba
 
Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Hidehisa Matsutani
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点Ichigaku Takigawa
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』Yoshitaka Kawashima
 

What's hot (20)

Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)
 
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
LightGBM: a highly efficient gradient boosting decision tree
LightGBM: a highly efficient gradient boosting decision treeLightGBM: a highly efficient gradient boosting decision tree
LightGBM: a highly efficient gradient boosting decision tree
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
 
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
GHE導入から社内普及までの軌跡 - エバンジェリストとしての取り組みについて -
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料第9回ACRiウェビナー_日立/島田様ご講演資料
第9回ACRiウェビナー_日立/島田様ご講演資料
 
Visual Studio CodeでRを使う
Visual Studio CodeでRを使うVisual Studio CodeでRを使う
Visual Studio CodeでRを使う
 
[DL輪読会]モデルベース強化学習とEnergy Based Model
[DL輪読会]モデルベース強化学習とEnergy Based Model[DL輪読会]モデルベース強化学習とEnergy Based Model
[DL輪読会]モデルベース強化学習とEnergy Based Model
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
 
ChatGPT は高階層の意味理解にはほど遠い?
ChatGPT は高階層の意味理解にはほど遠い?ChatGPT は高階層の意味理解にはほど遠い?
ChatGPT は高階層の意味理解にはほど遠い?
 
Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法
 
合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
 

Viewers also liked

ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門Keisuke Oohata
 
プロトタイプとワークフロー Prototype and Workflow
プロトタイプとワークフロー Prototype and Workflowプロトタイプとワークフロー Prototype and Workflow
プロトタイプとワークフロー Prototype and Workflowatmarkit
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おうHayashi Yuichi
 
社内プレゼン勉強会発表資料
社内プレゼン勉強会発表資料社内プレゼン勉強会発表資料
社内プレゼン勉強会発表資料Yoh Nakamura
 
B14 「今」を分析するストリームデータ処理技術とその可能性 by Kazunori Tamura
B14 「今」を分析するストリームデータ処理技術とその可能性 by Kazunori TamuraB14 「今」を分析するストリームデータ処理技術とその可能性 by Kazunori Tamura
B14 「今」を分析するストリームデータ処理技術とその可能性 by Kazunori TamuraInsight Technology, Inc.
 
素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集いTakayuki Shimizukawa
 
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Satoshi Kubo
 
2014年 最も習慣化したい5つのITトレンド - What's Hot in 2014 NPO x IT
2014年 最も習慣化したい5つのITトレンド - What's Hot in 2014 NPO x IT2014年 最も習慣化したい5つのITトレンド - What's Hot in 2014 NPO x IT
2014年 最も習慣化したい5つのITトレンド - What's Hot in 2014 NPO x IT孝弘 笠原
 
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSFJavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSFMasuji Katoda
 
JavaScriptで学ぶajax通信
JavaScriptで学ぶajax通信JavaScriptで学ぶajax通信
JavaScriptで学ぶajax通信NTT Data
 
HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?deflis
 
20150829 Java女子部勉強会 Java EEハンズオン
20150829 Java女子部勉強会 Java EEハンズオン20150829 Java女子部勉強会 Java EEハンズオン
20150829 Java女子部勉強会 Java EEハンズオンMisaki Kajiura
 
GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書相皓 卞
 
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことメンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことMitsuru Ogawa
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Masatoshi Tada
 
SINAP TALK Vol.04「プレゼンテーションについて」鷹野雅弘
SINAP TALK Vol.04「プレゼンテーションについて」鷹野雅弘SINAP TALK Vol.04「プレゼンテーションについて」鷹野雅弘
SINAP TALK Vol.04「プレゼンテーションについて」鷹野雅弘swwwitch inc.
 
0528 kanntigai ui_ux
0528 kanntigai ui_ux0528 kanntigai ui_ux
0528 kanntigai ui_uxSaori Matsui
 
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識Tsutomu Sogitani
 

Viewers also liked (20)

ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
 
プロトタイプとワークフロー Prototype and Workflow
プロトタイプとワークフロー Prototype and Workflowプロトタイプとワークフロー Prototype and Workflow
プロトタイプとワークフロー Prototype and Workflow
 
今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう今すぐブラウザでES6を使おう
今すぐブラウザでES6を使おう
 
社内プレゼン勉強会発表資料
社内プレゼン勉強会発表資料社内プレゼン勉強会発表資料
社内プレゼン勉強会発表資料
 
B14 「今」を分析するストリームデータ処理技術とその可能性 by Kazunori Tamura
B14 「今」を分析するストリームデータ処理技術とその可能性 by Kazunori TamuraB14 「今」を分析するストリームデータ処理技術とその可能性 by Kazunori Tamura
B14 「今」を分析するストリームデータ処理技術とその可能性 by Kazunori Tamura
 
素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い
 
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎
 
2014年 最も習慣化したい5つのITトレンド - What's Hot in 2014 NPO x IT
2014年 最も習慣化したい5つのITトレンド - What's Hot in 2014 NPO x IT2014年 最も習慣化したい5つのITトレンド - What's Hot in 2014 NPO x IT
2014年 最も習慣化したい5つのITトレンド - What's Hot in 2014 NPO x IT
 
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSFJavaEE7徹底入門 プレゼンテーション層の開発 JSF
JavaEE7徹底入門 プレゼンテーション層の開発 JSF
 
JavaScriptで学ぶajax通信
JavaScriptで学ぶajax通信JavaScriptで学ぶajax通信
JavaScriptで学ぶajax通信
 
HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?
 
20150829 Java女子部勉強会 Java EEハンズオン
20150829 Java女子部勉強会 Java EEハンズオン20150829 Java女子部勉強会 Java EEハンズオン
20150829 Java女子部勉強会 Java EEハンズオン
 
GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書
 
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことメンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
 
SINAP TALK Vol.04「プレゼンテーションについて」鷹野雅弘
SINAP TALK Vol.04「プレゼンテーションについて」鷹野雅弘SINAP TALK Vol.04「プレゼンテーションについて」鷹野雅弘
SINAP TALK Vol.04「プレゼンテーションについて」鷹野雅弘
 
0528 kanntigai ui_ux
0528 kanntigai ui_ux0528 kanntigai ui_ux
0528 kanntigai ui_ux
 
しょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedeeしょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedee
 
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識
 

Similar to 社内Git勉強会向け資料

Gitごにょごにょ【概要編】
Gitごにょごにょ【概要編】Gitごにょごにょ【概要編】
Gitごにょごにょ【概要編】Kazuki Shingai
 
Git演習(1)
Git演習(1)Git演習(1)
Git演習(1)sono8
 
非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理小川 昌吾
 
ておくれないgit
ておくれないgitておくれないgit
ておくれないgitrkmathi
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門Muyuu Fujita
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会Tetsuya Morimoto
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用CROOZ, inc.
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方hibiki443
 
今日から始めるGithub
今日から始めるGithub今日から始めるGithub
今日から始めるGithublion-man
 
Qgis2.18 基礎編
Qgis2.18 基礎編Qgis2.18 基礎編
Qgis2.18 基礎編Jyun Tanaka
 
道具としてのDVCS
道具としてのDVCS道具としてのDVCS
道具としてのDVCSirof N
 
なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習石橋 啓太
 

Similar to 社内Git勉強会向け資料 (15)

Gitごにょごにょ【概要編】
Gitごにょごにょ【概要編】Gitごにょごにょ【概要編】
Gitごにょごにょ【概要編】
 
Git演習(1)
Git演習(1)Git演習(1)
Git演習(1)
 
非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理
 
ておくれないgit
ておくれないgitておくれないgit
ておくれないgit
 
ノンプログラマのGit入門
ノンプログラマのGit入門ノンプログラマのGit入門
ノンプログラマのGit入門
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
 
Gitのいろは
GitのいろはGitのいろは
Gitのいろは
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
 
Recommend git
Recommend gitRecommend git
Recommend git
 
Recommend git
Recommend gitRecommend git
Recommend git
 
今日から始めるGithub
今日から始めるGithub今日から始めるGithub
今日から始めるGithub
 
Qgis2.18 基礎編
Qgis2.18 基礎編Qgis2.18 基礎編
Qgis2.18 基礎編
 
道具としてのDVCS
道具としてのDVCS道具としてのDVCS
道具としてのDVCS
 
なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習
 

社内Git勉強会向け資料