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