
Gitはバージョン管理システムで、ソースコード(ファイル)を効果的に管理・共有できるため共同開発の際などには重宝します。
Githubは、Gitを使ったチーム開発を便利にするWEBサービス(Gitホスティングサービス)です。自分のコードを提案し、レビューされます。
SourceTreeはGitを直感的に操作できるソフト。
この記事では非常に基本的なGit・Github・SourceTreeの知識をまとめております。
用語の意味
fa-chevron-circle-rightリポジトリ
ファイルやディレクトリ(フォルダ)の状態を記録する場所。リモートリポジトリとローカルリポジトリがある。(貯蔵庫)
fa-chevron-circle-rightリモート(中央)リポジトリ
共有するためのリポジトリ。自分が変更・修正したローカルリポジトリの内容をココにアップロード(Push)する。GitやBitbucket、社内サーバーなどに置かれる。
fa-chevron-circle-rightローカルリポジトリ
それぞれのユーザーが作業するリポジトリ。リモートリポジトリの内容を元に(Pull)変更・修正する。
ローカルリポジトリを作成するには、
- 全く新しく作成するか
- リモートリポジトリをコピーする
fa-chevron-circle-rightコミット
ファイルやディレクトリの追加・変更をリポジトリに記録するための操作。コミットメッセージを残すことでどのような追加・変更を行ったのか共有できる。
fa-chevron-circle-rightリビジョン
前回コミットした時の状態から現在の状態までの差分を記録したもの(コミットを実行するとリビジョンが表示される)
fa-chevron-circle-rightワークツリー
Gitの管理下に置かれた、ユーザーが実際に作業しているディレクトリやファイルのこと。
fa-chevron-circle-rightコンソール
コンピュータの入出力装置(=ターミナル)
fa-chevron-circle-rightインデックス
ワークツリーでユーザーが実際に変更等した内容を(ローカル)リポジトリにコミットする準備をする場所。
コミットでファイル等の状態を記録するには、インデックスにファイル等を登録する必要があります。
fa-chevron-circle-rightエイリアス
別名のこと。
fa-chevron-circle-rightブランチ
分岐して履歴を記録するもの(木の枝のような)
fa-chevron-circle-rightmasterブランチ
リポジトリに最初のコミットを行った時に作られるブランチ
fa-chevron-circle-right統合ブランチ
リリース版が何時でも作成可能な状態のブランチ。ココからトピックブランチを作る。masterブランチを統合ブランチにする場合が多い。
fa-chevron-circle-rightトピックブランチ
機能追加・バグ修正などを行うために統合ブランチから作られるブランチ。
fa-chevron-circle-rightチェックアウト
現在作業中のブランチから出て、他のブランチに移動すること。
(指定した時点のデータを作業ディレクトリにロードできる)
fa-chevron-circle-rightHEAD
現在作業中のブランチの先頭のことを言う。
fa-chevron-circle-rightstash
一時的に変更内容を退避させること。
*急遽他のブランチで作業したい用事ができた時に、現在のブランチ内の変更内容を「とりあえず置いておく」みたいなこと
fa-chevron-circle-rightfast-forward(早送り)マージ
以前から変更のないmasterブランチにトピックブランチをマージすることを言う。
*non fast-forwardマージでブランチを残したまま新しくマージコミットを作成して合流させることも可。
fa-chevron-circle-rightrebase
トピックブランチをmasterブランチに統合する際、履歴を一本化するやり方。
fa-chevron-circle-rightタグ
コミットを参照しやすくするためにつける名前
fa-chevron-circle-rightプルリクエスト
自分のローカルリポジトリの変更を他のユーザーに通知する機能
fa-chevron-circle-right集中型
ひつのリポジトリ に接続してみんなで使う。全ての操作はネットワークに接続した状態で行われ、コミットは即時、中央リポジトリに反映される。
ex)CVSなど
fa-chevron-circle-right分散型
各自のPCにリポジトリを持ち(中央リポジトリを各自のPCにクローンしてきて)、好きなタイミングで中央リポジトリと同期する。ネットワークに接続する必要はなく、各自のPCで過去に戻せる。
ex)Gitなど
fa-chevron-circle-rightフォーク
他人がGithubで公開しているリポジトリを自分のアカウントにコピーすること。
fa-chevron-circle-rightクローン
リモートリポジトリをローカルリポジトリ(自分のパソコン)にコピーすること。
主要コマンド
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
① git init ↓ (Gitを使う準備をするコマンド)*ディレクトリをGitの管理下にするには、そのディレクトリに移動してこのコマンドを使用する ~ $ git init ② git add ファイル名 ↓ (共有したいファイルを選択する/ファイルをインデックスに登録するコマンド)*スペース区切りで複数指定も可/*すべてのファイルをインデックスに登録する場合は「git add .」 ~ $ git add example.txt ③ git commit -m "コミットメッセージ" ↓ (選択したファイルをメッセージ付きで記録するコマンド) ~ $ git commit -m "Change example.txt" ➃ git remote add リモート名 URL ↓ (リモートのURLを登録するコマンド) ~ $ git remote add origin https://example/example.git ➄ git push リモート名 master ↓ (リモートにファイルをPushするコマンド) ~ $ git push origin master ⑥ git pull リモート名 master ↓ (リモートからファイルをPullするコマンド) ~ $ git pull origin master ⑦ git status ↓ (ワークツリーとインデックスの状態を確認する/自分が変更したファイルのファイル名を表示する/どのファイルがaddされているのか見るコマンド) ~ $ git status ⑧ git diff ↓ (変更内容を表示するコマンド) ~ $ git diff ⑨ git log ↓ (コミットメッセージを表示する/リポジトリの変更履歴を表示するコマンド) * 「--graph」で履歴の詳細をテキストで表示。「--oneline」でコミットの情報を一行で表示。「--decorate」でタグ情報を含めた履歴を表示 ~ $ git log ~ $ git log --graph --oneline ⑩ git log -p ↓ (変更内容を表示するコマンド) ~ $ git log -p ⑪ git clone リモートURL 複製先の新しいディレクトリ名 ↓ (リポジトリを複製するコマンド) ~ $ git clone https://example/example.git example2 これでカレントディレクトリにexample2という名前のディレクトリ名でリモートリポジトリが複製される。 ⑫ git branch ブランチ名 ↓ (ブランチを作成するコマンド) ~ $ git branch example ⑬ git checkout ブランチ名 ↓ (ブランチをチェックアウトするコマンド) ~ $ git checkout example *ブランチの作成とチェックアウトを同時にする場合は「git checkout -b ブランチ名」で可。 ⑭ git merge ↓ (ブランチのマージをするコマンド) ~ $ git merge example ⑮ git branch -d ブランチ名 ↓ (ブランチを削除するコマンド) ~ $ git branch -d example ⑯ git tag タグ名 ↓ (タグを追加するコマンド) ~ $ git tag example *パラメータなし「git tag」でタグの一覧をが見れる ⑰ git tag -a タグ名 ↓ (注釈付きタグを追加するコマンド) ~ $ git tag -a example *パラメータなし「git tag」でタグの一覧をが見れる ⑱ git tag -am "コメント" タグ名 ↓ (-aオプションに-mオプションをつけるとコメントを与えれる) ~ $ git tag -am "example" example ⑲ git tag -n ↓ (タグの一覧とコメントを表示するコマンド) ~ $ git tag -n ⑳ git commit --amend ↓ (直前のコミットの内容を編集するコマンド) ~ $ git add example.txt ~ $ git commit --amend ㉑ git revert 任意のコミット ↓ (指定したコミットの内容を打ち消すコマンド) ~ $ git revert HEAD ㉒ git reset ↓ (要らなくなったコミットを捨てるコマンド) ~ $ git reset --hard HEAD~~ *間違えてresetした場合は「git reset --hard ORIG_HEAD」でreset前の状態に戻せる。 ㉓ git cherry-pick 任意のコミットのID ↓ (別のブランチの任意のコミットを現在のブランチに取り込むコマンド) ~ $ git cherry-pick 89j365g67nv85467w984n7v ㉔ git rebase -i ↓ (コミットの書き換え、入れ替え、削除、統合をするコマンド) ~ $ git rebase -i HEAD~~ ㉕ git config --global alias.短縮系 展開系 ↓ (エイリアスを設定できるコマンド) ~ $ git config --global alias.co checkout *エイリアスになに設定したか忘れたら「$ git config --global --list | grep ^alias\.」で確認可。 |
fa-chevron-circle-rightコミットIDの取得
コミット番号右クリックで「〜をコピーします」クリック。
fa-chevron-circle-right過去に戻ってブランチを作成し作業をやり直す
例えば、「被害者名」まで戻り、そこから新たなブランチをはやしたいとします。
1.「被害者名」にチェックアウト
2.ブランチアイコンから新規ブランチ作成
3.この状態で新しくコミット
過去に戻って作業をやり直したい→そこにチェックアウトしてブランチはやす
fa-chevron-circle-right過去の特定のコミットを無かったことにしたい(リバート)
追加した被害者が間違っていたから、内容を打ち消して無かったことにしたい。
右クリックで「コミット適用前に戻す」でOK
fa-chevron-circle-rightコミットを1つにまとめる(スカッシュ)
push前のみ有効な方法
「デマの報告」と「誤字修正」を一つにまとめたいとする。
1.「デマの報告」の直前のコミットで右クリック
2.「〜対話形式でリベース」
3.「過去を含めてスカッシュする」→「OK」
これでまとまります。
fa-chevron-circle-right不要になったブランチの削除
ブランチ右クリックして「削除」でOK
fa-chevron-circle-right直前のコミットメッセージを修正(push前に限る)
fa-chevron-circle-right未コミットのファイルを一時退避する(スタッシュ)
このような、コミットしてない変更がある場合は、他のブランチにチェックアウト出来ない。
その場合は、コミットかスタッシュする必要がある。
1.[スタッシュ] 2.メッセージ入力
すると[スタッシュ]からスタッシュされた内容が確認できます。
別のブランチにチェックアウトもできます。
スタッシュしていた作業の続きをやるには、任意のスタッシュを右クリックし、「退避した変更を適用」
これで元に戻ります。
fa-chevron-circle-right別のブランチから特定のコミットのみを取り込む(チェリーピック)
そのコミットを取り込みたいブランチに移動し、任意のコミットを右クリックで[チェリーピック]
チェリーピックはあくまで別のブランチのコミットをコピーしてくるだけ。別のブランチにはまだコミットが残っている。消すならリバートしよう。