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
          

comments powered by Disqus