3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Git/GitHubの基礎知識

Last updated at Posted at 2019-06-20

Gitとは

プログラムのソースコードなどの変更履歴を記録・追跡するためのバージョン管理システム。

GitHubとは

ローカル環境で作成したコードをリモートリポジトリで公開するためのツール

0.用語解説

word         meaning
repository ファイルや変更履歴を保管する場所
ローカルリポジトリ(自分のパソコン上)
リモートリポジトリ(Webサービス上)
worktree 編集したファイルが自動的に保存される場所(※コミットの対象でない)
index 編集したファイルを仮確定して置いておく場所(※コミットの対象になる)
ワークツリーとリポジトリの間に存在
remort 共有ファイルの置き場所
commit 変更履歴の保存
Fork 他の人が公開しているリモートリポジトリを自分のアカウントにコピー
Clone リモートリポジトリをローカル環境(自分のパソコン)にコピー
branch 履歴の流れを分岐して記録する際に使用
分岐したブランチは他のブランチの影響を受けない
同じリポジトリ中で複数の変更を同時に進められる
merge masterから分けたブランチを統合・合体させる
Push ローカルリポジトリからリモートリポジトリへアップロード   
pull リモートリポジトリからローカルリポジトリへデータをダウンロード   
pull request 「プルリク」、「PR」と略される
自分のパソコンで開発したソースコードをリモートリポジトリにプッシュした後に変更内容を他の人にコードレビューしてもらい、masterに追加しても良いか確認
revert コミットの削除ではなく、反対の内容で新規コミットを作ることで過去の変更を打ち消す
rebase 履歴が枝分かれせずに一直線となる
squash コミットを一つにまとめる
fetch リモートリポジトリから更新内容をダウンロードし、ローカルリポジトリ内のリモート追跡ブランチを更新(※マージした時にローカルリポジトリが更新される)
stash 未コミットのファイルを一時退避
cherry-pick コミットしたブランチを別のブランチへ変更

1.ローカルリポジトリの作成

$ git init

initializeの略:初期化
・ディレクトリ内に中身が空のローカルリポジトリを作成
Reinitialized existing Git repository in /Users/〜〜〜〜〜〜/.git/が表示された場合、すでに存在するものを初期化したという意味、エラーではない

2.変更ファイルをインデックスに移動

$ git add(reset) ファイル名

・変更があったファイルをインデックス移動させ、変更履歴を保存するための準備
・ワークツリー⇨インデックスへ移動(add)〈ステージとも言う〉
・インデックス⇨ワークツリーへ移動(reset)〈アンステージとも言う〉
・ファイル名無しの場合、git add(reset) .で全て選択
・コミット前の変更内容を一時的に退避(復元)git stash (pop)

3.ファイル変更の履歴を保存

$ git commit -m "メッセージ"

・メッセージは" "で囲む
・メッセージは変更した内容が分かりやすように表記
・コミットメッセージを修正 $ git rebase -i HEAD^

4.リモートの登録

$ git remote add リモート名 URL

・一般的にリモート名はorigin
・リモートにファイルをアップロード、リモートからファイルをダウンロードすることで、他者とファイルを共有することができる

5.リモートへのファイルアップロード

$ git push リモート名 master

・アップロードのことをプッシュという

6.リモートからのファイルダウンロード

$ git pull リモート名 master

・ダウンロードのことをプルという

7.変更ファイルの把握

$ git status

・変更があったファイルは赤字で表示 modified ファイル名
・追加されたファイルは緑字で表示modified ファイル名

8.変更内容の把握

$ git diff

・変更前のコード(赤字)
・追加コード、変更後のコード(緑字)

9.コミットメッセージの確認

$ git log

・自分や他人のコミットを表示

10.コミット内容の確認

$ git log -p

qキーを押して終了

11.ブランチの一覧を表示

$ git branch

が現在のブランチ

12.ブランチの作成&削除&切替

①$ git checkout ブランチ名 # ブランチの切り替え
②$ git checkout -b ブランチ名 # ブランチの新規作成&切り替え
③$ git branch -d(D) ブランチ名 # マージしたブランチの削除

・②Switched to a new branch 'ブランチ名'と表示され、切替も行われる
・③Dは強制削除(マージ済みか関係なく)
 ※マージ済か確認【$ git branch --(no-)merged master

13.変更内容の統合

$ git merge ブランチ名①(統合する側)

・ブランチ②(統合される側)に移動してから実行する

14.過去のコミットの状態にファイルを戻す

$ git checkout HEAD^

^が1つは1つ前のファイル、^^^なら3つ前のファイルに戻す

15.ローカルリポジトリからリモートリポジトリへプッシュ

①バージョン管理の開始【$ git init】(1回目だけ)

worktreeで作成したコードをindexに移動させる【$ git add .

③ファイル変更の履歴保存【$ git commit -m "メッセージ"
 ※$ git commitvim編集も可能
  ①i②コミットメッセージ入力③esc:wq

④GitHubでNew repositoryの作成

⑤ローカルリポジトリとリモートリポジトリを関連付けるURLをコピー【Clone or downloadをクリック】

⑥関連付け【$ git remote add origin ⑤のURL
 git remoteで確認するとoriginに関連付けされる

originに対してプッシュする【$ git push origin ブランチ名
 リモートリポジトリにソースコードが反映される

16.共同開発の流れ

①GitHubでClone or downloadをクリックしURLをコピー

②クローンする(※コピーしたい場所のディレクトリ上で)【$ git clone ①のアドレス

③クローンしたディレクトリへ移動【$ cd ディレクトリ】

④ブランチの作成または切替【$ git checkout (-b) ブランチ名

$ git add .

$ git commit -m "メッセージ"

$ git push origin ブランチ名

⑦GitHubで変更されたブランチのCompare & pull requestをクリック
 ※動作確認を行い、正常に機能するか確認してから行うこと

⑧title(変更内容の表題)とWrite(変更内容の詳細)を記入し、Create pull requestをクリック
 ※どのブランチにプルリクエストを送るのか確認
 ※Writeはマークダウンで記入できる

⑨他の人にコードレビューしてもらいMerge pull requestConfirm mergeをクリック
 ※自分がチェックする場合は、Files chengedをクリックし、変更内容をチェック

⑩マージが終われば、統合前のブランチが不要になるためDelete branchをクリック

17.リモートリポジトリの情報をローカルリポジトリに反映させる#

・ローカル環境へ変更内容を反映【$ git pull origin master
  ※マージ後のファイル内容はローカルリポジトリには反映されていないため
  ※ブランチをmasterに移動してから実行
  ※git fetch(取得)git merge(反映)を同時に行われている
  ※git fetch(取得)はローカルのファイルは変更されないが、ブランチを指定せずにリモートの情報を一括で取得できる

18.コミットメッセージの変更

①過去のコミットメッセージを確認【$ git log
$ git rebase -i HEAD^
③iを押して表示をINSERTモードに切り替え、一番上に書かれているpickの部分をrに変更
④escを押し、:wqで上書き保存
⑤iをクリックしてINSERTモードに切り替え、コミットメッセージを変更
⑥escを押し、:wqで変更内容を保存

19.コンフリクトの解消

①ローカルリポジトリでmasterブランチへ切り替え【$ git checkout ブランチ名
②リモートリポジトリのmasterをpull$ git pull origin master
③コンフリクトしたブランチへ移動【$ git checkout ブランチ名
④変更を反映させたmasterを③のブランチにマージ【$ git merge master
⑤再度変更内容をリモートリポジトリへpush

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?