キッカケ
先日悲しい事件が起きたのをきっかけにGitHub上で管理するようにしました。
以下、再現状況です。
hoge.jsライブラリのfugaについて
var fuga = function(a) {
if( a == null ) return;
return a * 2;
};
aを2倍にして返してくれる関数です
この状態でkobitoから投稿したところ、以下の様な編集リクエストが届きました。
``` javascript
var fuga = function(a) {
if( a == null ) return;
return a * 2;
};
```
(※わかりにくいためコードブロックは全角にしました)
こちらのほうがわかりやすいと思ったため、WEBブラウザ上から即座に受け入れました。
また、平行して、投稿したけれど修正したい部分があったためkobito上で修正を続けていました。
hoge.jsライブラリのfugaについて
var fuga = function(a) {
if( a == null ) return;
return a * 2;
};
引数aに対して、nullかどうかのチェックを行い、nullではなかった場合はaを2倍にして返してくれる関数です。
この状態まで編集した後、WEBブラウザ上で編集リクエストを受け入れていたことを思い出したため、なんとかローカル上のkobitoに反映させなければと思いました。
gitでいうところのgit pullがしたかったのです。
ただし、Kobito上で「アイテム」→「Qiitaから取得」を押しても変更はないと言われてしまいます。
しょうがないので、「アイテム」→「Qiitaに投稿」を押しました。最悪コンフリクトしたらそこで調節すればいいと思ったためです。
Qiitaへ投稿を押すと、思った通りうまくアップロードできず、「WEBを優先する」「Kobitoを優先する」のアラートが出てきました。
ここで、
・ ```javascriptな部分はそのまま保持して欲しい
・ 追加した文章のところはKobitoで編集した方を優先して欲しい
と思い、今回のWEBとKobito上の編集箇所はうまく別の場所を修正されていたため、ここは「WEBを優先」すれば
``` ←現在のKobito上
```javascript ←現在のWEB上
ここの部分のみうまく修正してくれて下部のnull~~の文章についてはうまくマージされるだろうと思っていました。
現実
この状態になりました
hoge.jsライブラリのfugaについて
```javascript
var fuga = function(a) {
if( a == null ) return;
return a * 2;
};
```
aを2倍にして返してくれる関数です
・・・/(^o^)\
ほんとはもっと長く(2−30行以上)編集していたため、悲しみに包まれました。
GitHubで管理する
そんなことがあり、GitHub上にQiitaリポジトリを作成し、そこにhoge.mdファイルとして管理することにしました
- まずはGitHub上もしくは適当なMarkdownが使えるエディタを用いて書く
- GitHubにPushする
編集リクエストが来た場合は
・まずは見てよさそうならQiitaで受け付ける
・GitHubでブランチを切ってそこに編集リクエスト後のQiita記事をコピペする
・PullRequestベースで受け付ける
・差分を見て大丈夫そうならマージする(ここまで自演)
とし(ようとし)ています。
これで差分とかがあっても安心安全!!!!!
Kobitoへの要望
アップロード時にKobito上とコンフリクトが起きた場合は、アラートを出すだけでなくKobito上でコンフリクトが解消できるようなツールになるとうれしい。
おわりに
GitHubを併用して快適なQiita投稿ライフを!