1 名前:デフォルトの名無しさん mailto:sage [2014/01/14(火) 21:16:57.41 .net] ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。 Git - Fast Version Control System git-scm.com/ ◆関連サイト Pro Git - Table of Contents progit.org/book/ja/ Git入門 www8.atwiki.jp/git_jp/ ◆前スレ Git 7 toro.2ch.net/test/read.cgi/tech/1381929347/
528 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 11:39:16.51 .net] $ git merge @{tomorrow} Already up-to-date. $ git merge @{tomorrow} --allow-empty
529 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 11:46:37.58 .net] >>522 バグってますね。 空なワケがない
530 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 12:14:20.18 .net] git diff @{tomorrow}が実装された瞬間に時間(歴史)の矛盾が生じるので世界が崩壊します…
531 名前:デフォルトの名無しさん [2014/03/05(水) 13:02:12.42 .net] 涙の数だけ強くなれるよ
532 名前:デフォルトの名無しさん mailto:sage [2014/03/06(木) 11:12:03.25 .net] $ git merge @{tomorrow} Already up-to-date. ↑ 今日という日に勝るものはない (ゲーテ) 今日を大切にイ`とgitは教えてくれている
533 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 13:19:13.97 .net] 現在プログラム板のID制導入の投票を実施中です よろしくお願いします プログラム板 強制ID制導入に関する投票スレ kohada.2ch.net/test/read.cgi/vote/1394290844/
534 名前:デフォルトの名無しさん mailto:sage [2014/03/09(日) 15:31:35.75 .net] >>523 こういう結果になるがよろしいか p.twpl.jp/show/orig/VJ6m2
535 名前:デフォルトの名無しさん mailto:sage [2014/03/12(水) 17:47:09.58 ID:k2RSk+O8.net] どうしてgitにはリモートのタグ一覧を見る機能が無いんだろう
536 名前:デフォルトの名無しさん mailto:sage [2014/03/12(水) 17:52:25.96 ID:iuIDUWkr.net] >>529 gitはとってきてから何かするってイメージがある。
537 名前:デフォルトの名無しさん mailto:sage [2014/03/12(水) 18:06:31.06 ID:hnG5PeUR.net] >>529 ls-remote --tags
538 名前:デフォルトの名無しさん [2014/03/13(木) 13:01:30.94 ID:NA+IXwp9.net] >>529 どうしてそう思ったの?
539 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 16:03:21.67 ID:2QWInfDW.net] まだ公式サイトにも Google code にもないけど 2.0.0 がリリースされたみたい Git 2.0.0 released sdt.bz/content/article.aspx?ArticleID=68912&page=1
540 名前:デフォルトの名無しさん [2014/03/13(木) 16:51:19.90 ID:mqQuWcqA.net] GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus) [単行本(ソフトカバー)] 大塚 弘記 www.amazon.co.jp/gp/product/477416366X/ いよいよ入門書の決定版が出そうだな。
541 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 17:17:00.80 ID:dvaQTbQU.net] ステマ?
542 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 19:34:40.75 ID:NA+IXwp9.net] GitとGithubの違いがわからない人か それほど厚い本でもないし、Git自体の解説にはあまりページを割けないだろ
543 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 22:53:41.66 ID:1RS5+8h0.net] git init ls fileA git add fileA ls gzip filreA.gz これしたらfileAが残ったまんまになった touch fileAしてgit addしてコミットしたら直ったけど
544 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 23:06:56.94 ID:+lIKaSU4.net] >>537 indexにfileAが残ったまんまになるのは当たり前だろう。 indexが何かがわかってないのかな?
545 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 23:16:40.40 ID:NA+IXwp9.net] >>537 3行目のfileAは2行目のlsの結果なのだろうか? とうことは5行目のlsの結果は?ファイルが存在しないってこと? 6行目のgzip filreA.gzってなんだ?仮にfileAを圧縮するならgzip fileAだよね? fileAが残ったままになったというのはlsするとfileAだけ存在するってこと? リポジトリの状態はgit statusで確認しろ
546 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 23:29:41.88 ID:1RS5+8h0.net] git init ls fileA git add fileA gzip fileA ls gzip fileA.gz こうだった バージョン管理ソフトってあんまり使い始めたからよくわからない OSSにプッシュして保存する感じで使ってる
547 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 23:37:38.11 ID:Z7oT29iq.net] 入力と出力はそれとわかるように % とかのプロンプト付けるとか > で出力っぽくするかしてくれ
548 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 23:38:02.48 ID:+lIKaSU4.net] >>540 それも間違ってると思うぞ。
549 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 23:44:11.03 ID:NA+IXwp9.net] >>540 7行目は何なんだ?
550 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 23:50:06.68 ID:1RS5+8h0.net] $git init $ls fileA $git add fileA $gzip fileA $ls fileA.gz こうでした
551 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 23:54:44.81 ID:+lIKaSU4.net] >>544 で、何が君にとって予想外だったの?
552 名前:デフォルトの名無しさん mailto:sage [2014/03/13(木) 23:59:18.25 ID:1RS5+8h0.net] 予想は何もしてなかったけどキャッシュを削除すればいいと今わかった それだけでしたw
553 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 00:50:56.65 ID:ClnHzXXo.net] $git add fileA これをした理由がよくわからんね
554 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 07:27:00.43 ID:DebDhZgS.net] >>540 質問する時は何がしたいのかも書いて欲しい。 いったんfileAをgitの管理下に置いたけど、それを取り消してfileA.gzをgitで管理したいってこと? まず、fileA.gzをgitで管理する理由は? 普通はfileAを管理すればいい筈だけど。 次に、git addだけしてgit commitしてないのは何故? 単にgitが分かってないだけかな。 あとは何がしたいのかにもよるけど、git addを取り消したいの? それとも、git commitまでしたものを取り消すまたは削除したいの? 多分、根本的にバージョン管理とは何かを学ぶ必要があるね。
555 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 09:10:27.66 ID:jnh1VUPi.net] まあここにいる人の大半は知っていると思うけど。 gitがsubversionと違うのは、 gitが現実的であるということ。 つまり、プログラミングをしている時に 「あれ」を作ってる最中に 「これ」を先に直しておかなきゃだめじゃん という状態が発生することを前提にしている。 だから「あれ」を作ってる最中に「これ」だけを git addし(git addするのはファイルの一部だけも可能) そしてコミットできる。 「あれ」の最中に違うことが出来るんだよ。 そのための機能として、他にはrebaseがあったり stashがあったりする。 計画は思ったとおりに行かない。だから後から修正ができるようになっている。
556 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 09:14:56.37 ID:jnh1VUPi.net] git addっていうのは、「ファイルが完成したので追加します」ではなく 「一つの修正」に含まれる内容にaddするという意味だからね。 「一つの修正」を登録して完了するのがgit commit
557 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 09:42:22.32 ID:3AXtQvy9.net] >>550 そこにrmが含まれてない理由はよ
558 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 12:23:40.41 ID:N9inECXp.net] ステージング
559 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 13:13:12.01 ID:HKnmhhn0.net] >>551 そこにrmが含まれるとか考えた理由を知りたい
560 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 15:15:54.97 ID:a+Iqcg5c.net] >>547 ,548 質問者はステージングされたファイルを削除しても インデックスに残り続ける事を不思議に思った、と言いたいんでしょ コミットとか操作の意図とかはどうでもいい話だと思うよ
561 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 19:36:58.50 ID:N9inECXp.net] ワークとステージが別と理解すべし
562 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 20:03:40.12 ID:ClnHzXXo.net] >>554 実験してるだけってことね
563 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 20:04:06.07 ID:vrX/dLqF.net] ワーキングステージックス?
564 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 22:19:20.44 ID:mqmIxcJs.net] >>551 git rm --cachedしたいの?
565 名前:デフォルトの名無しさん mailto:sage [2014/03/14(金) 23:29:54.21 ID:jnh1VUPi.net] >>551 rmとはgit rmのことなのか普通のrmなのか。 まあそれはどうでもいいとして、 ・ファイルを修正する → その修正内容をgit addする。 という手順がある。これと同じで、 ・ファイルを削除する → その修正内容をgit addする。 ということも出来る。削除したのにaddするとは面白いね! まあ、git addというのが「ファイルの追加」ではなく 「変更点の登録」と考えれば理解できるだろう。 なお、今のgitではファイルを物理的に削除したものをgit addするときには、 -Aオプションが必要だけどgit 2.0から不要になるとのこと。 俺はgit add -uで変更されたファイル(削除含む)を全て登録することが多いんだが。
566 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 02:34:16.48 ID:ZaDeQqIr.net] >>549 の手順を具体的に教えてほしい ブランチ切ればいいの?
567 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 03:00:01.91 ID:CihRTndi.net] >>560 いろんなやり方があるんじゃないの? ワークツリー上の変更の一部だけをコミットしたいなら add -p 使えばいいし stash saveでワークツリー上の変更を一旦退避してから、別の修正をコミットして、 その後stash popで退避した変更をワークツリーに戻して元の作業に戻るとか
568 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 10:36:13.48 ID:rHQmp5Mm.net] コミットしてしまう前か、してしまった後かによって違うね。 コミットしておらず、ファイルの一部分のみをコミットしたいのなら git add -pだろう。 コミットしてしまった後で、コミットの順番を 変えるだけで済むならrebaseすればいいし、 そうでないのなら、どういう状態でどういうことをしたいかで いろいろやりかたはあるだろう。 ブランチは作ってもいいけど、小さいなら作る必要はない。 大きな修正がある場合は、過去の何処かでブランチ切って そっちにマージやcherry-pickしていったほうが早いかもしれない。
569 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 16:48:29.50 ID:CihRTndi.net] またGitの解説本だ www.amazon.co.jp/dp/4863541465 開発効率をUPする Git逆引き入門
570 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 17:13:12.82 ID:EOaK1FG8.net] 何冊も解説本が必要な時点で終わっとる
571 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 17:17:40.87 ID:rHQmp5Mm.net] 何冊も解説本が販売されると、 なんで終わることになるんですか? 多分C言語なんか、一番解説本が多いと思ういますけど?
572 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 17:21:37.93 ID:YKmk2JvD.net] まあそれだけ多くの人が使い始めてるわけだ
573 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 17:27:48.29 ID:rHQmp5Mm.net] ちょっとある仮説を思いついたから、Amazonでバージョン管理システムの 解説本がどれくらいあるのか調べてみたよ。 CVSによるオープンソース開発 (2002/6) 実用CVS ジェニファー ベスパーマン (2003/12) 「Subversion」解説書 (2004/12) 入門Subversion (2006/7) Subversion実践入門:達人プログラマに学ぶバージョン管理 (2007/4/21) Subversionハンドブック (2008/5/30) 実用 Subversion (2009/7/27) Subversion入門 (2010/5/26) 入門Mercurial (2009/1) 入門TortoiseHg + Mercurial (2013/2) (作者同じなので上のやつの改訂版かも) 入門git (2009/8/12) 入門Git (2009/9/19) 実用Git (2010/2/19) Gitによるバージョン管理 (2011/10/25) Gitポケットリファレンス (2012/7/10) わかる Git (2012/12/7) アリスとボブのGit入門レッスン (2012/9) 開発効率をUPする Git逆引き入門 (2014/4/8) ちなみに、仮説っていうのは、本の発行年から、どのように世の中が 移り変わっているかがわかるんじゃないかってこと
574 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 17:28:55.56 ID:TC2j70a9.net] Pro Gitでだいたい事足りると思うんだけどなあ
575 名前:デフォルトの名無しさん mailto:sage [2014/03/16(日) 18:15:28.83 ID:oYfix9gh.net] 入門書 リファレンス オライリー 本格的に使うならこれは買ってもおかしくない
576 名前:デフォルトの名無しさん mailto:sage [2014/03/17(月) 10:47:49.25 ID:iF7/E7LV.net] >>569 入門書ってどれだよ・・・
577 名前:デフォルトの名無しさん mailto:sage [2014/03/17(月) 14:16:02.50 ID:ywio8KhI.net] >>567 のだとGitポケットリファレンス以外は全部入門書でいいんじゃないの
578 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 02:53:47.93 ID:g+2MOTll.net] 1topi.jp/curator/fushimik/1303/04/103271 gitでDropBoxみたいな事できるそうなんですが Rubyのスクリプトみたいです WindowsでMyDocmentを自動同期したいなら 起動時に自動で起動すればいいの? やりかたわからないけど
579 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 03:07:20.21 ID:OqCH9dx5.net] 素直にDropboxを使うか、Dropboxクローンが ほしいならownCoudとかを使ったほうがいいよ。
580 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 13:54:35.23 ID:zGGXKiEK.net] >>572 これ見てガンバレ https://github.com/kitak/ohajiki/blob/master/README.md
581 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 14:30:23.66 ID:A9Mq7R78.net] >>572 ・タイムスタンプが同期されない ・バイナリ差分転送できない ・テキストであっても、かなり低速
582 名前:デフォルトの名無しさん mailto:sage [2014/03/19(水) 14:42:56.09 ID:2bqnpC5d.net] バージョン管理するテキストデータだけ専用のフォルダに分けて共有フォルダと別管理するべき
583 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 16:15:27.00 ID:Wj+qHZ+v.net] gitでpullとかcloneするときにタイムスタンプも戻したいんだけど どのオプションだっけか
584 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 16:24:01.23 ID:o89Np3ew.net] パソコンの日付を変える。
585 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 16:42:33.56 ID:QY3RInUB.net] >>577 Gitはファイルのタイムスタンプを保存していない コミットした時間は保存してる シェルスクリプトとか使えば、ファイルのタイムスタンプをコミットした時間に変更できる
586 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 15:06:12.02 ID:LwVxNWuC.net] Git神 Subversionはじだいおくれ糞
587 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 18:40:00.27 ID:nryWnJ89.net] gitはなんで空ディレクトリが扱えないんだよ 偏屈すぎるだろ それとも実装できない理由でもあるのか?
588 名前:デフォルトの名無しさん [2014/03/23(日) 22:16:32.16 ID:hT/roAz6.net] ファイルじゃなくて内容を管理しているから、かなあ(てきとう)
589 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:20:33.95 ID:/rUHJ76N.net] 内容を管理しているならさ、もう少しマシなdiffをだせないものかな? どうせ外部diffを呼んでるだけなんだろうけどさ、 たとえば長い関数の一部を取り出してを他のファイルに移動した時とか、 ちゃんとそれがわかるようなdiffを出して欲しいんだけど。
590 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:24:28.99 ID:Cwtmew+7.net] >>583 がもっとましなdiff作ってるってさ
591 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:29:18.73 ID:SSYwKPLD.net] >>583 期待してるよ
592 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:44:05.05 ID:/rUHJ76N.net] >>584-585 バージョン管理システムはバージョン間の違いの「目的」を理解するべき diffは テキストファイルにもバイナリファイルにも使える。 だがdiffにも難点があって、ちとアホなのよね。 diffがやってるのは 2つのバージョンを見比べて、単に違いを出してるだけ。 もっとましなdiffでは変更の結果だけでなく 変更の「目的」まで理解する。 たとえばツールを使い、 あるクラスに対してメソッドの抽出リファクタリングを行ったとする。 変更を加えたのはそこだけだ。 現状のツールはプログラム内のテキストの違いは分かる。 だけど、これがリファクタリングを行ったことまでは分からない。 変更の前後でdiffを調べてみると、 変更があったことは伝えてくれるが、 これはリファクタリングなんだと伝えるようなことはしてくれない。 これが今のdiffの欠点で、将来はどういう目的で変更したかまで把握できるdiffができる。
593 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:44:22.99 ID:oiqURFTj.net] 空のディレクトリを共有しようとする方がよっぽど偏屈に見える。それって必要?
594 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:47:02.93 ID:SSYwKPLD.net] >>586 だからその「目的」を解釈してくれるエンジンを>>583 が作るんでしょ?
595 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:50:51.21 ID:/rUHJ76N.net] >>588 単に今のdiffの欠点と、将来はどうあるべきかを言っているだけだけど? なに? 問題点をいっちゃダメなの?
596 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:51:53.66 ID:/rUHJ76N.net] 意味を理解するdiffっていうのは 優れたアイデアなんだけど それぐらい、わからないのかな?
597 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:52:05.60 ID:SSYwKPLD.net] 言い出しっぺやるの法則を知らない国の人か
598 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 22:52:51.54 ID:oiqURFTj.net] >>583 git diff -C 試した?
599 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:01:31.90 ID:YZGI/DRg.net] >>590 そういうことしたいなら、どう考えてもそのリファクタリングを行ったツールと連動した方が確実で簡単だと思う。
600 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:06:27.71 ID:9GdGP9ts.net] >>590 意味を理解するdiffとか、Git自体にそんなもの組み込む必要はないよ おなじみの git-scm.com/book/ja/ の7章読んできてくれ 「7.1 Git のカスタマイズ - Git の属性」の「外部のマージツールおよび Diff ツール」
601 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:11:29.16 ID:/rUHJ76N.net] あー、お馬鹿なお前らに名乗るの忘れていた。 俺、Martin Fowlerなんだよね。有名人だから知ってるよね? SemanticDiff martinfowler.com/bliki/SemanticDiff.html ここで>>586 と同じことを英語で書いてるから、 俺の言ったことが理解できない、馬鹿なことを言ってると思うのなら 英語を読むといいよw あと無知はぐぐれ。
602 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:14:09.37 ID:SSYwKPLD.net] >>595 いやだから最初から期待してるって言ってるじゃん。 はやく完成するといいね。
603 名前:デフォルトの名無しさん [2014/03/23(日) 23:17:10.68 ID:74vZT6SV.net] >>595 Martin Fowlerさん降臨記念カキコ
604 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:36:31.15 ID:T9zWShXS.net] 結局何が言いたいんだろう
605 名前:デフォルトの名無しさん mailto:sage [2014/03/23(日) 23:43:02.22 ID:oiqURFTj.net] diff、取ってみようか。 ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?SemanticDiff
606 名前:デフォルトの名無しさん [2014/03/24(月) 01:18:39.83 ID:0ol5+0pg.net] >>587 普通に必要だろ。git使いだけど不満に思っているよ。 もう少し想像力を働かせて欲しいものだな。
607 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 01:25:10.36 ID:PVohiAF8.net] >>600 empty_dir/.gitignoreに !.gitignore って書くんじゃだめなんすか
608 名前:デフォルトの名無しさん [2014/03/24(月) 01:26:55.61 ID:0ol5+0pg.net] >>601 いや、それはちょっとダサいでしょ。 仕方なく、そうやっているんだけどさ...
609 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 01:28:53.09 ID:PVohiAF8.net] おっと * が抜けた どちらにしろ空のディレクトリを空のまま使うことなんて有り得ないんだから .gitignoreは必要になるんじゃないのかなあ。 まあgit_root/.gitignoreにまとめて書きたいという需要もあるのか。
610 名前:デフォルトの名無しさん [2014/03/24(月) 01:34:37.43 ID:0ol5+0pg.net] >>603 開発スタイルによるけど、たいていの場合はディレクトリ構成って設計段階から決まるから、先に作っておきたい。 仕方なく.gitkeepとか.deletemeとか使っているが、コレジャナイ感がある。 ちなみに、.gitignoreは意味が違うような気がしていて使ってないです。
611 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 01:56:40.05 ID:k2bvJYlJ.net] >>600 gitでファイルのパスが管理されてるのに、パスの情報しか持たないディレクトリを管理したいだなんて、 ファイルシステムへの理解不足かプロジェクトのマヌケさを疑うね。 コードがなにかファイルをそのディレクトリに放り込む手筈になってるのなら ディレクトリの作成も一緒にやってしまえばいい。
612 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 02:07:55.26 ID:k2bvJYlJ.net] >>604 そういうのはせめてREADME入れといてよ…
613 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 06:19:10.58 ID:cXsOtx6k.net] svnから取得したプロジェクトをgitに登録しようとしてるんだけど trunkフォルダにあるデータをそのままルートにコピーして、trunkフォルダ削除しちゃった trunk-[フォルダいっぱい] branches-[フォルダいっぱい] tags-[フォルダいっぱい] これを↓ [フォルダいっぱい] branches-[フォルダいっぱい] tags-[フォルダいっぱい] こんな感じ こうするとgit-svnで引っ張ってきた過去の履歴と比較できなくなるって言われたんだけど 今から治す方法ない?
614 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 07:39:05.71 ID:coYvviPW.net] 最初っからtrunk込みのパスをgit-svnに渡しとけ 折角svnはサブディレクトリ単位でもリポジトリ扱いできるんだから
615 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 07:40:05.59 ID:coYvviPW.net] 或いはgit svn -sか。
616 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 09:59:32.00 ID:l/qxp3d1.net] >>606 この文脈でREADMEって、何を書く想定なんだ?
617 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 12:26:30.45 ID:k2bvJYlJ.net] >>610 なんでこの空ディレクトリがコミットされているのかと、どういうモノをここにコミットしていく予定なのか。 ディレクトリがイントロスペクティブなら、後で気が変わってツリーの見直しが発生してもドキュメントと作業ディレクトリの二重管理を防げる。
618 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 12:33:59.02 ID:rzCer1bD.net] >>586 そんな使えないツール作ってないで、コメントつけろよ。
619 名前:デフォルトの名無しさん [2014/03/24(月) 14:56:36.98 ID:x252QyU1.net] Q1とQ2を解説お願いします git init 空のtest.txtを作成 git add . git commit -m "Initial commit" test.txtを編集 git add. git commit -m "second commit" git checkout HEAD@{1} で最初の履歴に戻る test.txtを編集 git add. git commit -m "third commit" git statusを実行するとHEAD detached from "ハッシュ"ってメッセージが表示される(Q1) そこでgit branch temp & git branch temp & git branch masterってやって git branch -d temp をやると error: The branch 'temp' is not fully merged. If you are sure you want to delete it, run 'git branch -D temp'. ってメッセージがでます 何故tempに切り替えたときに編集してないのにtempをmasterにmergeさせないといけないのですか?(Q2)
620 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 16:26:56.74 ID:7xUxQev3.net] >>613 Q1 git checkout HEAD@{1} は最初の履歴に戻るコマンドじゃなくて、別のブランチに移動するコマンド ただし HEAD@{1} がブランチじゃないので detached HEAD という特殊な状態になる これを実行したときに You are in 'detached HEAD' というメッセージが出たはず 最初の履歴にもどりたかったら、git reset --hard HEAD@{1}とすべきだった 今から戻るにはこうする git co master; git reset --hard 最初のコミットのハッシュ Q2 そのメッセージは、ブランチを消すとまだ他のブランチにマージされていないコミットが消えてしまうよ、という警告 -dじゃなくて-Dを使えばその警告を無視してブランチを消せる
621 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 18:45:49.12 ID:15T1FlGn.net] >>613 HEAD(、temp) ↓ ┌C3 ↓ C1←C2 ↑ master Q1 Q1でのC3のようにブランチなどから参照されていないコミットをdetachedという この状態でHEADをC2などに動かすと どこからも参照されていないC3は失われてしまう(もちろんreflogはできる)ので変更を残したいならブランチなどを作ってね、ということ Q2 ここではtempはC3を指すように作られる tempを作った直後は編集していないけど、上図の通りC3がマージされていない
622 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 00:33:52.38 ID:56htplUz.net] 小保方さんも論文のバージョン管理はGitでやれば良かったのに
623 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 01:53:12.00 ID:T9JHOn1b.net] gitでもコピペは防げません
624 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 02:16:02.05 ID:6ItjGCiG.net] >>614-615 詳しい解説のおかげで大変わかりやすいです。 立て続けにすみませんマージ後の対応についてQ3とQ4もお願いします。 >>613 の状態でgit logすると 9b1062c: 2014-03-25 00:36:20 +0900: Initial commit c54e4f6: 2014-03-25 00:39:01 +0900: third commit となります。このあとgit merge tempをしました。 コンフリクトが出るので解消させます。 git add .; git commit -m "four commit"を実行すると"[master 90cd423] four commit"って1行のみのメッセージがでました。(Q3) いつもなら下記の2行でメッセージが表示されるはずなのにこのコミットのときは1行のみでした [master 90cd423] four commit 1 file changed, 1 insertion(+), 1 deletion(-) そしてgit logをすると cb0ee7d: 2014-03-25 00:42:25 +0900: Initial commit f082da3: 2014-03-25 00:42:38 +0900: second commit ae0009b: 2014-03-25 00:43:09 +0900: third commit 90cd423: 2014-03-25 00:45:01 +0900: four commit ってログが4つあります。3つじゃありません。3つにしたいのですae0009bのコミットはいりません。何故4つになったのか教えてください(Q4)
625 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 03:33:44.11 ID:FBko2gtk.net] コミット番号についての単純で重要な事を一つ言っておくよ。 コミットの内容には番号が付いているが、このコミットの内容には歴史の内容も含まれている。 たとえばコミット番号がae0009bであれば、その過去のコミットの番号は必ずに同じになる。 つまりだ、rebase等で過去を変えると変更した所より後はすべて書き換わるということ。 また特定のブランチをマージしたり、コミットをチェリーピックしたりすると (処理結果の過去が変わる場合は)コミット番号はマージ、チェリーピック先では変わるということ。 そして、もうひとつおまけ。 コミットには、通常のコミットとマージコミットに分かれている。(git logをよく見てみよう) あるブランチ、そこには複数のコミットが含まれている。 それをマージすると、複数のコミットに加えてマージコミットが1つ追加される。 マージを取り消したいときはrevertするわけだけど、このマージコミットを 一つrevertするだけで、複数のコミットがまとめて取り消される。便利。 ただし、マージした時に必ずマージコミットができるかといったら、そうではなく (処理結果の過去が同じになるので)マージコミット作らなくていいんじゃね? と gitが判断したらマージコミットを作らない。マージコミットを作らない=fast forward(早送り) これはオプションで制御できる。
626 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 03:37:01.81 ID:FBko2gtk.net] AブランチからBブランチへのマージ・・・Bブランチに含まれていないAブランチのコミットを全てマージする チェリーピック・・・特定のコミットのみ加える。
627 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 03:48:52.54 ID:FBko2gtk.net] detachedはなんとなく異常な状態に思ってしまうかもしれないけれど、実は便利な道具なのです。 detachedの使い方 その1 「ちょっと俺のコードレビューしてくんない?」 「わかったよ、手元にcheckoutして動かしてみる」 「ブランチ名指定でcheckoutすると、ローカルリポジトリにブランチできちゃって消すのが面倒だからコミット番号でcheckoutするぜ!」 detachedの使い方 その2 「いらねーブランチがたくさんローカルリポジトリ残ってるな」 「git branch -D で消しまくっちゃえ!」 「しまった!必要なのまで消しちゃった」 「git reflogみたら、消したりcheckoutしたときのコミット番号が全て記録されている」 「よし、このコミット番号だな。checkoutだ!(detached状態)そしてブランチ名をつけるぞ!」 git reflogとコミット番号には歴史も全て含まれてる。ってことは最初に教えておくべきことだと思う。 間違って消しても、間違ってrebaseしてコミット番号が変わっても、 間違う前のコミット番号さえわかれば(reflogでわかる)復活できるんだから。 reglogはある程度大きくなって30日だっけ?立てば自動的に消えるけど 消えなければコミット番号からコミット(とその歴史)は完全な状態で復活できる。
628 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 22:19:56.67 ID:snK4TAek.net] >>621 その1はわかるがその2は git branch ブランチ名 コミット番号 でいきなり名前付けちゃうなあ。checkout -bでもいいし