monwrapというMongoDBラッパーをNPMで公開しました。
公開前にtravisCIでテストを行うのですが、MongoDBを使ったテストは初めてなので.travis.yml
(設定ファイル)の書き方がよくわからない。でもGitHubに上げてみないとCIテストができない。
そんなわけでゴミコミットが増えてしまうのを見越して、コミットログが汚れない方法を探ってみました。
1. 別ブランチに退避する
最終的に公開するのがmaster
ブランチの場合、一旦別のブランチに退避します。masterブランチは後で作り直す為に削除します。
git checkout -b dev
git branch --delete master
警告が出てdaleteできない場合はgit branch -D master
で強制削除できます。自己責任でお願いします。
2. GitHubにpushして作業する
CIの動作確認など、GitHubにpushして作業します。ローカルだけでコミット履歴を消したい時はこの作業は不要です。
3. commit履歴のないmasterブランチを切る
git checkout --orphan master
git commit -m "Initial Commit"
git push -u origin master
git branch --delete dev
git push --delete origin dev
git checkout --orphan master
masterブランチを作りつつcheckoutを行いますが、--orphan
オプションを指定するとcommitを引き継がないブランチになります。
git commit -m "Initial Commit"
--orphan
オプションでcheckoutするとファイルがステージングされた状態になりますのでそのままcommitします。
git push -u origin master
masterをトラッキングブランチに設定しつつpush
git branch --delete dev
不要になったブランチを削除
git push --delete origin dev
リモート(GitHub)のdevブランチも削除します。しかしここでエラー。
To github.com:mick-whats/mongo.w.git
! [remote rejected] dev (refusing to delete the current branch: refs/heads/dev)
GitHubのDefault branchがdevブランチになっているので削除できないようです。
githubのsettings → branches からDefault branchをmasterに変更すると成功しました。