トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

git

git

[OSS]
最終更新時間:2014年03月10日 13時09分42秒

git

git使ってみます。

 ローカルリポジトリ作成

 # mkdir ~/work
 # cd ~/work
 # git init

 リモートリポジトリ作成

 # mkdir -p /var/git/myapp
 # cd /var/git/myapp
 # git --bare init --share=true

 リモートリポジトリに反映

 # cd ~/work
 # git remote add origin ssh://hoge@localhost/var/git/myapp
 # git push origin master

 リモートリポジトリにブランチを反映

 # git push origin [ブランチ名]

 リモートリポジトリから反映

 # cd ~/work
 # git pull origin master

 ローカルリポジトリとの変更点確認

インデックスとローカルファイルの差分

 # git diff

最新コミットとローカルファイルの差分

# git diff HEAD

インデックスと最新コミットの差分

# git diff --cached

 インデックスファイルに登録

通常

# git add [ファイル名]

全てのファイル(新規ファイルは除外)

# git add -u

部分的に記録する

# git add -p

 コミット

通常

 # git add test
 # git commit -m 'test commit'

単一ファイル

# git commit -m 'hogehoge' [ファイル名]

一括

# git commit -a

ログ出力も一緒に行う場合

# git commit -v

 状態確認

# git status

 コミットログ

通常

# git log

パッチ形式で2世代分を1行目のみ表示

# git log -2 -p --pretty=short

リモートリポジトリのコミットログ

# git fetch origin (originは省略可能)
# git log origin

変更・追加されたファイルを表示する

# git log  --stat
# git log --numstat
# git log --name-status
# git log --name-only

 コミット確認

# git show

 ブランチ確認

ローカルブランチ確認

# git branch

リモートブランチ確認

# git branch -r

すべて確認

# git branch -a

リモートから削除されたブランチがローカルに存在するかの確認

# git remote show origin

 ブランチ作成

# git branch [ブランチ名]

作成して切り替える

# git checkout -b [ブランチ名]

リモート上にあるブランチとローカルのブランチを結びつける

# git checkout -b [ブランチ名] origin/[ブランチ名]

 ブランチ切り替え

# git checkout [ブランチ名]

 ブランチ反映

リモートにあるブランチをローカルに反映させる

  • origin以下全てを反映させる場合
# git fetch origin
  • 特定のブランチを反映させる場合
# git fetch origin/[ブランチ名]
  • リモートに存在しないローカルリモートブランチを削除

# git fetch --prune

 ブランチ削除

ローカルブランチ削除

# git branch -d [ブランチ名]

ローカルにあるリモートブランチの削除

# git branch -rd [ブランチ名]

リモートブランチ削除

# git push origin :[ブランチ名]

リモートから削除されたブランチをローカルから削除

# git remote prune origin

 ファイルを前の世代に戻す

  • 世代確認
# git log [ファイル名]
  • 戻したい世代の状態確認(下記は2世代前の確認)
# git show head~2:/path/to/file
  • 元に戻す
# git checkout head~2 /path/to/file

 空ディレクトリ

空ディレクトリはgitの管理下に置かれないので対象のディレクトリ以下に.gitkeepというファイルを作成してあげるのがいいらしい。

.gitkeepの作成

# touch /path/to/dir/.gitkeep

ディレクトリが複数あって探すのが困難な場合は以下のコマンドで対処する

# find . -type d -empty -not -path './.git*' -exec touch {}\/.gitkeep \;

findの使い方はLinuxコマンド集を参照

 コンフリクト

http://d.hatena.ne.jp/sinsoku/20110831/1314720280

 trailing whitespace

行末にスペースが入っているのが原因

vimで行末スペースを取り除く

 %s/ *$//

行末スペースを無視する設定

ググれ