gitで迷惑かけないための、個人的な覚え書き。
category:web
gitの操作、コマンド、あれこれ個人的な覚書。
基本的な操作
- 新規リポジトリ作成
$ git init
- リモートリポジトリからクローン作成
-
$ git clone <URL>
- ログ確認(コミットハッシュ確認)
-
$ git log <URL>
- ログ確認(コマンドラインでブランチを視覚的に確認する)
-
$ git log --graph
- 変更ファイルをステージへ移動
-
$ git add <ファイル名、サブディレクトリ名>
- 変更ファイルの一部のみステージへ移動
-
$ git add -p <ファイル名>
- コミット メッセージ
-
$ git commit -m <メッセージ>
- チェックアウト
-
$ git checkout <ブランチ名>
- ファイルをignore
-
$ git rm --cached <ファイル名>
- ファイルごと削除
-
$ git rm <ファイル名>
- ディレクトリごと削除
-
$ git rm <ディレクトリ名>
- プル
-
$ git pull <リモートリポジトリ> <プルするブランチ>
- プッシュ
-
$ git push <リモートリポジトリ> <プッシュするブランチ>
- フェッチ
-
$ git fetch <リモートリポジトリ> <フェッチするブランチ>
- マージ
-
$ git merge <コミットハッシュ>
- リベース
- 分岐した作業履歴を1つにする
-
$ git rebase <ブランチ>
- リセット(破棄)
-
$ git reset <ファイル名> $ git reset --soft <コミットハッシュ> $ git reset --hard <コミットハッシュ>
- amend(直前コミットやり直し)
-
$ git commit --amend
- cherry-pick(指定したコミット適用)
- ローカルリポジトリ内任意のブランチのコミットを適用
-
$ git cherry-pick <コミットハッシュ>
- コンフリクト解決(マージ先のブランチの変更を正としたい場合)
-
$ git checkout --theirs <マージ先ブランチのファイル名>
- コンフリクト解決(チェックアウト中のブランチの変更を正としたい場合)
-
$ git checkout --ours <チェックアウト中ブランチのファイル名>
- ブランチ作成
-
$ git branch <ブランチ名>
- ブランチ名変更
-
$ git branch -m <元ブランチ名> <新ブランチ名>
- ブランチ削除
-
$ git branch -d <ブランチ名>
- ブランチ切り替え
-
$ git checkout <ブランチ名>
- ブランチをマージ
-
$ git merge <ブランチ名>
masterブランチ以外のリモートブランチをclone
- 現在リモートに上がっているブランチ名を確認
-
$ git branch -r
- リモートブランチ名が表示される。
-
origin/HEAD -> origin/master origin/feature/****01 origin/feature/****02 origin/master
- 「feature/****01」のブランチをcloneしたいとき
-
$ git checkout -b local_name feature/****01
- ローカルにクローンした「local_name」と言う名のリポジトリが作成されている
過去コミットを無かったことに
- 特定の過去のコミットを打ち消したい場合(ID:**********)
-
$ git revert **********
- コミットの内容によってはコンフリクトが起こるので、よしなに解決する。
.gitignoreファイルの記述
除外ファイルの設定
書式 | 説明 |
---|---|
# | (コメント) |
! | (否定) |
test.txt | (指定ファイル) |
/test.txt | (ルートの指定ファイル) |
testdir/ | (指定ディレクトリ) |
*.psd | (指定の拡張子) |
過去にコミット済みの内容を管理しないようにするには、SourceTreeで追跡をやめる(Stop Tracking)の後に無視(ignore)で.gitignoreに追記される。
改行コードの自動処理設定(Win)
WinとMacの改行コード違いの問題(マージ時全行コンフリクト等)を回避できる機能。
Winでプッシュする際に自動で「LF」に変更してくれる。
$ git config core.autocrlf true
Macは「LF」で統一、Winはプル時「CR + LF」に、プッシュは「LF」に変換。
コミットにタグをつける
- タグを追記
-
$ git tag -a <タグ名>
- 注釈を追記
-
$ git tag -m "注釈"
- 注釈付きタグを追記
-
$ git tag -am "注釈" <タグ名>
- タグの一覧表示
-
$ git tag -n
スタッシュ(一時退避)して割り込み作業をする
コミットするにも中途半端で、他のブランチでの作業、プル・プッシュを行いたい場合など。
- スタッシュする(save省略可)
-
$ git stash save
- メッセージをつけてスタッシュする
-
$ git stash save "message"
- 一時退避させている変更ファイルたちを一覧で表示
-
$ git stash list
- 変更内容を表示
-
$ git stash list -p
- 変更内容の詳細を表示
-
$ git stash show <stash名>
- スタッシュ名<stash@{0}>で取り出し
-
$ git stash apply stash@{0}
- 一番最後にstashした作業を復元、stashから削除
-
$ git stash pop
- 作業を復元
-
$ git stash pop stash@{0}
- 作業を削除する
-
$ git stash drop
- すべてのスタッシュを削除
-
$ git stash clear