フォルダに移動しgit initを実行するだけ。
mkdir myproduct cd myproduct git init
git add .
git add sample.txt
git add -u
git add -A
バージョン管理から除外したいファイルはリポジトリのルートディレクトリに.gitignoreファイルを作成する
*~
"-m"オプションでログを直接記録できる
git commit -m "sample.txt added"
"-m"オプションを使わない場合エディタが立ち上がる。
git commit -a
git commit -v
git commit sample.txt
git reset sample.txt
git diff
git diffコマンドはgitに変更点を記録したいとリクエストしてない変更点を出力するので変更されたファイルをgit addすると表示されなくなる。
git diff HEAD
git diff --cached
git addコマンドを使って状態の記録をリクエスト(=インデックスに記録)することができる。
git add sample.txt
git add -u
変更点が2箇所以上ある場合、変更箇所を確認しながらaddする箇所を選定できる。
git add -p
git status
git log --pretty=short
git log --pretty=short sample.txt
git log --pretty=short grep='xxx'
git revert xxxxx
インデックスに記録されている状態に戻す
git checkout sample.txt
最新のコミットの状態に戻す
git checkout HEAD sample.txt
git reset HEAD^を使う。部分コミットしたい場合に間違えたときなどに使う。
git commit -a # 間違えたコミット git reset HEAD^ #現在のヘッドの一つ前に戻る。
ワークツリーの内容も戻す場合
git reset --hard HEAD^
ログメッセージを記録し直したい場合に使う。git reset HEAD^→ git commitのような感じ。
git commit --amend
HEADから3つ前のコミットを書き換える場合。
git rebase -i HEAD-3
実行するとエディタで指示票の編集画面が表示されるので、pick→editに書き換え保存する。
pick xxxxxx あれをこうした pick yyyyyyy それをあれした pick zzzzzz それからこうなった。
最初の行のコミットを書き換える場合
edit xxxxxx あれをこうした pick yyyyyyy それをあれした pick zzzzzz それからこうなった。
コミットを修正。
git commit --amend
続く混みとを反映する
git rebase --continue
/home/repository/sample.gitディレクトリに空のリポジトリを作成する。
$ mkdir -p /home/repository/sample.git $ cd /home/repository/sample.git $ git --bare init
$ cd <ワークツリー> $ git push /home/repository/sample.git master
$ git clone /home/repository/sample.git sample.new
ざっくり書くと 「git push <反映先> <反映もと>」となる。
$ git push (git push origin masterと同じ)
git pullとgit pushを駆使する。この辺はCSV、Subversionと同じような感じか。
umask 002 mkdir -p /home/repository/bigproject.git cd /home/repository/bigproject.git git --bare init --shared
"bugfix-a"というブランチを作り、ワークツリーをそのブランチに切り替える
git checkout -b bugfix-a
以下のコマンドと同じ
git branch bugfix-a git checkout bugfix-a
git branch
git checkout master git checkout bugfix-a
バグフィックス用のブランチbugfix-aで行った変更をメインブランチに併合するには
git checkout master git merge bugfix-a
現在のワークツリーの内容をブランチとして、3つ戻ったところをマスターとする。
git branth bugfix-b git reset --hard master-3
ブランチ移動の際にワークツリーでコミットされていないファイルがある場合混乱することがある。 現在bugfix-cブランチにいてmaster→bugfix-cに戻るとき次のようにする。
git stash git checkout master <masterブランチでいろいろ修正> git checkout bugfix-c git stash pop
リモートリポジトリに対するエイリアス定義のようなもの?
git remote add sample git://repo.aaa.com/git/sample.git
とすれば以後 git fetch sampleとすれば最新の状態をコピーすることができる。
Mac を git の共有レポジトリにする -- BONNOH FRACTION 13によるとリモートマシンで次のコマンドを実行する。sshしたときに.zshrcが読まれずパスが通らないのが原因か。
ln -s ~/.zshrc ~/.zshenv