先日、こういう記事を書いた。
クラウド上のVMとのファイル同期はどうやるのがよいのだろう?
http://hiro99ma.blogspot.com/2018/05/vm.html
あれこれ考えたが、私にとってはgitを使った方が無難だという判断に至った。
性格的に、突然大きな変更なんかをやらかしてしまいがち(そして動かなくなる)なので、こまめにgit commitしていく方が安心なのだ。
が、コミットログが乱れるのはよろしくない。
今までは気にもしなかったのだが、そういうお年頃になったのだと思おう。
お仕事用のプロジェクトで、ほぼ自分しかリポジトリを触っていなかったので、直接commit・直接pull request・直接merge、と、やっていたのだ(githubを使っている)。
それを、forkしてからpull requestするタイプにすればよさそうだった。
参考にしたのは、こちら。
慣れてきたらコミットをまとめてPull Requestしよう(git merge --squash) | 株式会社グランフェアズ
https://www.granfairs.com/blog/cto/git-merge-squash
たぶんだが、forkせずに同じリポジトリで作業していたら、それはそれでログが汚れてしまいそうな気がしたのだ。
だ、だよね??
まあ、そうじゃなくてもよいのだ。
プロジェクト用のリポジトリだから、自分は自分のリポジトリで作業して、結果だけを残せば良いのである。
やり方は、リンク先を見た方がわかりやすい。
で、その後だ。
実は・・・forkして作業するというのをほとんどやったことがない。
pull requestがマージされると、fork先が先に進んでしまうけど、どうしたらよいのだか。。。
GitHubでFork/cloneしたリポジトリを本家リポジトリに追従する - Qiita
https://qiita.com/xtetsuji/items/555a1ef19ed21ee42873
ありがたい。
手元にbranchが3つ(upstreamのもの、作業中だったもの、作業中をsquashしたもの)が残り、upstreamはそのままだし、squashしたものもmergeしたからよいのだが、作業中だったものは "git branch -d xxx"では消せず、 "git branch -D xxx"にしなくてはならなかった。
squashされたものの履歴までは追わないのだろう。
しかし、今回はsubmoduleも変わってしまったためか、mergeしてもcommitしていないものが残ってしまった。
commitしてpushしたのだが、当然オリジナルとは別のcommit idになる。
もしかして・・・forkしないでやるべきものなのだろうか?
いや、今まではそうせずにやっていて、commitログが乱れたものになってしまったのだから、それだと期待通りではない。
ずっとローカルで作業できるのであれば、forkせずにいけるような気がする。
だが、私はpushしてしまいたいのだ。
そうなると、第2のローカルという感じで、forkして自分のリポジトリで作業することになると思う。
今日はもうpull requestしたくなるようなものがないので、次回試すしかないな。
pull requestするものができたので、試した。
流れを復習しておこう。
- 本体からfork
- 本体側でsubmoduleの更新が発生
- fork側でpull requestし、本体側でmerge
- fork側を本体側に同期させようとして、upstreamをfetchして、メインブランチにmerge
- submoduleに差分が出たので、commit
この状態で、fork側からpull requestしたのだが、fork側のsubmode差分によるcommitも対象になってしまった。
おかげで、本体側のcommitログには、submoduleの更新が複数出てきてしまっている。
やはりか。。。
そんなに神経質になるつもりもないのだが、回避できるのであればやりたい。
簡単なのは、手順4をせずに、forkしたものを削除して、新たにforkする、だろう。
本体と同じものになるから、悩むこともない。
upstreamというブランチは、本体側と同じものだ。
それと同じように、手順4でmergeなどせず、mergeしようとしたブランチ自体を捨てて、fetchしたあとのupstreamからブランチを作ってしまえば良いのか?
何か違う、という感触はあるのだが、何がどうダメなのかはわからん。。。
だいたい、forkやらpull requestって、githubやbitbucketの機能で、git自体の機能じゃないよなぁ。
cloneして、remote set-urlで変更するとかか? いや、それじゃ足りないか。。。
使えば使うほど、gitへの理解が足りてないのが身にしみるわ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。