git¶
“” 過去のcommitのログ¶
HEAD^にて「^の数だけ前のcommit」を示せる。つまり、以下の通り。
currentとは「今のcommitしていない」ものです
HEADと1個のcommit(つまり、最後のcommit差分)
currentではない
git diff HEAD HEAD^
currentと)1個のcommitとの差分
git diff HEAD^
currentとHeadとの差分(つまり、git diffと一緒)
git diff HEAD
1個前のcommit差分(^を重ねる)
git diff HEAD^ HEAD^^
特定のcommitIDとの差分
git diff <commitID> <commitID>
remoteのorigin(トラックしているレポジトリ)のorigin branchに関する情報
git remote show origin
レポジトリの始め方¶
cd ~/repos/
mkdir test
cd test
git --bare init
cd <checkoutしたいdir>
(適当に追加)
git push origin master
git branch stable
git checkout stable
git push origin stable
git checkout master
master開発時のpull手順¶
git fetch -p
git merge origin/master
master開発時のpatch開発手順¶
git checkout -b hogehoge
> -bによって、branchを切ってcheckout(移動)する
git branch
> branchが移ったことを確認
git branch -r
> remoteのbranchを確認
git branch -a
> remoteを含んだbranchを確認できる
git reset --hard
> とにかく、checkoutしているやつまで戻す
git branch -D i18n
> branchを消す
他の開発者のPC¶
git clone <path>
git pull origin master
git branch
git pull origin stable
masterへのマージ¶
git branch master
git merge --no-ff hogehoge
git commit
// git merge --no-ff master 4dc2475042c2d6dc30691a462c56579311352d などでcommit idでpullできる
ff: コンフリクトが発生しないマージのとき、マージコミットを作らない
no-ff: コンフリクトがなくてもマージコミットを作る
マージ後の処理¶
git pull origin master
git branch -D hogehoge
> 削除
タグをつける¶
git tag 0.0.1
git push --tags
Branch関係のログ¶
git log --color --graph --oneline --all --decorate
git log --graph --oneline --decorate --tags --branches --remotes --color
間違えてBranchをremote originにpushしてしまった!¶
git remote show origin
> 対象を確認する
* remote origin
Fetch URL: file:///home/kanai/repos/test
Push URL: file:///home/kanai/repos/test
HEAD branch: master
Remote branches:
func/001 new (next fetch will store in remotes/origin)
git push --delete origin func/001
> 削除
To file:///home/kanai/repos/test
- [deleted] func/001
git remote show origin | grep func
> 必要かはおいておいて確認
参照しているHEADのcommitを見る¶
cat .git/HEAD
ref: refs/heads/master
cat .git/refs/heads/master
fffffffff31290832904890312ffffffffff