#Gitってなに?
ソフトのバージョン管理を行うシステム(ツール)
https://backlog.com/ja/git-tutorial/intro/intro1_1.html
#じゃ、GitHubって?
GitHubは、Gitの仕組みを利用して、世界中の人々が自分の作品(プログラムコードやデザインデータなど)を保存、公開することができるようにしたウェブサービスの名称
#リポジトリの概念
ファイルやディレクトリの状態を記録する場所
https://backlog.com/ja/git-tutorial/intro/intro1_2.html
種類 | 場所 | 用途 |
---|---|---|
ローカルリポジトリ | 自分のPC | 作業用 |
リモートリポジトリ | サーバー | 保管用 |
【補足】リモートリポジトリは、色んな人のリポジトリがあります。
####リポジトリって結局なに? (状態を記録する場所ってどういうこと?)
リポジトリ (repository)とは,ファイルなり、プログラムなり、設定情報なり、何らかの「保管場所」をカッコ付けて言った表現です。
#Gitコマンド
では早速、Gitを使ってみましょう。
実務で使用する時は一般的な順番がありますが
今回は基本的なコマンドを覚えることを目的としています。
順番を考えての、フォーク~プルリクエストは第2回で行います。
参照元リンク(順番のイメージ図)
##fork
Forkすると自分のGitHubアカウント内に既存のリモートリポジトリをコピーできます。
http://cuaoar.jp/2013/03/github-fork-pull-request.html
####forkの良いところ
ここでpushしたりbranchを作ったりという作業は、あくまで自分のレポジトリに対してのものなので、何をしても本体のレポジトリは汚さないし、壊さない。(これがForkの良いところ)
##clone
cloneすると、自分のPC内にローカルリポジトリとして保存します。
https://backlog.com/ja/git-tutorial/intro/intro3_2.html
git clone https://github.com/forkしてできた自分のリポジトリのURL
【よくあるミス】
クローンしたはいいけど、チェンジディレクトリしてなくてエラー!ってことがしょっちゅうあります。クローンしたら、必ずチェンジディレクトリを忘れずに。
##commit
ファイルやディレクトリの追加・変更を、ローカルリポジトリに記録します。
https://backlog.com/ja/git-tutorial/intro/intro1_3.html
(今回はやらないけど、基本的なコマンド)
git init //ローカルリポジトリの作成
(ファイル変更してからコマンドを実行)
git add . //変更内容をステージングする
ちなみに「.」は今いるディレクトリ(Windowsでいうフォルダ)を指定
git status //状態の確認
git commit -m “コミットを行います” //コミット(変更内容をローカルリポジトリに反映)
コミットメッセージはわかりやすく書きましょう。
意識>>センスです。
【参考リンク】コミットメッセージの書き方
git log //コミット履歴確認
##push
リモートリポジトリにローカルリポジトリの変更履歴をアップロードする。
https://backlog.com/ja/git-tutorial/intro/intro3_1.html
git push origin [branch名] //指定したブランチの変更内容をリモートリポジトリに反映
#fetch、merge (pull=fetch+merge ざっくり言うと)
##前準備
リモートリポジトリを追加します。
自分以外の誰かのリモート(のURL)を追加することでfetch、pullのコマンドを簡略化する。
git remote add [name] [url] //リモートを追加
きちんと追加できたか確認しましょう。
git remote -v //リモートの表示
【参考リンク(興味がある人向け)】Git-の基本-リモートでの作業
##fetch
リモートリポジトリの最新の履歴の取得だけを行う(変更箇所だけ取得)
https://backlog.com/ja/git-tutorial/stepup/stepup3_2.html
git fetch [さっき追加したリモート] //リモートリポジトリの変更履歴だけ取得
##merge
取得した最新の履歴をローカルリポジトリに統合する。
(チェックアウトしているブランチに、指定したブランチの変更履歴を反映)
git merge [さっき追加したリモート]/master //[さっき追加したリモート]のmasterの変更履歴をローカルリポジトリに反映
##pull
fetchとmergeを同時に行う。
https://qiita.com/osamu1203/items/cb94ef9da02e1ec3e921
git pull [さっき追加したリモート] master //リモートリポジトリのmasterの変更履歴をローカルリポジトリに反映
#commitに関する補足(やらないけど重要なこと)
コミットしてはいけないものが存在します。注意しましょう。
- 認証情報や環境設定
- 個人情報の入ったファイル etc
【参考URL(興味がある人向け)】Githubの.gitignoreまとめ
以上