edo1z blog

プログラミングなどに関するブログです

git

subversionのような省略ワードはエイリアス設定すれば自分でつくれるようだ。

エイリアス設定 git config --global alias.st status ※--globalは個別リポジトリに限定しない全体的な設定 ※configの場所は、.git/configにある。テキストファイル。

リポジトリつくる git init

リポジトリにファイルを追加する ※addしてもaddしたときの内容がインデックスに反映されるだけらしい。 ※add後に修正したらもう一回addしないといけない。 git add file

状態みる git status

作業者の設定 git config --global user.name '名前' git config --global user.email 'Eメール'

コミット git commit -m 'コメント' --author='doraemon doraemon@gmail.com' ※addもあわせて行う場合は、git commit -aとやる。こうすると作業ディレクトリの内容をインデックスに反映してからコミットするらしい。Untrakingファイルは-aとやっても勝ってに追加はされない。

エディターを設定する export GIT_EDITOR=vim ※bashの場合

コミットログをみる git log

コミットをみる git show コミットID ※IDなしの場合は最新を表示

コミットの差分をみる git diff コミットID コミットID

ファイルの削除 git rm ファイル名 ※システムからファイルが消える

ファイル名変更 git mv ファイル名 ファイル名 ※システムのフィアル名も変わる

リポジトリのコピーをつくる git clone パス パス

コミットのグラフを表示する gitk ※なんとWishとかいうGUIな画面が表示された。

二分探索で悪いコミットを探す git bisect

ファイルの各行の最後にコミットした人とコミットIDを得る git blame ファイル

ブランチをつくる git branch ブランチ名 ベースのコミット ※ベースのコミットIDがない場合は、カレントブランチの最新コミットを使う ※コミットの代わりにブランチ名でもよい

ブランチの一覧を表示する git branch

ブランチの詳細表示 git show-branch

ブランチを切り替える git checkout ブランチ ※インデックスにコミット前の変更がある状態で、ブランチを切り替えても競合しなければエラーなく切り替わり、インデックスの変更内容は引き継がれる。

ブランチをつくって、その場で切り替える git checkout -b ブランチ名 ベースのコミット

ブランチを削除する git branch -d ブランチ名 ※カレントブランチは削除できない ※カレントブランチにマージしていないブランチを削除はできない(削除するには-dではなく-Dにする)

マージする git merge ブランチ名

競合を調査する1 git diff ※競合している箇所を表示する

競合を調査する2 git log --merge -left-right -p

mergeのリセット git reset --hard HEAD ※mergeのコミット前に実施

bareリポジトリをクローンする git clone --bare hoge hoge.git

originリモートを追加する git remote add origin 場所

リモートを削除する git remote rm リモート

pushする git push origin

pullする git pull

アップデートする git remote update

おまけ(よさげなエイリアスを考えてみる) status -> st commit -> ci commit -a -> ca diff -> df branch -> br merge -> mg checkout ->chk とかかなー?