LoginSignup
0
0

More than 1 year has passed since last update.

git コマンド覚書

Last updated at Posted at 2021-09-11

初期設定

git clone
git add .
git commit -m
git push origin main

git pull
git fetch → git merge

ワークディレクトリがクリアになった状態のファイルは
pullすると同期される。
リモートで削除されていればローカルでも削除される。
ただし、ローカルで変更を加えたファイルはpullしても変更はない。

コミットの構成

圧縮ファイル - ツリーファイル - コミット

ファイル 内容
圧縮ファイル 圧縮されたファイルデータ
ツリーファイル 今のワークディレクトリ内の圧縮されたファイルのデータの一覧
コミット ツリーファイル・親コミット・作成者・日付・コミットメッセージ

変更点の確認

git add する前の変更分

git diff
git diff "ファイル名"

git addした後の変更分

git diff --staged

変更履歴

git log
git log --oneline
git log -p "ファイル名"
git log -n "表示するコミット数"

ファイル操作

リポジトリからのファイルの削除

git rm
git rm (--cached)

ファイルの移動

git mv
- mv "旧ファイル名" "新ファイル名"
- git rm "旧ファイル名"
- git add "新ファイル名"

ワークツリーのファイルへの変更を取り消す

最新のステージの情報でワークツリーを上書きする

git checkout -- "ファイル名"/"ディレクトリ名"

ステージに追加した変更済ファイルを追加前に戻す

最新のコミットでステージを上書きする

git reset HEAD <ファイル名>/<ディレクトリ名>

直前のコミットをやり直す(直前のコミットを上書きする)

git commit --amend

リモートの情報を表示する

git remote -v
git remote show

gitのリモート名を変更

git remote rename origin origin2

ブランチ操作

全てのブランチを表示

git branch -a

ブランチ作成

git branch "ブランチ名"
git checkout -b "ブランチ名"(作成&移動)

ブランチ削除

git branch -d "ブランチ名"(mainにマージされてない変更がある場合は削除されない)
git branch -D "ブランチ名" (強制削除)

リモートブランチの削除

今いるブランチのブランチ名変更

git branch -m "ブランチ名"

merge

マージとは変更分を取り込むこと。
mainにfeatureを取り込むにはmainブランチに移動してgit merge feature とする。

マージの種類

マージ方式 処理内容
fast-forward ブランチが枝分かれしていない。先に進めるだけ
auto-merge 複数のブランチを統合。マージコミットが作成される。
conflict 同じ行に対して複数人が異なる変更を実施した。修正方法はToBEの状態に実際にファイルを編集する。

コンフリクトを起きないようにするには

・複数人で同じファイルを編集しない
・PullやMergeの前に変更中の状態を無くしておく(commitやstashをしておく)
・Pullするときは、Pullするブランチに移動してから実行する

変更取込みはmergeとrebaseがある

rebase:ブランチのbase(親コミット)となるコミットを別のコミットにする
利点:履歴を一直線にできる

git rebase "ブランチ名"

git rebese の一連の流れ

git checkout feature
git rebase main
git checkout main
git merge feature

tag

軽量版

git tag "タグ名"

注釈版

git tag -a "タグ名"
git tag -a "タグ名" -m "注釈"
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