背景: git-svnを使ったらうまくいかなかった 日本語でググるとgit-svnを使用した方法がヒットしたので、 と言うコマンドでひとまずローカルにcloneしようと試みたものの、なぜか途中で失敗してしまった。 出てきたエラーメッセージで検索したところ、 https://stackoverflow.com/questions/42534064/git-svn-clone-fails-with-error-git-svn-died-of-signal-11 というStackOverflowでの質問が見つかった。 2番目の回答曰く、 https://github.com/svn-all-fast-export/svn2git など、もっと移行に特化したツールを使え、とのことなのでこちらのsvn2gitを使うことにした。 svn-all-fast-export (KDEが作ったsvn2git)
理由 GitHubやGitLabなどのおかげで、リモートで直接masterにマージできるようになった。 どうしても、という時以外ローカルのmasterブランチで作業する必要はないはずです。 間違えてmasterを壊してしまうリスクが更に減る ローカルのmasterブランチをメンテするコストが減る 地味なメリットに聞こえるかもしれませんが個人的にはありがたいので最後のものを詳しく説明します。 Gitの仕様上、ローカルのmasterブランチはリモートのmasterブランチを更新しても自動的には更新されません。 現状、git checkout masterしてからgit pullしないと更新できないはずです(他にも方法はありそうな気がしますが割愛します)。 この方法、一瞬でもmasterにチェックアウトしなければならないため、チェックアウトする前のブランチとローカルのmasterの差が大きい場合
間違えてmasterやdevelopにpushしてしまうあなたは今すぐこれを.git/hooks/pre-commitにコピペしなさいGit #!/bin/bash current_branch=$(git rev-parse --abbrev-ref HEAD) warn_branch() { echo "You can't commit on '$current_branch'!" } case $current_branch in master) warn_branch; exit 1 ;; # Of cource you can add any other important branches as you need. develop) warn_branch; exit 1 ;; # Of cource you can add any other important branch
追記: 実際使ってみたら上手く動作しなかったため、調べ直して使用するhookを変更しました。Qiitaでも既出のネタでしたね ここにPivotal Trackerのstoryがあるじゃろ? これの末尾の「stories/123456789」の部分だけ抜き出すと、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く