Git、GitHub初心者の私がまず初めに学んだ「Gitコマンド集&用語集」になります。
実際のタスクの基本的な進め方に沿って、コマンドを紹介していきますので、これさえ見ればとりあえず基本はOKではないのかなと思います。
リモートリポジトリからローカルリポジトリにクローンする
まずは、リモートリポジトリからローカルリポジトリにクローンを行います。
Githubに上がっている大元のソースをローカルリポジトリにクローンします。
git clone [ここにクローンする元のURL]
● リポジトリ(repository)とは?
ソースコードや変更履歴、コメントなどを一括して保管する場所。
リポジトリには、自分のPC上に作る「ローカルリポジトリ」と、
「GitHub」などのWebサービス上に作る「リモートリポジトリ」がある。
● clone とは?
Github上にあるソースなどを複製すること。
ブランチの作成
タスクを行うブランチを作成します。
git switch -c 新しいブランチ名
< 切るブランチの指定がある場合 >
①最新のリモートリポジトリの情報をダウンロードする
⇒自分以外の他の人が修正・改修している可能性があるので、リモートリポジトリとローカルリポジトリを同じ状態にする必要がある。
git fetch
②最新の情報をローカルリポジトリにmergeします。
git pull origin develop
※特定のブラントのみをpullする場合は、
git pull origin ブランチ名
③指定のブランチから切る
git switch -c 切るブランチ名 origin/切るブランチ名
※origin
とは、リモートリポジトリを指します。
④新しいブランチを作成する
git switch -c 新しいブランチ名
● ブランチとは?
コミット履歴の流れを枝分かれさせるための機能のこと。
さらにわかりやすく説明すると...
修正・改修する際に、自分以外の人も修正・改修を行えるように、別環境(ブランチ)を作成する。
後々、修正したもの(分けたブランチ)を、大元のブランチ(ベースブランチ)に合体(merge)します。
リモートリポジトリにpushする
タスクが完了しましたら、リモートリポジトリにmergeする
①修正・改修の内容をステージングエリアに追加します。
git add .
②修正・改修の内容をリポジトリに保存します。
git commit -m "ここにメッセージを記載"
③リモートリポジトリのブランチ履歴を更新します。
git push origin ここにブランチ名
=git push origin HEAD
● Gitのステージングについて
Gitは、以下の3つのステージがあります。
修正・改修を行うと、作業ディレクトリ
からステージングエリア
にあげ、ステージエリアからgitレポジトリ
にあげます。
作業ディレクトリ(ローカル):全てのファイル
↓
ステージングエリア:作業ディレクトリから、git add で追加されたファイルが格納される。
↓
gitリポジトリ(リモート):ステージングエリアから、git commit でコミットされたファイルが格納される。
Pull Requestを行う
pushを行うと、GitHub画面画面にCompare & pull request
ボタンが表示されるので、PRを作成してください。
● Pull Request(プルリクエスト)とは?
Pull Requestとは、本体への反映を他の開発者に依頼する機能になります。
以上が、基本的なGitコマンド集&用語になります。
後々、ここにコンフリクトが起きた際のコマンドでの対応方法についても記載する予定です。
用途別によく使うコマンドを以下にまとめました。
★用途別に使えるコマンド
ブランチの一覧を確認したい!
git branch
ブランチを削除したい!
git branch -D 削除するブランチ
pushの履歴を確認したい!
git log
直前のcommitを取り消したい!
git reset --hard HEAD^
ブランチとブランチの差分を確認したい!
git status
指定のリモートリポジトリのブランチと、ローカルリポジトリの差分を埋めたい!
git pull [ここにリモートリポジトリのブランチ名
Non Fast Forwoardとは?
ある「ブランチ A」というブランチ の内容と master の内容を活かしつつ、それらをマージして新たな合流地点を作る、そうした作業が Non Fast Forward のマージです。
git merge ここにブランチ名 --no-ff
まとめ
ただコマンドを羅列するだけでは、「いつこのコマンドを使えばいいのか?」イメージがしにくいのではないかと思い、実際の制作の流れに沿ってコマンド&用語を紹介しました。