git

Contents:

.gitのTIPS

過去の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