1 名前:login:Penguin [2007/12/16(日) 18:40:39 ID:GslAi8rs] ソースコード管理を行うバージョン管理システム、git について語ろう。 あの、リーナス・トーバルズだって、バージョン管理を始めたんだ。 www.kernel.org/pub/software/scm/git/ git チュートリアル (バージョン 1.5.1 以降用) www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial.html
363 名前:357 mailto:sage [2009/07/09(木) 09:41:44 ID:spRnDxWI] >>362 ありがと。そうか。。。 正しい git status の結果になるディレクトリと、 長大な modified が出るディレクトリがあることが分かりました。 仕方なく git status と書かれた gitst.bat を使ってます。
364 名前:login:Penguin mailto:sage [2009/07/09(木) 14:45:00 ID:neFt6wMr] >>363 …もしかしてWindows? ここLinux板だし、こっちでも聴いてみたらどうだろう。 pc12.2ch.net/test/read.cgi/tech/1242918130/
365 名前:login:Penguin mailto:sage [2009/07/09(木) 14:53:30 ID:spRnDxWI] >>364 Windows ( cygwin ) です。 そっちで聞いてみます。ありがとうございました。
366 名前:login:Penguin mailto:sage [2009/07/20(月) 12:59:20 ID:y3l+3ouD] GitHub で公開されてる fork 元で、バカみたいに大規模なファイル構成とファイル内容の全変更がありました いちおうこれに追随しなければならないんですが、 手元の適当なブランチに試しにpullしたら衝突解消がとってもめんどくさいことになって泣きました 手元にブランチが20個くらいあります。全部に対してこれを繰り返すのは嫌です きっとなんか便利な方法があるんだとは思うんですが、何をすればいいものなんでしょうか?
367 名前:login:Penguin mailto:sage [2009/07/20(月) 14:29:02 ID:/rqSq1cX] >>366 WWW::Mechanize?
368 名前:login:Penguin mailto:sage [2009/07/20(月) 19:07:11 ID:q2y5p7aG] 大量の衝突をうまくマージする方法じゃないの? 取得を自動でやる方法じゃなくて
369 名前:login:Penguin mailto:sage [2009/07/20(月) 19:18:33 ID:/rqSq1cX] >>368 ごめんなさい、>>367 は「バカみたいに大規模なファイル構成とファイル内容の全変更」があったものについての予想です。
370 名前:login:Penguin mailto:sage [2009/07/20(月) 20:05:55 ID:ma9OV7L+] Ruby版の? module WWW class Mechanize end end を class Mechanize end # と外出しして module WWW Mechanize = ::Mechanize end で後方互換性を保つとゆー大顰蹙。 # nbsp の使い方はこれであってるのだろうか
371 名前:login:Penguin mailto:sage [2009/07/20(月) 22:36:14 ID:1OZrXuJk] うぉーなんだそれは…
372 名前:login:Penguin mailto:sage [2009/07/21(火) 04:43:12 ID:nT3Auy6R] 論理構造的にはともかく、diffの各行的には単にインデントが浅くなっただけじゃん module WWW と end のとこだけだろ、それ引っかかるの
373 名前:login:Penguin mailto:sage [2009/07/21(火) 12:41:57 ID:Y7zra871] >>366 git rerere --help
374 名前:login:Penguin mailto:sage [2009/07/21(火) 13:52:37 ID:HzmMUGDt] GitHubに試しに登録してpushまで終わったんだが、 検索にかからない、自分のIDすらかからない・・・なんだこりゃ
375 名前:login:Penguin mailto:sage [2009/07/22(水) 06:38:32 ID:dp/16pzu] >>372 これ、lib/www/mechanize/ 以下のファイルが全部 lib/mechanize/ に移動してるんだよね 手元では lib/www/mechanize/ の中に編集されたファイルがたくさんあるだろうから、 rebase で遡って差分適用するたびに衝突起こすな
376 名前:login:Penguin mailto:sage [2009/07/24(金) 14:17:45 ID:6MAoexAT] git commit したら自動で -v オプションを付ける方法はなんでしょうか
377 名前:login:Penguin mailto:sage [2009/07/26(日) 10:29:12 ID:r004HONT] >>376 aliasを設定するとか。
378 名前:login:Penguin [2009/07/29(水) 21:06:50 ID:NqWOLxIQ] 1.6.4 age
379 名前:login:Penguin mailto:sage [2009/08/02(日) 06:28:58 ID:ANiJcqBB] ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06767-9 原書はどんなできなのかな?
380 名前:login:Penguin mailto:sage [2009/08/02(日) 09:08:14 ID:1MTX0arw] >>379 Pragprogの原書なのでブランド買いした。 CVS/Subversion/Mercurialを使った経験ありの俺的にはそれなりに 使えるようになった。 管理オブジェクトの話とかplumbingコマンドのレイヤーについては さほど載ってなかったはず。
381 名前:login:Penguin mailto:sage [2009/08/02(日) 19:51:08 ID:ANiJcqBB] >>380 レビュー、ありがとう。 この訳本が出たら、立ち読みしてみて、考えよう。
382 名前:login:Penguin mailto:sage [2009/08/03(月) 14:34:54 ID:RIRtotud] gitとsquidを連携したwebキャッシュ作りたいんだけど gitを改造しないでsquidと連携させることできる?
383 名前:login:Penguin [2009/08/03(月) 16:11:32 ID:T85XxxMu] git cvsimport でCVSリポジトリを変換しようと思ったらメッセージが化けました。 今までTortoiseCVS SJIS版(あろはだよCVS版)を使っていたのでそうなったんだと思いますが、 このメッセージをUTF8に変換するにはどうしたらいいんでしょう? どなたかお助けいただけますと幸いです。よろしくお願いします。
384 名前:login:Penguin mailto:sage [2009/08/03(月) 20:24:19 ID:6y63jn1e] >>382 「連携」が何か他の人に伝わってる、と思うのはなぜ?
385 名前:login:Penguin mailto:sage [2009/08/06(木) 07:01:18 ID:KCKgFcNy] >>383 おれはEUC-JPなcvsからcvsimportしたやつは、 git config i18n.commitEncoding EUC-JP してるけど。 まああたらしいログをUTF8で書くとやっぱり化けるけど。 基本自分は英字でログかくから気にしてない。
386 名前:login:Penguin mailto:sage [2009/08/06(木) 07:05:35 ID:KCKgFcNy] とカキコしてから気になって調べたら、 git config i18n.logOutputEncoding UTF8すると あたらしくUTF8で書いてもしっかり全部化けずにいけますた。
387 名前:login:Penguin mailto:sage [2009/08/10(月) 17:32:11 ID:2cu11IQe] ずっと思ってたんだけど、merge って意味なくね? 一意なハッシュで管理されてるなら cherry-pick だけで十分じゃね? ローカルなブランチが晒されるしコミットメッセージの編集もできないし merge は害悪しか思いつかないんだが
388 名前:login:Penguin mailto:sage [2009/08/10(月) 17:41:46 ID:+bQVdOii] うん、やっぱ言葉が悪いよな 私たちが図を書かず頭のイメージだけで考えるところの「ブランチのマージ」は、 たいていの場合、適切な方向に rebase することで達成される git を使っていて「マージ」したいと思ったなら、まずは rebase を検討すれ
389 名前:login:Penguin mailto:sage [2009/08/10(月) 17:42:14 ID:Ln/irodm] >>387 cherry-pickしたらハッシュ変わるけどどうすんの?
390 名前:login:Penguin mailto:sage [2009/08/10(月) 17:59:06 ID:+bQVdOii] たぶん、衝突するようなマージばかりを経験してるのだと思われ
391 名前:login:Penguin mailto:sage [2009/08/10(月) 18:11:48 ID:Ln/irodm] 公開したらrebase出来なくなって、FFできそうなやつでもmergeするしかなくなるってのは どうにかならないもんかとたまに思うことはあるな。まあしょうがない気はするけど。 FF出来ない時にマージコミットつくらずに1つの新しいコミットにまとめてしまって、 その上で便宜上だけでも元のコミット群はこれらです、って感じに参照させることが 出来ればいいなーと妄想することがある、けどそれって結局マージと同じことなんだよね。 ただ、受け入れ側でマージコミットを嫌がる場合も多いので、そんな機能もあったら便利かも しれないとかまた妄想。
392 名前:login:Penguin mailto:sage [2009/08/10(月) 20:56:04 ID:i4bAM8hh] えーと、こっちのブランチでcherry-pickしてないのどれだっけ? とかなる希ガス
393 名前:login:Penguin mailto:sage [2009/08/10(月) 21:07:20 ID:IbZ/Z+oA] cp はブランチ作り切った最後に行う cp を頻繁に行う人はコミットメッセージも cp 時に有機的に書き換えてるはずなので よっぽど変なまとめ方しない限り大丈夫 ウィンドウ2枚開けて片方に git log の結果を常に表示しながら cp しないといけない状況ばかりなのには同意はしておく
394 名前:login:Penguin mailto:sage [2009/08/10(月) 23:47:00 ID:nFA1XbhB] >>391 公開してるリポジトリに直接commitしたりとかしてんの?
395 名前:login:Penguin mailto:sage [2009/08/10(月) 23:57:49 ID:Ln/irodm] >>394 いや、pushしてるよ。ただフォーク元も公開してるから。
396 名前:login:Penguin mailto:sage [2009/08/11(火) 00:18:25 ID:gCZov+kt] mergeっていけないことなのか?必要悪なのか?
397 名前:login:Penguin mailto:sage [2009/08/11(火) 01:51:55 ID:9aVIR9qR] pushしたブランチの履歴は変更してはいけないというルールがあるからな >>396 衝突しない理想的な世界であれば好ましい 衝突が起こったとたん別のコミットになるからシステムデザイン上は駄目 「AをしてBをしてCをする差分適用」であるコミットが衝突後 「AをしてBをしてXをしてCをする差分適用」というコミットに摩り替わっちゃやっぱ駄目だろ 「AをしてBをしてCをする差分適用であるが、今回に限ってはBのあとにXであるさらなる差分適用がある」 という情報で格納すべき ハッシュ値は不変で このコミットを cherry-pick したらまずは「AをしてBをしてCをする差分適用」が試されるべき
398 名前:login:Penguin mailto:sage [2009/08/11(火) 06:08:40 ID:od33ZDSx] >>397 ハッシュ値をどうやって計算してるか知らないの?
399 名前:login:Penguin mailto:sage [2009/08/11(火) 08:06:48 ID:hQImHIEr] ハッシュ値は全く同じアルゴリズムが使われてさえいればどう計算してもいいんだよ ハッシュというとファイルをバイト列として利用しなければいけないとしか思いつかない人が稀にいるが
400 名前:login:Penguin mailto:sage [2009/08/11(火) 10:38:30 ID:AVaSZeyh] resolveがある場合のgitのマージコミットって、 > 「AをしてBをしてCをする差分適用であるが、今回に限ってはBのあとにXであるさらなる差分適用がある」 におけるXになってない? そもそもA B Cが何を指してるのかよくわからんが。
401 名前:login:Penguin [2009/08/12(水) 15:06:33 ID:8h+T8Ju7] svn でさほど不満はないのですが、ファイル数、ファイルサイズともに 大きなプロジェクトで update, commit 速度が遅く困っています。 git に乗り換えれば速度少しでも早くなるでしょうか?また、各 ローカル側の hdd 使用量は svn より増えると考えておいてよいで しょうか?
402 名前:login:Penguin mailto:sage [2009/08/12(水) 15:53:46 ID:mycJo5BE] >>401 速度はたぶんものすごく早くなると思う。 ローカル側のディスク使用量はそれほど気にならないよ。 ただし操作方法、概念が異なるので、もしも仕事で大人数でやるのなら、 習得させるのにそれなりに工数がかかると思う。
403 名前:login:Penguin [2009/08/12(水) 17:45:44 ID:Z/KJAJVW] では、ひとまず svn のリポジトリを、残し一部メンバのみ git 経由で アクセスする感じで検証でしょうか。ただ、この使い方だと速度面の メリットはわからないですよね。大プロジェクトなので難しいところ。
404 名前:login:Penguin mailto:sage [2009/08/12(水) 18:24:39 ID:FOPhwWTC] >403 今一環境がかんないんだが、大プロジェクトでも updateとcommitなんて日に一度くらいじゃね? 自分だけgit-svn使えばローカルだけで大抵の用事は済むので、 快適になると思うよ。
405 名前:login:Penguin mailto:sage [2009/08/12(水) 18:36:00 ID:Y2NYIgNJ] 一日最低 10 回は commit してるなぁ
406 名前:login:Penguin mailto:sage [2009/08/12(水) 19:12:05 ID:4qtNGkYm] commit --amend含めると30いくかな
407 名前:login:Penguin mailto:sage [2009/08/12(水) 19:48:18 ID:pDDmfa5D] すみません。commitの回数つながりで、ちょっとおたずねします。 一般的にcommitって細かく(最低でも1つの機能の追加ごとに)やるものだと思うのですが、 調子に乗ってコーディングしていくうちに、手元で大量に変更してしまいました。 こういうときって、どうされていますでしょうか。 diffの出力を手作業で加工して、追加した機能(関数)もしくは変更部分ごとにパッチを作って、 それらを取り込んで→コミット...を繰り返せば何とかなると思っているのですが、 他によい方法はないでしょうか。 # 対象は1ファイルです。
408 名前:login:Penguin mailto:sage [2009/08/12(水) 20:05:23 ID:dme4v7A0] >>407 そんな時のための git add -p じゃないか
409 名前:login:Penguin mailto:sage [2009/08/12(水) 20:25:02 ID:mycJo5BE] >>408 最近それ知って、gitすげーと思った。 git add -i なんかはまだ使いこなせないが、極めたら世界が変わりそうだ。
410 名前:login:Penguin [2009/08/12(水) 20:26:37 ID:3jImDu3O] >大プロジェクトでも >updateとcommitなんて日に一度くらいじゃね? 日にもよりますが1日10回ぐらいですかね。プログラマは20人以上 いますので全員合わせるととんでもない量の svn commit メールが来て 大変です。データサイズも200GBくらいはあるんじゃないかな。 TortoiseSVN で commit をルートディレクトリから行うと5分待ちな 状態で億劫なのでサブディレクトリからこまめにあげて上げわすれとか 出るほどのひどい状態です。
411 名前:407 mailto:sage [2009/08/13(木) 07:17:33 ID:iA5oHuEp] >>408 うわ〜〜〜。んじゃ、これは!! すげ〜〜。 教えていただきありがとうございます。 今までの苦労は何だったんだって感じ...。 ほんと、gitすげーよ。 addのオプションか。diffとかpatch-formatとかみてたよ orz っていうか、それ以外のaddのオプションもすごいのな。 なんか、今までやっていたことが「バージョン管理するための管理」みたいな ほとんどが不毛なことって気がしてきた...。 もちっと精進するよ。 またお願いします。
412 名前:login:Penguin mailto:sage [2009/08/13(木) 15:27:28 ID:tyyaneTm] ローカル環境で git-daemon を立ち上げました。 サーバが openSUSE で、 クライアントが Windows Vista。 ローカルなので ssh なしでやりたいのですが、 どう設定すればいいでしょうか。
413 名前:login:Penguin mailto:sage [2009/08/13(木) 15:44:37 ID:zQQwCkns] まあ、色々方法はあるわな、httpとかxinetdとか てっとりはやくやってみたそうだから、xinetdでやってみたら? xinetd
414 名前:login:Penguin mailto:sage [2009/08/13(木) 15:49:26 ID:zQQwCkns] xinetdを起動する xinetdにgitを登録する(gitポートにリクエストがあったとき、xinedがgit-daemonを呼び出す) あとは、gitリポジトリ(コンテンツ)の用意と、クライアントへのgitのインストールで クライアントから、git cloneっしょ
415 名前:login:Penguin mailto:sage [2009/08/13(木) 15:57:01 ID:tyyaneTm] >>413-414 ありがとうございます。 xinetd、挑戦してみます。
416 名前:login:Penguin mailto:sage [2009/08/13(木) 16:30:15 ID:F9EvWFzj] >>412 >>343-354
417 名前:412 mailto:sage [2009/08/13(木) 16:48:16 ID:tyyaneTm] >>416 躓いて見てみたらw ありがとうございます。 私も openSUSE をサーバに、 複数人で開発したい用途。 そして、どうやって新規リポジトリを作ろうかと思っていたので、本当に既視感。 再度、挑戦!
418 名前:login:Penguin mailto:sage [2009/08/13(木) 18:29:12 ID:tyyaneTm] openSUSE で git-daemon を xinetd で起動しようと思っています。 ( ssh を使うのが面倒なので… ) sudo zypper install git-daemon sudo /usr/sbin/rcxinetd restart して、ローカルの Vista から git clone するとエラーになります。 $ git clone git://example/test/test.git fatal: read error (Software caused connection abort) サーバの /var/log/message を見ると git-daemon: [23646] cannot open pid file /var/run/git-daemon.pid: Permission denied が出ています。とりあえず chown & chgrp & chmod して ls -l /var/log/git-daemon.pid -rw-r--r-- 1 git-daemon nogroup 6 2009-08-13 18:24 git-daemon.pid とし、再度 git clone すると、やはりエラーになり、/var/log/message には下記エラーが出ます…。 git-daemon: [23765] cannot drop privileges うまく動いている方、アドバイスお願いします。
419 名前:login:Penguin mailto:sage [2009/08/13(木) 18:36:55 ID:cf0vEXgI] cannot drop privileges ということなので、xinetdの設定のほうで、 git-daemonを動かす権限をsetuidを呼べる人(rootとか?)にすればい いのかもしれない。
420 名前:login:Penguin mailto:sage [2009/08/13(木) 20:51:01 ID:Vyg2UZ2a] ありがとうございます。 setuid... 調べてみます。
421 名前:418 mailto:sage [2009/08/14(金) 10:12:25 ID:vxCEaCUs] アドバイスを元に /etc/xinetd.d/git の user/group などを root にしてみたところ、 /var/log/message のエラー内容が変わりました。 $ tail /var/log/message git-daemon: [25819] unable to allocate any listen sockets on host (null) port 9418 $ lsof | grep git git-daemo 25772 root cwd unknown /proc/25772/cwd (readlink: Permission denied) git-daemo 25772 root rtd unknown /proc/25772/root (readlink: Permission denied) git-daemo 25772 root txt unknown /proc/25772/exe (readlink: Permission denied) git-daemo 25772 root NOFD /proc/25772/fd (opendir: Permission denied) ハマってきたので zypper remove git-daemon して、 ゼロからやり直してみたところ、やはり同じ症状に…。 openSUSE スレで聞いた方がいいのかもしれませんが、 その前に、ここでお分かりになる方はいらっしゃいますでしょうか。
422 名前:login:Penguin mailto:sage [2009/08/14(金) 10:35:16 ID:Q/iZulHO] >>421 ttp://www.aoisakura.jp/tdiary/?date=20081212 おなじエラーではまってる人がいました。 以前動かそうとしていたものが正常終了していないのでは?
423 名前:421 mailto:sage [2009/08/14(金) 10:56:54 ID:vxCEaCUs] ありがとうございます。 プロセスを kill -9 し、xinetd を再起動しました。 $ sudo lsof | grep git xinetd 26055 root 5u IPv4 1666608 0t0 TCP *:git (LISTEN) $ sudo kill -9 26055 $ sudo /usr/sbin/rcxinetd restart 今度は readlink: Permission denied が出ないのでいい感じ! $ sudo lsof | grep git git-daemo 26095 git-daemon cwd DIR 253,3 4096 2 / git-daemo 26095 git-daemon rtd DIR 253,3 4096 2 / git-daemo 26095 git-daemon txt REG 253,3 196936 10356883 /usr/lib64/git/git-daemon git-daemo 26095 git-daemon mem REG 253,3 47784 9946462 /lib64/libnss_files-2.9.so ( 省略 ) git-daemo 26095 git-daemon 2u CHR 1,3 0t0 2055 /dev/null git-daemo 26095 git-daemon 3u IPv6 1666970 0t0 TCP *:git (LISTEN) git-daemo 26095 git-daemon 4r FIFO 0,7 0t0 1666971 pipe git-daemo 26095 git-daemon 5w FIFO 0,7 0t0 1666971 pipe xinetd 26136 root 5u IPv4 1667341 0t0 TCP *:git (LISTEN) と思ったのですが、 windows> git clone git://example/test/test.git fatal: read error (Software caused connection abort) $ tail /var/log/message git-daemon: [26178] unable to allocate any listen sockets on host (null) port 9418 と変わらず…。openSUSE を再起動してみます…。
424 名前:421 mailto:sage [2009/08/14(金) 11:00:50 ID:vxCEaCUs] 余談。 zypper install git-daemon で作られる /etc/xinetd.d/git には --base-path="/srv/git" と書かれていて、" を消して --base-path=/srv/git としないといけなかった。 昨日からハマっているので、午前中の段階で精神的に疲労中w
425 名前:421 mailto:sage [2009/08/14(金) 11:14:13 ID:vxCEaCUs] 再起動しても $ sudo taile /var/log/message git-daemon: [3288] unable to allocate any listen sockets on host (null) port 9418 $ sudo lsof -i:9418 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME xinetd 2903 root 5u IPv4 6924 0t0 TCP *:git (LISTEN) git-daemo 3296 git-daemon 3u IPv6 9929 0t0 TCP *:git (LISTEN) xinetd と、普通のサーバが二重に立ちあがっているのが原因でしょうか ( しかも IPv6 )。 git-daemon を kill -9 しても自動で立ち上がります。 これを止める方法を探しますが、アドバイスがあると嬉しいです。
426 名前:login:Penguin mailto:sage [2009/08/14(金) 11:23:39 ID:Q/iZulHO] xinetdから起動されたgit-daemonが、リクエストを処理し終わっても そのままデーモンとして残り続けていませんか? xinetdから起動するなら、処理ごとに終了するべきですね。 git-daemonに渡せるオプションはありませんか? --inetd だろうか。
427 名前:421 mailto:sage [2009/08/14(金) 11:43:01 ID:vxCEaCUs] >>429 本当にありがとうございます!! git clone できました!!! 今後の人のためにまとめると、 openSUSE 11.1 で $ sudo zypper install git-daemon したのを ssh 使わずに利用したいなら /etc/xinetd.d/git を下記に変更。 ■ BEFORE server_args = daemon --syslog --detach --reuseaddr --user=git-daemon --group=nogroup --pid-file=/var/run/git-daemon.pid --base-p ath="/srv/git" ■ AFTER server_args = daemon --syslog --detach --reuseaddr --inetd --export-all --pid-file=/var/run/git-daemon.pid --base-path=/srv/git 変更後、xinetd の再起動を忘れずに。 $ sudo /usr/sbin/rcxinetd restart あー、今日はもう帰ってビール飲みたい。
428 名前:427 mailto:sage [2009/08/14(金) 11:43:52 ID:vxCEaCUs] 興奮して間違えましたが、429 さんではなく、>>426 さんです。 そのほか、いろいろ助言を下さった方、ありがとうございました。
429 名前:login:Penguin mailto:sage [2009/08/17(月) 12:41:58 ID:w4WoSrsO] read only で構わないのですが、linus 達がいじっている linux kernel tree 本線を git で、ローカルのlinux PC 上に 同期できるでしょうか?その場合、どうすれば良いですか?
430 名前:login:Penguin mailto:sage [2009/08/17(月) 13:25:08 ID:IIDjTJ7I] linux kernel git torvalds でぐぐれ
431 名前:login:Penguin mailto:sage [2009/08/17(月) 14:01:07 ID:w4WoSrsO] ありがとうございました。逝ってきます。
432 名前:login:Penguin mailto:sage [2009/08/18(火) 00:02:03 ID:cqrV6ZTW] >>429 >read only で構わないのですが、
433 名前:login:Penguin mailto:sage [2009/08/18(火) 14:17:17 ID:LNnWooNT] コミットの適切な粒度がわからない GitHubのNetworksでどばっと20個くらいドットが突出すると悩む これやっぱ手作業でまとめておくべきだったかもしれない、とか 手元のコミットは細かくして公開するブランチに追加するときにまとめるのがいいのだろうか でもコミットを1個ずつ扱うのってブランチのメリットなくね、とも思ってみたり マージとかができてこそのブランチだろう、とも思う
434 名前:login:Penguin mailto:sage [2009/08/18(火) 14:41:53 ID:Kn1/NE8Q] >>433 何がしたいのかが分かって、適度な量の差分があって、機能単位にまとまっていれば (混ざり合っていなければ)それでいいんじゃないかな。 後はバリバリ作り中なのか、機能追加中なのか、とか、、、 同時にコーディングしてる人の数にもよるね… 俺はキレイなコミットを作りたいほうなのでけっこうまとめてからにしてしまうなぁ
435 名前:login:Penguin mailto:sage [2009/08/18(火) 22:05:49 ID:Gf8+h6+U] 最近、なんかgitの勢いすごいね そこら中で使われはじめて リーナスのいうように、kernel特化でほそぼそといくと思ってたよ
436 名前:login:Penguin mailto:sage [2009/08/19(水) 12:38:13 ID:pceGE7iL] hg派だったがリスク分散のため入門gitで勉強中。 微妙な違いがいやらしいなぁ。 viとemacsは同時に使えるが hgとgitはかなり混乱しそうだ。
437 名前:login:Penguin mailto:sage [2009/08/19(水) 23:02:46 ID:O0WnAYMJ] monotoneどうよ?
438 名前:login:Penguin mailto:sage [2009/08/20(木) 04:02:05 ID:2o0Eo2gm] >>433 そんなレベルの人間が公開なんかするな 迷惑だから
439 名前:login:Penguin mailto:sage [2009/08/20(木) 04:24:39 ID:amhGymTU] .| .| ∩___∩ | | ノ\ ,_ ヽ .| / ●゛ ● | .J | ∪ ( _●_) ミ 彡、 |∪| | / ∩ノ ⊃ ヽ ( \ / _ノ | | \ " / | | \ / ̄ ̄ ̄ /
440 名前:login:Penguin mailto:sage [2009/08/27(木) 18:25:34 ID:AEidpR6i] git push した時に表示される、 Total 15 (delta 13), reused 0 (delta 0) の delta や reused って何でしょうか?
441 名前:login:Penguin mailto:sage [2009/08/27(木) 19:25:19 ID:HNb4zbwi] git を使い始めて、また git 関連の文書を読んでて気になった点。 ・index, cached, stage といった用語を一貫して欲しい ・obj, ref などが何の説明もなく頻繁に登場するが、何を指しているのか不明
442 名前:login:Penguin mailto:sage [2009/08/27(木) 21:44:24 ID:KnkKlcU8] >>441 >index, cached, stage といった用語を一貫して欲しい MLしばらく読んでからパッチ送る、とか。 >obj,ref git help tutorial-2 あたりかな?
443 名前:login:Penguin mailto:sage [2009/08/28(金) 07:32:58 ID:sWD41Zdb] >>441 > ・index, cached, stage といった用語を一貫して欲しい 無理。indexで統一できなくはないけど、どういう使い方をしているかで呼び分けてるから。 ML漁ればどういう意図で呼び分けてるかの回答はあるよ。
444 名前:login:Penguin mailto:sage [2009/08/28(金) 08:05:49 ID:fZ8G9Ga3] それじゃダメだろふつー 用語集はつけとくべきだな
445 名前:login:Penguin mailto:sage [2009/08/28(金) 12:15:32 ID:cXIbI/jo] stageは利用者側の視点。 indexは実装者側の視点。 cacheはどういう発想なのか不思議。
446 名前:login:Penguin mailto:sage [2009/08/28(金) 13:53:30 ID:xwPQ04ed] 用語集も見つけられないの? 何なの? www.kernel.org/pub/software/scm/git/docs/user-manual.html#glossary
447 名前:login:Penguin mailto:sage [2009/08/29(土) 14:57:13 ID:U8/P76bc] >446 cache Obsolete for: index. えらそうなこった
448 名前:login:Penguin mailto:sage [2009/08/29(土) 16:10:23 ID:+Pa25OBz] ところで > Truth be told, it can also contain a second, and even a third version of a working tree これHamanoさんか誰かの講演を聞いた人のメモで読んだことが あるのを思いだしたんだけど、てことは何度かgit stageしたそれぞれの バージョンをみたり、バージョン間で差分見ることができるってこと? もしそうなら、どういうコマンドでできるの?
449 名前:login:Penguin mailto:sage [2009/08/31(月) 02:43:09 ID:VXNlRilH] git のドキュメントを読んでいる最中なのですが、 subversion と違って履歴を持つオブジェクトの概念があるわけではないので subversion のような改名いかんに関わらず履歴やdiffを追えるという特徴は git にはないと理解しました。あってますか。
450 名前:login:Penguin mailto:sage [2009/08/31(月) 11:11:59 ID:kZiorwCa] git commit -m でコマンドラインから直接コミットログを書いた場合と git commit で開いた vim から書いた場合で文字コードが違った(上記はUTF-8,vimはiso-2022-jp)ので、 git log 等で見ると vim から書いた方が文字化けしてしまいました。 git log --encoding=iso-2022-jp とすれば文字化けせずに見られるのですが、やはり文字コードを統一したいので log を直接編集したいのですが、 .git/logs/HEAD .git/logs/refs/heads/master を編集しても文字化けは解消されませんでした。 どのファイルを編集すればよいのでしょうか?
451 名前:login:Penguin mailto:sage [2009/09/01(火) 01:17:08 ID:BBTYztuT] >>449 git log -p --follow <path>
452 名前:login:Penguin mailto:sage [2009/09/01(火) 01:22:40 ID:BBTYztuT] >>450 git commit --amend でHEADのコミットメッセージ入力をやりなおせる または、 git reset HEAD^ で一旦HEAD^まで戻してやりなおす。 ちなみに git commit -F <file> でファイルからコミットログを読ませることが可能なので試してみて 試してないが -amend との同時利用も可能なんじゃないかな
453 名前:login:Penguin mailto:sage [2009/09/01(火) 06:39:58 ID:BUwsap/v] >>451 どうも。コミットを追跡することでやっているみたいですね。 でもmv後修正してからコミットしたり、あるいはcpでフォークしたり(ファイル を分割するときとか)はやはり追跡できないみたいですね。
454 名前:login:Penguin mailto:sage [2009/09/01(火) 11:24:42 ID:qONSM/kc] >>450 を読んで気づいたけど、 command line のcommit log の文字コードって、今まで考えてもいなかったよ。 で、i18n.commitEncoding と i18n.logOutputEncoding の値を、 変えて色々試してみて、ワザと異なる文字コードの時の動作が しっくりこなくて調べた。 解ったことは、 message が commit object に格納される時って、 文字コードを変換してくれるんじゃなくて i18n.commitEncoding で、指定した値をcommit object に encoding EUC-JP って、挿入してるだけなのね。 encoding で指定しない時が UTF-8 で、これがデフォルトってことみたい。 出力時にi18n.logOutputEncoding を元に変換する。 だから、commit message も、raw って言えば raw なのね。 ん 、知りませんでした。ビックリ。 これで、コード変換に纏わる面倒な部分を、(出力時にまわして) うまく避けてることになるのかな。
455 名前:login:Penguin mailto:sage [2009/09/01(火) 12:01:26 ID:bYVC5N8B] tortoisegitの話題はここでいいんだろうか。 indexの存在を完璧に隠蔽しているのはかなり大胆な設計だと思う。
456 名前:login:Penguin mailto:sage [2009/09/01(火) 12:38:37 ID:Cu6PEjTW] >>452 ar
457 名前:login:Penguin mailto:sage [2009/09/01(火) 12:39:46 ID:Cu6PEjTW] >>452 ありがとうございます。出来ました。 --amend は直前のコミットしか編集できなかったのですが、 ttp://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html#rewriting-one-commit を見て、git rebase と組み合わせると以前のコミットでも修整できることが分りました。 >>456 はミスです...
458 名前:login:Penguin mailto:sage [2009/09/01(火) 15:48:31 ID:cQoB1n74] 修正、ではない 残念ながら
459 名前:login:Penguin mailto:sage [2009/09/01(火) 17:44:29 ID:Cu6PEjTW] >>458 古いコミットを削除?して新たにコミットしている、という事でしょうか?
460 名前:login:Penguin mailto:sage [2009/09/01(火) 19:42:56 ID:+F0cM0kX] ハッシュ見れ
461 名前:login:Penguin mailto:sage [2009/09/01(火) 20:44:28 ID:2vtwePxM] >>460 なるほど。 git show "古いハッシュ" で、古いコミットのログが見れました。 削除はしてないんですね。
462 名前:login:Penguin mailto:sage [2009/09/01(火) 21:41:34 ID:miUg4h5c] >>461 gcしたら消えるよ。どこからも参照されてなければ。
463 名前:login:Penguin mailto:sage [2009/09/04(金) 22:13:13 ID:jVdAqUn/] あるリポジトリとそのミラーがいくつかあって、最初にcloneしてきた ところから普段はfetchしている $ git fetch んですが時々別の場所からfetchしたい場合があります。 $ git fetch another_mirror こういう場合、各ミラーをそれぞれremoteとして登録すべきなんで しょうか。調べた限りではurl.<url>.insteadof=<alias>を 使ってURLに別名をつけられるのですが、fetchコマンドの最初の 引数にこのURL別名だけを与えても実際にはデータが落ちず、refspec まで書かないといけなくて面倒です。