Git cheat sheet: Difference between revisions

 
(8 intermediate revisions by the same user not shown)
Line 134: Line 134:
# セーブ
# セーブ
git push -f
git push -f
# こちらが安全なのかな git push --force-with-lease
</syntaxhighlight>
</syntaxhighlight>


Line 148: Line 149:
git rebase --continue
git rebase --continue
git push -f
git push -f
# こちらが安全なのかな git push --force-with-lease
</syntaxhighlight>
</syntaxhighlight>


Line 159: Line 161:
</syntaxhighlight>
</syntaxhighlight>


PR送信したあとマージされる前で、アップストリーム・マスターの更新を取り込む。
PR送信したあとマージされる前で、アップストリーム・マスターの自分のPR以外の更新を取り込む。
<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash" enclose="div">
git checkout master
git checkout master
git pull upstream master
git pull upstream master
git push
git checkout my-dev
git checkout my-dev
git rebase master
git rebase master
Line 174: Line 177:
git checkout -b new_branch upstream/new_branch
git checkout -b new_branch upstream/new_branch
git push -u origin new_branch
git push -u origin new_branch
</syntaxhighlight>
いわゆる backport
<syntaxhighlight lang="bash" enclose="div">
git checkout 対象ブランチ
git checkout -b 修正用ブランチ名
git cherry-pick -x <commit_hash>
git push -u origin 修正用ブランチ名
# そして PR
</syntaxhighlight>
複数のcherrypick。注意点は開始点の指定が一つ前になるので直感的でなく、そのために"^"をつける癖をつけたほうがよい。
<syntaxhighlight lang="bash" enclose="div">
git log --oneline
git cherry-pick -x {COMMIT-A}^..{COMMIT-Z}
</syntaxhighlight>
作業ミスして upstream と強制同期
<syntaxhighlight lang="bash" enclose="div">
git fetch upstream
git reset --hard upstream/master
</syntaxhighlight>
タグ名でブランチ作成
<syntaxhighlight lang="bash" enclose="div">
git tag
git checkout -b 新ブランチ名 refs/tags/タグ名
</syntaxhighlight>
</syntaxhighlight>