FrontPage

Git-logo.svg_.png

利用例

Gitの設定を行う

  • ユーザ名,メールアドレスを設定
    $ git config  --global user.email "Your email"
    $ git config --global user.name "Your name"
  • エディタ指定
    $ git config --global core.editor vim
  • カラー表示
    $ git config --global color.ui auto

設定は~/.gitconfig に記録される.

よく使うコマンド

  • リポジトリを作成する
    $ git init
  • リポジトリをクローンする
    ローカルマシンから
    $ git clone /var/git/project clone_project
    リモートマシンから
    $ git clone user@remoteserver:/var/git/project clone_project
    カレントディレクトリのclone_project にクローンされる
  • リポジトリで管理しないファイル、ディレクトリを登録する
    リポジトリのルートに .gitignore というファイルを作成して登録する。
    ワイルドカードも指定可能。行頭の# はコメントとして扱われる。
    #-- オブジェクトファイルは管理しない
    *.o
    #-- BAK ディレクトリは管理しない
    BAK
    path/BAK
    #-- core ファイルは管理しない
    core
  • 全リポジトリ共通の .gitignore を設定

    /.gitignore のcore.excludesfile に登録することで可能

    $ git config --global core.excludesfile ~/.gitignore
    .DS_Store/Thumbs.db 等
    ここで管理しない設定をしたが、管理したい場合は管理したいリポジトリの .gitignore に! をつけて登録する
    !Thumbs.db
  • ファイル、ディレクトリを add する
    $ git add file dir
    すべてをadd する場合は -a を使う
    $ git add -a
  • ステータスを確認する
    $ git status
  • コミットする
    $ git commit
    ここで、デフォルト若しくは設定していれば設定してあるエディタ(core.editor)が起動する。 そこでコミットメッセージを編集する。
    1行目にはタイトル。詳細なメッセージは1行開けて3行目から記述する。1行だけでもok。diff などは記述不要。
    1行しかコミットメッセージを書かない場合は -m オプションを利用するとエディタが起動しないので便利。
    $ git commit -m "コミットメッセージ1行"
  • 更新ファイルすべてを一度にコミットする
    $ git commit -a
    ※新規ファイルはコミットされない
  • コミット時にdiff も表示する
    $ git commit -v
    利用方法は通常のcommit と同じ
  • リポジトリ内のファイル、ディレクトリを表示する
    $ git ls-files
    リポジトリの情報なので、.gitignore に書かれたファイルやadd しただけのものは表示されない。
  • git 出管理しているファイルを削除する
    $ git rm file
    実体のファイルも削除される
  • コミットをやり直す
    $ git commit --amend
  • コミットログを表示する
    $ git log
    最後のコミットログを表示
    $ git log -1
    最後のコミットログとdiff を表示
    $ git log -1 -p
    ※この -1 の番号によって過去のログが表示できる > -2 の場合最新2つ分が表示される 簡潔なコミットログを表示する
    $ git log --oneline
    詳細なコミットログを表示する
    $ git log --stat
    コミットログをリリースノート向けに整形して表示
    $ git log --oneline
  • ブランチをリセットする
    $ git checkout -f
  • 指定したファイルをリセットする
    $ git checkout -f filename
  • 指定場所にパッチを作成
    $ git format-patch -1
    $ git format-patch -r HEAD~
    $ git format-patch -s master
    -1 は最新のもの-2 で最新から2つ分。-r HEAD~ / -s master なども指定方法も。ファイル名は自動的に付与される。 このパッチはメール形式でそのまま送信可能
  • パッチの取り込み
    $ git am patchfile
  • 通常のパッチ形式でパッチを作成
    $ git diff --no-prefix -1 > file.patch
    • パッチ取り込み パッチの確認
      $ patch --dry-run -p0 < file.patch
      パッチ取り込み
      $ patch -p0 < file.patch
  • Git 作業ディレクトリに移動せずに操作
    $ git --git-dir=/var/.git command

作業ルーチン

  • 1.init
  • 2.commit
  • 3.clone or pull
  • 4.編集、動作確認
  • 5.add
  • 6.commit
  • 7.format-patch でパッチ作成、送信。
  • 8.パッチのマージ、若しくは取り下げ
    ※1,2 はリポジトリ作成時の初回のみ。次からは3.から開始。

tips

  • 最後に行ったcommit を修正したい
    git commit --amendを使う
    • コミットログを修正
      $ git commit --amend
    • フィルを追加し忘れた
      $ git add 追加ファイル
      $ git commit --amend
    • author を間違えたので修正したい
      $ git commit --amend --author='Your Name <you@example.com>'
  • commitを取り消したい(reset)
    • ファイルも戻す(hard)
      $ git reset --hard HEAD^
    • ファイルはそのままで取り消し(soft)
      $ git reset --soft HEAD^
  • git commit --amend で書き換えたものを元に戻したい
    $ git reset HEAD@{1}
    で元に戻る.
  • git add を取り消したい
    $ git rm --cached addしたファイル名
  • comitter を間違えたので修正したい
    ?
  • パッチを指定場所に作成

    -o option

    $ git format-patch -r HEAD~ -o /PATH/

Tool

"Meld" http://meldmerge.org/

グラフィカルな画面で差分を見ながらマージが出来るツール.

tig

CUI なGit ブラウザ ちょっと便利

etckeeper

/etc 以下を自動的にVCS 管理してくれる.
自動的なのでコミットログは機械的.あくまで補助と考えて使う.
複数のVCS に対応している.Debian はGit/Ubuntu はbzr が規定値.
VCS 変更は /etc/etckeeper/etckeeper.conf の以下の部分を編集する

# The VCS to use.
#VCS="hg"
VCS="git"
#VCS="bzr"
#VCS="darcs"

パッケージ導入時にinit, commit 迄やってくれるので既定のVCS を使うのであれば特に設定はいらない.

資料

入門向け

書籍

イベント

「Gitによるバージョン管理」の執筆者によるGit勉強会か講演会

Git道場 #1

Tips



spam 避けですcheck を付けて下さい

添付ファイル: fileGit-logo.svg_.png 494件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-02-02 (日) 23:12:24 (1205d)