1 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 01:53:58.45 ] ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。 Git - Fast Version Control System git-scm.com/ ◆前スレ Git 2 hibari.2ch.net/test/read.cgi/tech/1284467898/ ◆関連サイト Pro Git - Table of Contents progit.org/book/ja/ Git入門 www8.atwiki.jp/git_jp/
411 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 13:22:32.50 ] 質問です。 git svn clone して以下のように作業しているんですが... 1. branch を作って作業 2. master にマージ 3. git svn dcommit このあと、 branch は要らなくなったので git branch -d すると error: The branch '○△□' is not fully merged. 消したかったら -D で消せ と怒られます。 git svn dcommit すると、 commit のハッシュ値みたいなのも変わりますので 怒られるのは当たり前だとは思います。 ・・・が、 2. master にマージ 3. git svn dcommit の間に要らなくなったブランチを削除しておくのが普通なのでしょうか?
412 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 13:22:40.31 ] anonymousでpushできる世界の話?
413 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 13:30:07.71 ] 2重管理で悶えてるじゃねーかw
414 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 18:39:45.51 ] >>322
415 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 22:43:50.41 ] 二重管理ってgit-svnのことだったのかよw
416 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 22:46:10.96 ] >>413 無駄だ
417 名前:デフォルトの名無しさん mailto:sage [2011/10/17(月) 23:54:08.81 ] >>410 意図的にSHA-1を衝突させるとか何者?
418 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 00:00:29.53 ] >>410 できないできない絶対できない やれない気持ちの問題じゃない
419 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 00:02:40.58 ] できるできる絶対できる!
420 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 00:11:19.82 ] たとえ将来、自由にハッシュを衝突させることができるようになったとしても 既存のリポジトリの内容を破壊できるわけでもなんでもないその行為になんの意味があるの?
421 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 00:19:18.86 ] // コメントを外すと何故かコミットできない
422 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 01:19:44.68 ] >>411 master で dcommit したら topicブランチの方でも git svn rebase とか git rebase master とかすると、ハッシュ値が違う同じコミットが整理されて、 git branch -d で消せるようになるよ。 >2. master にマージ これって merge っていうか FastForward だよね? あと dcommit する前にも git svn rebase するはず。 git svn じゃなくても rebase すると -D じゃないと消せない はぐれブランチが 出来る可能性はある。
423 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 06:14:39.87 ] >>411 俺はmerge時には--no-ffしてる。
424 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 08:05:41.70 ] 411です。 ありがとうございました。 今日もういちど しらべたりやってみたりしようと思います。
425 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 12:40:59.27 ] 質問です。 masterからtestブランチをつくってcoし、testブランチのほうであるファイルの内容を 変更しました。statusを見てみると、たしかにadd待ちになっています。 その状態でcoしてまたmasterに戻り、なんとなくstatusを見てみると、 ブランチで作業したファイルが、こちらでも変更されたことになっています・・・ ファイルの内容を確認すると、ブランチでの変更と同じものになってしまっています。 ここでまたcoしてtestブランチに戻り、addしてmasterに戻ると、 こちらでもaddされてcommit待ちになっています。 これはこういうもので、ブランチで作業した場合、 commitせずにmasterに戻るのは間違いということでしょうか。 まだgitを使い始めて日が浅いので、誤操作したのかもしれませんし、 正しく理解できていないところもたくさんあると思いますが、 ちょっと困惑してますので、ご教示ください。
426 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 12:48:01.10 ] 2重管理地獄の中で悶えて死ねw
427 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 13:09:33.26 ] >>322
428 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 13:15:06.14 ] >>425 addしていないファイルはどのブランチにも属さない 単に管理されていないから、どのブランチにいても「未管理ファイル」として表示される それだけ
429 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 13:18:41.03 ] あー、なんとなくわかってきました。 testのほうでadd/commitするとtestが新しくなり、 masterに切り替えると古い版が維持されてました。 最初からやりなおしてまたtestで修正し、今度はmasterに切り替えてこっちで add/commitすると、masterが新しくなり、testのほうが古いmasterの状態を 維持してました。 こういうものなんですね。co すると、そのブランチの (こっちが期待している元の)状態に全部きれいに切り替えてくれるものと 思ってましたし、ブランチでの修正をmasterでcommitできるとか 考えてもみませんでした。 たぶん私は「ブランチ」の概念から理解しなおさないとダメですね。
430 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 19:23:36.94 ] ブランチというか、ステージングの概念じゃない? ワークツリーの変更を退避したければ git stash でできるよ でも、とりあえずコミットしておいてあとでコミットを編集・整理するのでも良いと思う
431 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 19:25:39.62 ] 概念がどうとかいうほどのもんかね?
432 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 19:26:24.02 ] gitってうんこだな
433 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 19:32:13.07 ] >>431 いやだってbranchとは別物じゃない
434 名前:デフォルトの名無しさん [2011/10/18(火) 19:58:28.05 ] gitはbranchとstashの2重管理のうんこ
435 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 22:49:25.35 ] あれからあらためてman読んだり自分で考えたりして、それなりにわかりました。 gitにはようするに「コミットオブジェクト」みたいなものしかないわけですよね。 タグはもちろんブランチも、ユーザのための記号みたいなもの。 だからブランチをつくったばかりなら、両ブランチは対等というかおんなじもので、 どちらが親とか、そういう意味もない。コミットした時点で初めて、 新たな「コミットオブジェクト」がつくられる。 あるコミットオブジェクトがどのオブジェクトから派生したか、といった情報は、 オブジェクトがつくられるときに記録される。 こう考えるとすごくわかりやすくなりましたし、シンプルでいいな、と思いました。 こんな感じに理解しましたが、だいたい合ってますでしょうか?
436 名前:デフォルトの名無しさん mailto:sage [2011/10/18(火) 23:35:29.83 ] だいたい合ってる しいていえばタグは特定のコミットをピンポイントで指すけど、ブランチはコミットの歴史(HEADの変遷)を指すってところかな
437 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 00:03:29.96 ] Git のタグは、軽量 (lightweight) 版と注釈付き (annotated) 版の2重管理のうんこ
438 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 00:30:05.82 ] バージョン管理システム界にカオスと混乱を招いたgitの罪は重い
439 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 00:45:54.69 ] >>436 ありがとうございます。 タグとブランチの違いについても考えてましたけど、おおむね間違ってなかったみたいです。 使いかたはまだまだ練習中ですが、いろいろわかってきたので面白いです。
440 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 08:05:53.27 ] gitを理解できない奴の頭の中がカオスになってるだけだろ。 自分の頭の悪さを罪だと思えw
441 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 08:30:20.91 ] 構うなベアード
442 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 08:58:52.72 ] >>435 シンプルでいいよね。そこに気づけばもう迷うことはないよ。 必要に応じてコマンド覚えていけばいいだけ。おめでとう。
443 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 15:48:27.96 ] 今一番使われているバージョン管理システムってgitなんすか
444 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 16:07:14.60 ] ちょっと調べてみて使い方がスっと入ってこない時点でうんこ
445 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 19:43:26.24 ] >>443 今一番使われてるのはSubversion オープンソース開発でGitが増えている 一般の開発でもGitが増えつつある。 svn→gitは便利になることもある反面失うものも多いから 単純に置き換えが進むというものではなくてずっと共存すると思う。 過去、cvs→svnはなにも失うものが無かったから一気に移行が進んだ
446 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:05:51.00 ] 失うものがないもっと良いやつ作れよ 何が分散型だよ中央とローカルで2つsvnリポジトリ持ってるのと一緒じゃねーかw
447 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:08:14.93 ] 失うもの "SVN厨"
448 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:14:24.67 ] 何かを得れば何かを失う。人生とはそんなものだ。 状況に応じて使うか使わないかを決めるといい。
449 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:14:40.98 ] 失うもの ・コミッタの特権 ・リビジョン番号 ・svn的なタグ・ブランチ
450 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:22:17.82 ] Linusも開発してて途中でうんこだと気付いたから手を引いたんだろうな
451 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:45:32.75 ] 使えないとか言ってるやつはとりあえずこれ読んでこの通りブランチ運用してみろ A successful Git branching model(翻訳) keijinsonyaban.blogspot.com/2010/10/successful-git-branching-model.html ある程度やったらGit log --graph --statってやってみ こりゃ便利だと思うぞ
452 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:47:39.83 ] で、あのおっさんがうんこと気づかずにメンテナ面して得意満面にいじくりまわしてるってか? …ちがうだろ、基本設計が良かったから発展し続けてるんだろ? 俺は単にJunioのことをおっさん呼ばわりしたかっただけだw
453 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:54:26.03 ] >>451 グラフがうんこになるのを推奨している記事か
454 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:55:34.40 ] うんこを押し付けられてせっせとメンテナンスするおっさん…
455 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 20:59:19.29 ] svnみたいなうんこツール使ってると性格までうんこになるのか
456 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 21:00:32.44 ] gitは中途半端でめんどくさいツールでFA たぶん3年後くらいにちゃんとした次世代バージョン管理システムができるから それまでsvnでいいや
457 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 21:03:15.06 ] >>456 のほざく「次世代」に「SVNと同様の」が多分に含まれてる汚感。
458 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 21:09:17.58 ] >>457 つBazaar
459 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 21:26:06.35 ] うんこ話は盛り上がるがまんこの方が好き 盛りまん
460 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 22:03:50.73 ] >>446 Mercurialならgitより失うものは少ないんじゃね
461 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 22:15:51.61 ] git log --name-status -M とかやると移動の履歴も見れて素敵なんだけど ファイルステータスの記号に続く3桁の数字の意味ってなんなんだろう。 R077 R100 とか、合致率とかかな?
462 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 23:41:34.07 ] >>449 >・コミッタの特権 これかなりメインテーマだよな。 >>461 多分そうだろうなーと俺も思ってた。
463 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 23:57:55.46 ] TortoiseGitのFormat patchで作ったパッチ、何でファイル名の前に a/とかb/がつくの?付けさせない方法ないの?
464 名前:デフォルトの名無しさん mailto:sage [2011/10/19(水) 23:59:34.28 ] 番号飛びすぎワロタwwww まだ一所懸命やってるようだな。ご苦労なことだ。
465 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 06:47:53.91 ] >>463 diff.noprefix のことだとは思うが後悔するなよ? tgit で試してないから知らん。
466 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 12:17:02.67 ] >>446 良いよ。いくら払う?
467 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 12:44:32.82 ] >>446 svkのこと?
468 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 13:03:19.48 ] かかってこいよ
469 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 18:56:12.46 ] さっさとかかってこいよブタ共
470 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 19:13:18.48 ] __ , ‐' ´ ``‐、 / ̄:三} . /,. -─‐- 、. ヽ / ,.=j _,.:_'______ヽ、 .! ./ _,ノ `‐、{ へ '゙⌒ `!~ヽ. ! /{. / `! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことよりBazaarしようぜ! . {.l '⌒ ゙ 6',! / :::::::::::::::/ __ . 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、 . ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ ,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 / / / :::::::::::::::: ; '´ /´\ / r'\ . i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、 { {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \ . ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
471 名前:デフォルトの名無しさん [2011/10/21(金) 08:14:27.43 ] gitで管理しているディレクトリの配下に、 他のリポジトリからディレクトリをcloneしたりしたら問題になりますか?
472 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 08:51:50.02 ] >>471 addしなけりゃいいだけだ。 してもgit的には問題は無いけどまあ普通しないわな。
473 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 09:46:45.30 ] >>471 submodule使おう
474 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 12:52:54.39 ] --reference (objects/info/alternates) に含まれているオブジェクト以外を prune することってできる? もちろん alternates の先はオブジェクトが消滅せずひたすら追加されていく前提で。
475 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 12:53:50.02 ] >>474 うわ日本語間違えた。 「alternates が保持しているオブジェクトをローカルオブジェクトから prune」だ。
476 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 23:01:08.48 ] Bazaarスレ、なんか埋め立てられているし
477 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 23:06:37.77 ] 分散型バージョン管理システムとは3DSみたいなもの
478 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 00:34:59.24 ] cvs:ゲームボーイ svn:DS git:3DS
479 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 02:03:17.54 ] cvs:ゲームボーイ svn:ゲームボーイカラー git:DS
480 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 06:33:19.13 ] cvs:ファミコン svn:スーファミ git:バーチャルボーイ
481 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 09:18:25.92 ] やれやれだ
482 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 19:28:28.36 ] サードパーティというかベンダというか、そういう外部由来のソースの小さなバグ直したり、 ちょこっと「自分仕様」を追加したりしつつ利用していくときって、 ブランチはオリジナル版とカスタム版のどっちをmasterにしとくのがいいんでしょう? オリジナル版の更新も取り込みつつ、カスタム版をメインに利用する、 と考えると、master/vendor っていう分けかたがいいのかな、とは思うんですけど・・・
483 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 19:54:13.12 ] どうでもいいよ pull/pushするときに送信ブランチ名と送信先ブランチ名を指定できる(つまり、送受信時に自由にリネームできる)から、手元では好きに名前をつけるといい
484 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 20:30:04.96 ] もっと言うと master というブランチ名自体に特別な意味はない。 一般的には外部由来のもの、すなわち pull 専用のものを origin/master -> master として 自分用ブランチを設けて好き勝手にやるのが自然。 上流(この場合外部)に自分の変更の一部を反映するための方策についてはまた別の話。
485 名前:デフォルトの名無しさん mailto:sage [2011/10/23(日) 20:47:15.83 ] いちおう慣習的なブランチの名前というのはいくつかあったはず
486 名前:482 mailto:sage [2011/10/23(日) 21:40:50.26 ] なるほど、これといったルールはないんですね ただのzipとかtarballでしか配布されてないものなんかも想定しているので、 自分がわかりやすいと思う分けかたでやっていくことにします
487 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 20:47:17.46 ] 他の開発者との中央へのコミット内容が競合した場合の対応ってgitだとsvnより楽だったりしますか
488 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:27:48.69 ] つーかSVNが苦行
489 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:35:10.19 ] うんこよりマシ
490 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:57:09.24 ] >>487 楽だよ。3wayマージ賢い。 さすがに同じタイミングでがっつり同じ箇所ぶつかったら 手でマージすることになるけど、補助ツール使えばなんとかなる。
491 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 22:51:45.87 ] バイナリ込みで数十 GB とかいける?
492 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 23:39:13.23 ] いけると思うけどでかいバイナリを頻繁に変更するならちょっときついかもしれない
493 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 00:37:19.80 ] target ディレクトリを毎回コミットする奴にはどういえば直るだろうか
494 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 07:53:31.04 ] >>493 TortoiseGit 病だな?
495 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 09:04:05.61 ] >>493 gitignoreしたらどうなの?
496 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 17:07:40.40 ] 3wayマージは補助でp4merge使うと、ほとんど手修正しなくていいぞ
497 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 22:20:26.99 ] >>495 新規モジュールでやられてしまうので
498 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 10:27:29.73 ] 開発ブランチ(master)と、リリースブランチ(rel-X.X)とがあって、リリースブランチ(または開発ブランチ)に行ったcommitを、もう一方のブランチにcherry-pickしています。 このとき、両ブランチの間でどのコミットがcherry-pickされていて、どのコミットがされてないかを調べるいい方法はないでしょうか。
499 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 11:28:41.10 ] git pullを試みたところ、 error: Your local changes to the following files would be overwritten by merge: と言われました。しかし、今現在worktreeにある変更はどうでもいい些細なものなので、worktreeにある変更を 破棄して、とにかくpullしたいです。どうすればいいですか?
500 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 11:32:47.15 ] >>499 よーわからんけど、ローカルの変更がどうでもいいなら全部消してcloneし直せばいいんじゃ?
501 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 12:46:04.13 ] >>499 競合のあるbranch上で git reset --hard origin/upstream_worktree
502 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 13:12:17.86 ] >>498 git cherry -v branchA branchB で、ある程度分かるかもしれない
503 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 14:04:15.67 ] >>502 git checkout rel-X.X git cherry -v --abbrev=8 master で望みの結果が得られました。 + が、rel-X.X にだけ適用されて、masterには適用されてないcommit、 - が、rel-X.Xとmasterの両方に適用されているcommit のようです。 ありがとうございました。
504 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 15:39:51.17 ] また2重管理で苦しんでるな 何の罪も無い純粋な技術者がなぜ苦しまなければならないのか
505 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 15:49:26.51 ] 別に苦しんでないだろ 自分で調べるのが面倒なのがここで質問して、おせっかい焼きが答えてるだけ
506 名前:デフォルトの名無しさん [2011/10/29(土) 13:35:21.20 ] HEADだけcloneするにはどうやればいいのでしょうか?
507 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 15:12:07.97 ] なんだそりゃ 全ファイルの旧編集履歴をひとつの最新コミットに詰め込んで新たに履歴1個だけのブランチを作りたい?
508 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 15:37:35.49 ] Signed off by って Linus のオナニー以外に何の意味があるの?
509 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 15:46:14.22 ] ユーザー無視の開発者のオナニーの産物
510 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 20:54:41.26 ] なんでSigned-off-by:がLinusのオナニーってことになるのか意味不明。 著作権者をtrackするための重要な情報なのに。
511 名前:デフォルトの名無しさん [2011/10/29(土) 21:39:58.53 ] 元の作者を尊重しつつ、コード作成とコミットの責任所在をわけることが出来る 仕組みのはずなんだが、Sign-Offに名前が出ることが売名行為に見えてるんだろうね。