LoginSignup
0
0

More than 1 year has passed since last update.

俺のgitチートシート

Last updated at Posted at 2021-12-12

はじめに

個人学習でしか使ったことないです。
gitでバージョン管理をすると、よくわからなくなった際戻せるので楽
都度調べるのは面倒なので、boostnoteにまとめています。
今回はそれを共有
PS: boostnoteは旧版が便利だと個人的に思ってます。

Git コマンド

ローカルリポジトリを作成 ~個人開発~
git init

cloneを作成 ~チーム開発~
git clone <Git hubのcloneの作成リンクのURL>

変更状況を確認する
git status

変更内容を確認する
git diff 前回のcommitからの変更
git diff コミットAのID..コミットBのID コミットAとBの差分
git diff<ファイル名>
dit diff --staged git addした後の変更内容を確認 wtとstageの間

git diff --cached git addした後 Indexと最新のコミットの違いを確認

ステージに記録
git add
<ファイル名> <ディレクトリ名> 全て .

コミットする
git commit
git commit -m 'second commit'
-v 変更内容を確認可能

pushする
git push origin master

変更履歴を確認する
git log
git log -n 3
git log --oneline
git log -p index.html
git log --graph


ファイル/ディレクトリを削除する
ファイルを削除したい場合エディタやshellコマンドで削除してaddしてもgit rmと同じ内容になる。git rmを使うとaddを省略できるので楽

ファイルやディレクトリの削除をstageに記録
git rm <ファイル名>
git rm -r <ディレクトリ名>
wtのファイルを削除し、stageに削除した記録をする その後commitが必要

ファイル削除をstageに記録するが、wtには残す
git rm --cached<ファイル名>


ファイル名の変更
git mv<旧ファイル><新ファイル>
wtのファイル名を変更してステージに変更したことが記録される


ファイルの場所を変更する
git mv <場所を変えたいファイル> 変更先のpath


取り消しするコマンド

ファイルへの変更を取り消す
git checkout -- <ファイル名>
git checkout -- <ディレクトリ名>
git checkout -- .

ステージに追加した変更を元に戻したい時
git reset HEAD <ファイル名>
git reset HEAD <ディレクトリ名>
git reset HEAD .
影響はステージのみ ワークツリーはそのまま
どちらも戻したい場合どちらもやる
HEADは最新のcommitのこと

直前のコミットをやり直す
git commit --amend
リモートリポジトリにPushしたコミットはやり直しちゃだめ
今のステージの内容で直前のcommitを上書きする
消去ではなく上書きしている点に注意
複数のコミットを一度にやり直す場合Rebaseを使う


ブランチ関連

ブランチを切り替える
git checkout <既存ブランチ名>
git checkout -b <新ブランチ名> 作成と切り替えを一度で

新しいブランチを追加
git branch <ブランチ名>ブランチの切り替えは行わない

ブランチを削除
git branch -d <ブランチ名> HEADは削除できない

ブランチの一覧を表示
git branch
git branch -a リモートリポジトリも確認できる

ブランチがどのコミットを参照しているか確認する
git log --oneline

リモートブランチをローカルにコピーして移動
git checkout -t origin/develop

変更をマージする
git merge<ブランチ名> HEADに指定したbranchが統合
git merge<リモート名/ブランチ名>
git merge origin/master
他の人の変更内容を自分のブランチに統合する
上書きではない。統合された新しいコミットが作成される 元のブランチのコミットをベースに統合したブランチの変更分を取り込んでいる
fast mergeの場合はブランチを進めるだけ
mergeする前にローカルに落とす必要がある もしくは一気にやるか

git pullでfetchとmergeができる

## リモートリポジトリ関連 command

リモートを表示する
git remote
git remote -v 対応するURLを表示

リモートの情報を詳しく確認する
git remote show <リモート名>
例:git remote show origin

リモートリポジトリを新規
git remote add <リモート名> <リモートURl>
リモートリポジトリは複数追加可能

リモートリポジトリへ送信する
git push -u 任意の名前 master


リモート名を変更
git remote rename <旧リモート名> <新名前>

リモートを削除
git remote rm <リモート名>
例 git remote rm tutorial


リモートリポジトリから情報を取得する

fetchを使う
git fetch <リモート名>
例:git fetch origin  通常はこっち
例:git fetch origin master
リモートリポジトリをローカルリポジトリにコピーする
ワークツリーは変わらない

取得したコミットをワークツリーに反映
git merge origin/master

git fetchした内容はremotes/origin/<ブランチ名>に登録される
git branck -aで確認できる

pullを使う
リモートの情報取得をマージを一度に行う
git pull <リモート名> <ブランチ名>
例: git pull origin master
上記の例はgit pullで省略可能

pullは挙動が特殊。pullすると現在いるブランチにmergeする
予想外のブランチに統合する可能性があるので基本fetchを使う

rebase型のpull
git pull --rebase <リモート名> <ブランチ名>
git pull --rebase origin branch

0
0
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
0
0