概要
gitの使い方のメモです。
筆者のプログラミングの経験は以下です。
git: 1週間
そのため、理解が間違っている箇所が多々あると思いますがご了承ください。
各種バージョン
npm : 6.14.8
gitのコマンドの目次
1. gitの起動とコミット
- git init
- git add
- git commit
- git status
- git log
- git reset
2. branchの運用
- git branch
- git checkout
- git merge
3.githubとの提携
- git remote add origin
- git push origin ブラン
- git fetch origin ブランチ名
- git diff HEAD origin/ブランチ名
- git pull origin ブランチ名
4.githubの設定
- git config --global --list
- git config --global 設定
- git config --local 設定
1.gitの起動とコミット
ここではローカルリポジトリの起動とコミット等の基本をまとめる。
ここで使用するコマンド
gitの起動
git init
ファイルをgitのステージング環境に上げる
git add ファイル名
前回のcommitからの変更状態の確認
git status
addの取り消し
git reset ファイル名
ステージング環境の変更をローカルリポジトリに取り入れる
git commit -m "コミットメッセージ"
コミットの履歴を確認
git log
コミットの取り消し
git reset id
ここではローカルリポジトリにファイルを追加してコミットするところまでを目標とする。
まず、gitで管理するフォルダを作成する。
今回は便宜上git-practiceというフォルダを作成する。
mkdir git-practice
cd git-practice
git-practice上でファイルを作成する。
今回はnodejsのexpressを使ってgitの操作をなれる。
1-1gitの立ち上げ
git init
次にexpressなどのnodejsに必要な情報をダウンロードする。
tips
gitのリポジトリになっているかどうかは
shift+command+.
で隠しファイルの確認から確認可能。
gitが起動していれば.gitというフォルダが確認できる。
1-2 gitのファイルを追加と取り消し
npm init を使ってnodejsを立ち上げる。
すると、package.jsonと言うjsonファイルが追加される。
ここでgitを立ち上げてから前回までの履歴を以下のコマンドで確認する。
git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
package.json
nothing added to commit but untracked files present (use "git add" to track)
package.jsonが追加されているのが確認できる。
これをステージングに追加するには以下のコマンドを使う。
git add . #ファイル名のところを.ですべて追加
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: package.json
new file: package.json というのが現在ステージング環境にいることが確認できる。
git addを取り消すには以下のコマンドを使用する。
git rm --cached -r . 初回のファイルを全て取り消し
git rm --cashed -r ファイル名 初回のファイルを取り消し
git reset HEAD 二回目以降のgit addを取り消し
git reset HEAD ファイル名 二回目以降の特定のgit addを取り消し
1-3 ローカルリポジトリに変更をコミットする
ステージング環境の変更をローカルリポジトリに取り入れるためにはコミットをする必要がある。
コマンドは以下。
git commit -m "変更内容等のメッセージ"
commit-messageには変更した内容があとから見てわかりやすいものにする。
(例) add packege.json
コミットの履歴は、以下のコマンドで確認が可能。
git log
コミットの取り消しには以下のコマンドを使用。
commit_idの地点までcommitを戻すことができる。
git reset commit_id
commit_idはgit logで確認可能。
commitの後で暗号のようになっているもの。
commit 8b0e6************ ← ここがcommit_id
Author: ******
Date: *****
練習問題1
① npm install expressをしてパッケージをダウンロードし、変更内容をコミットする
② ssというからファイルを作成し、addからのreset,commitからのresetをする
2. branchを使って作業を分岐
ここでは作業内容に応じてブランチを作成するやり方をまとめる。
ここで使用するコマンド
ブランチの確認と作成
git branch ブランチ名
ブランチ間の移動
git checkout 移動したいブランチ名
ブランチの取り込み
git merge 取り込みたいブランチ名
リモートリポジトリの変更内容を取得
git fetch origin ブランチ名
リモートリポジトリの変更内容の差分を表示
git diff HEAD origin/ブランチ名
2-1 ブランチの作成と移動
ブランチの作成は以下のコマンド。
git branch ブランチ名
ブランチ名にはdevelopやaddfileなど作業内容がわかりやすいものにする。
ブランチ名を指定しないと現在存在するブランチを確認することができる。
ブランチ間を移動するには以下のコマンド。
git checkout ブランチ名
2-2 ブランチの取り込み
例えば、htmlというブランチを作ってmasterブランチにその内容を取り込みたかったら以下のコマンドを使う。
git merge 取り込みたいブランチ名
取り込むブランチ(master)に移動→マージするの手順ですすめる。
練習問題2
addというブランチを作成して、適当なファイルを追加後masterブランチに変更内容とを取り込む。
3.githubと連携する
github上のリポジトリと連携してプロジェクトを進行する方法をまとめる。
ここで使うコマンド
リモートリポジトリの追加
git remote add origin githubのリポジトリのurl
ローカルリポジトリの内容をgithubのリポジトリに反映
git push origin ブランチ名
3-1 リモートリポジトリの追加
githubにgitの練習用のリポジトリとしてgit-practiceというリポジトリを作ったとする。
そのリポジトリのurlが https://practice だったとすると反映は以下のコマンドで行う。
originというのはリモートリポジトリの名前。
git remote add origin https://practice
3-2 ローカルリポジトリのコミット内容をgithubに反映
例えばdevelopブランチでcommitをした内容を加える場合は以下。
git push origin develop
tips
3-3に入る前にローカルブランチがどのブランチに対して適応しているか確認したほうがよい。
方法は以下。
git branch -vv
3-3 リモートリポジトリで行われた変更内容を取り込む
例えば3人で作業しており,AさんがdevelopでREADME.mdに情報を追加したとする。
あなたのローカルリポジトリにはその変更内容はないので確認する必要がある。
確認するためのコマンドは以下。
ローカルのリポジトリ情報を全て更新
git fetch
リモートの特定のブランチのfetch
git fetch origin {ブランチ名}
リモートのブランチを獲得できたかを確認
git branch -r | grep {ブランチ名}
取り込んだ変更内容を確認するためのコマンドは以下。
git diff HEAD origin/develop
そして変更内容が良かった場合
git pull origin develop
git pull = git fetch + git merge
といった感じで情報をリモートからとってきてその情報をマージする役割をしている。
4.githubの設定
githubのユーザーを複数分けるときの設定方法について記述する。
4-1 git config --global --list
以下のコマンドでgit configの各種設定を確認することができる。
$ git config --global --list
>>>
user.email=githubで設定しているemail
user.name=githubで設定しているusername
merge.ff=false
・
・
4-2 git config --global 設定
git config --global 設定
とすることでgithubの全てのリポジトリでの設定を変更することが出来る。
例えばusernameとemailの設定を変更したい場合は以下のようになる。
※user.nameが""でemailが""がないことに注意
git config --global user.name "ユーザーネーム"
git config --global user.email メール・アドレス
4-3 git config --local 設定
git config --local 設定
とすることで現在のディレクトリで進行しているリポジトリのみ設定を変更することが出来る。
例えばusernameとemailの設定を変更したい場合は以下のようになる。
git config --local user.name "ユーザーネーム"
git config --local user.email メールアドレス
まとめ
githubでの開発の流れは以下のようになる。
1.ローカルで開発
2.リモートにプッシュ
3.親ブランチにpullリクエスト
1〜3の繰り返しになる。
フローは以下の記事でよくまとめられている。
https://qiita.com/ohnaka0410/items/7c7fa20710dfd72b7d7a