git tips
initialize
-
初期設定
git init git remoate add origin <repository-url> git commit -m "first commit" git push (-u) origin master
-
マージ時の設定
git config branch.master.remote origin git config branch.master.merge refs/heads/master
Commit
-
gitでリモートリポジトリにpushしたcommitを取り消す
リモート・ローカルの両方のHEADの位置を変更
git rebase -i HEAD~2 # コミットの2行目を削除 git push origin +master
リモートのみ変更
git push -f origin HEAD^:master
ローカルのみ変更
git reset HEAD^ git reset --soft HEAD^ git reset --hard HEAD^
-
cherry-pick
git cherry-pick <commit>
コミットしない場合
git cherry-pick -n <commit>
Branch
-
リモートブランチをローカルに取得
git checkout -b <local-branch-name> <remote-branch-name>
-
ブランチを削除
git branch -d <branch-name> git push origin :<branch-name>
-
すでに作成済みのブランチをトラッキングする
git push -u origin master
または
git branch --set-upstream foo upstream/foo
-
既に削除済みのリモートブランチを一覧から削除する
git branch -a
で表示されるリモートに存在しないブランチ表示を削除するgit remote prune <repository>
または
git fetch --prune <repository>
-
複数ブランチを同時に扱う
ln -s /usr/local/Cellar/git/2.2.0/share/git-core/contrib/workdir/git-new-workdir /usr/local/bin/ git-new-workdir . ../develop (git new-workdir . ../develop)
Tag
-
タグを削除
git tag -d <tag-name> git push origin :<tag-name>
-
タグがリンクしているハッシュ値を確認する
git rev-parse <tag-name>
Archive
デフォルトはtar
-
tarのアーカイブ (tar.gz)
git archive [--format=tar] HEAD | gzip > foo.tar.gz
-
zipのアーカイブ
git archive --format=zip <branch-name> > foo.zip
-
特定のディレクトリに入れる
–prefixオプションで指定
git archive --format=zip --prefix=dir/ <tag-name> > foo.zip