【Git】個人開発でよく使うGitコマンド
個人的によく使うGitコマンドをまとめてみました。
git init
ディレクトリをGit管理下に置くコマンドです。
これで、git関連ファイルが作成され、Gitを使ってディレクトリのバージョン管理ができるようになります。
git status
git管理下にあるディレクトリの変更箇所を一覧で見ることできます。
ステージング前のファイルでの変更箇所を見たい場合は、git diff
ステージング後のファイルでの変更箇所を見たい場合は、git diff -cached
git log
ローカルリポジトリのコミット履歴を表示する。これでコミットID、日時、コメント、変更箇所などが見れる。
基本的にはこれでいいと思う。
1行で簡易表示させたい場合は、git log --oneline
変更箇所と変更行数を表示したい場合は、git log -p
git add -A
git add ○
で指定したファイルをaddできます。○=ファイルパス
git add -A
で、管理下にあるディレクトリで変更分のみ、addできます。
変更したかどうかに関わらず、git管理下にあるすべてのファイルをaddしたい場合は、git add .
で出来ます。
git commit
git commit
でaddして保存された内容にコメントを付けて、コミットできます。
git管理下にあるディレクトリの変更箇所のみをローカルリポジトリに保存できます。
オプションなし(= git commit
)に実行することそのままエディターが開き、そこでコメントが打てます。
簡単なコメントを添えてコミットしたい場合は
git commit -m "your comment "
でコミットできます。
addとcommitを合わせて実行したい場合は、git commit -amend
git push
リモートリポジトリ(githubなど)にローカルリポジトリの内容を反映できます。
マスターブランチのものを反映したい場合は、git push origin master
となります。
サブブランチのものを反映したい場合は、git push subbranch_name
で出来ます。
git pull
リモートリポジトリをローカルリポジトリに反映したい場合は、git pull origin master
で出来ます。
個人開発では2台のPCを使って開発を進めたいときなどに使えると思います。
git checkout -- filename
ステージング前の変更を取り消す。
つまり、追加・修正など変更を加えていたものすべてを最新のステージング後の状態に戻す。
git commit --amend
直前のコミットの内容を変更する。
直前のコミットを取り消す場合は、git revert HEAD
。
git revert HEAD^
で、2つ前のコミットを取り消すこともできる。
これらはpushしてしまったコミットには、使えません。
git reset --hard HEAD
1つ前のコミットの状態に戻ることができる。
2つ前のコミットの状態に戻るには、git reset --hard HEAD^
git mv filename, git rm filename
git管理下にあるファイルを移動する。(git mv filename)
git管理下にあるファイルを削除する。(git rm filename)
git管理下にあるファイルの場合、通常のLinuxコマンドmv filename
, rm filename
では移動・削除はできない。
git config --global alias.〇 △
○=エイリアス名(短縮名)、△=コマンド名(add, commit, statusなど)
命令(add, commit, statusなど)にエイリアス(短縮名)を付けて実行できるようにする。
例)git config --global alias.ci commit
することで、git ci
でコミットできるようになる。
設定したエイリアスを確認するには、git config -l
ここからは補足です。興味ある方は見てみて下さい。
add, commit, pushは具体的に何してるのか
まずはGitの仕組みについて簡単に説明するよ
Gitには現在作業をしているGit管理下のディレクトリ「ワーキングツリー」
バージョンを管理したいファイルを置いておく「インデックス」(ステージングエリア)
過去の変更履歴を管理したりリモートリポジトリに送る変更履歴がある「ローカルリポジトリ」
複数人で変更履歴を共有できる「リモートリポジトリ」の4つのエリアがあります。
上記でも少し出てきたブランチというものもありますが、今回は割愛します。
add
git addではワーキングツリーからインデックスに管理したいファイルやフォルダを追加すること(ステージング)を行っています。
ファイルはインデックスに追加すればバージョン管理できますので、変更したファイルはインデックスに追加しておきましょう。
ただし、パスワードなど外部に漏れたら困る情報が記載されたファイルはステージングしないようにしましょう。(特定のファイルを無視するには.gitignoreファイルを使えば無視できます。)
commit
git commitではインデックスのファイルの変更内容をコメントを付けてローカルリポジトリに記録することを行っています。
push
git pushではローカルリポジトリからリモートリポジトリにアップすることを行っています。
これでローカルリポジトリの変更履歴をリモートリポジトリに反映させることができます。
イメージとしてこんな感じ
分かりやすい図があったので、引用してます。
引用元:【Git入門】初めに知るべき仕組み・基本知識 全まとめ【これだけでOK】 | 初心者向け完全無料プログラミング入門
Git管理ファイル作成からpushまでの流れ(Github利用)
作業用ディレクトの最上位に移動
↓
git init
↓
git remote add origin repository_URL
↓
git add -A
↓
git commit
↓
git push
参考サイト
Gitの仕組み kray.jp oldbigbuddha.dev
Git管理ファイル作成からpushまでの流れ(Github利用) techacademy.jp