WEB掻っ穿じり

WEB備忘録とチャリとカメラ

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