初期設定
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 "注釈"