RSS

git pushでちょっと驚いたこと

git pushはgit pullの反対ではない。

    付与されたタグ:
  • SCM
cloneしたリポジトリを変更して commit; pushとしてoriginを編集しようとしたら…???変更が反映されていない。あれ、commit失敗しているのかねと git log を見たら入っている。なんだこりゃと思ったが…。git pushしたときに次のようなメッセージが出ていたが…。
warning: updating the currently checked out branch; this may cause confusion,
as the index and working tree do not reflect changes that are now in HEAD.

git pushは gitの管理のところにcommit されるだけでワーキングツリーには反映されない。pushしたけりゃ専用リポジトリを用意しておけということみたい。確かに編集中にpushされてどんどんソースが変更されたら困ると思ってそういう設計にしてあるんだろうね。ちなみにpushされた側で git reset をかけたらきちんと merge(?)されたがそれでいいんだろうか。git diffでは何も出力されずに git diff HEADで出力されるというのも、合っているけどなんかね。

でも、自分のやっているように手元のPCとサーバ上の二箇所で作業するんだけの話だとdarcs使ったほうがいいかもしれない。FAQにはいろいろ工夫すればいいよということを書いてあるが…。