git スレッド
..
481:login:Penguin
09/09/21 13:23:23 GwGS71uz
gitメンテナであるHamano氏自身による「入門Git」発売記念age
URLリンク(www.shuwasystem.co.jp)
# 翻訳本の「入門git」じゃないぞ
Amazon はすでに売り切れ状態みたいだけどね。
482:login:Penguin
09/09/21 13:34:20 zscoFCMs
gitは使われ始めたばかりだから、一番最初にgitの解説書書いたら、売れそうだな
483:login:Penguin
09/09/21 13:57:00 ZVNst0Rd
>>482
???
484:login:Penguin
09/09/21 14:34:05 vL4ajUNH
>>481
ぎゃー
つい最近翻訳本のほう買っちまったぜ…
Hamanoさんが書くべきだろとは思ってたけど、書いてたのか〜
目次だけ見たけどすごいしっかりしてそうだ。読むのが楽しみ!
485:login:Penguin
09/09/21 14:36:17 Sxx9inOy
まあ、翻訳本もPragProgブランドだし、損にはならないんじゃね?
486:login:Penguin
09/09/21 14:57:30 GwGS71uz
>>484
ここを読んでもっとwktkするがよい
URLリンク(gitster.livejournal.com)
487:login:Penguin
09/09/21 21:31:18 vL4ajUNH
>>486
ありがとう、livejournalか、そこ知らなかったよ。
wktkが止まらないので、明日本屋うろついてくる。Amazon売り切れ過ぎ、入荷予定遅すぎ。
488:login:Penguin
09/09/22 20:31:15 ssamdIV8
きっと、Linusの「はじめに」の最後の一文を読んで、
にんまりしてしまうに 1000カーネル
489:463
09/09/23 18:27:17 vjEE4TYp
誰か...
490:login:Penguin
09/09/23 21:43:44 jo5qX9Sx
>>463
remote 登録すると明示的に指定しなくても、そのリポジトリの全ブ
ランチを fetch してくれるのは.git/config 内でそのリモートリポ
ジトリの設定の fetch の行におまじないが書いてあるから。
別名定義したいほどの頻度で使うなら素直に remote add しろや
491:login:Penguin
09/09/23 22:37:49 O/8ntIxQ
>>490
>別名定義したいほどの頻度で使うなら素直に remote add しろや
>>463にはすまんが、俺もそう思ってた。
てか、refspecまで書かなきゃダメ、とかいろいろ試してみたんだったら、
MLで質問したほうが良いんじゃないかな。bugかもしれないし。
492:login:Penguin
09/09/24 00:06:18 h3tEtuix
>>491
んー。fetch の refspec はリモートリポジトリのどのブランチをロー
カルのどの参照名で格納するか(remote/<hoge>/master とかね)を指
定するものだから、 fetch のときに指定必須(*1)なのはしょうがな
いんじゃね?gitからしてみりゃ「どこに格納すりゃいいのよ?」っ
て話でしょ。普通はそれが面倒だから remote 登録しちゃえば?と
思うんだけどねー。
*1 何も指定しなければリモートの master がローカルの
FETCH_HEAD として格納されるはず。
「全部 fetch して remote/<URL>/* に自動的に格納されろや」とか
いう話ならMLに提案するほうがいい話だと思う。もし提案するとし
てもremote add するよりも、「デフォルトでrefspecを指定しない
場合にその挙動をとるほうがより優れている」、という論拠が必要
だと思うよ。
あと、もし pull request 受けるような状況であれば、みんなpull
用のbranch切って pull しちゃってる(or master に pull して結果
が気に入らなければ reset )だろうから、単発の fetch のrefspec
指定を楽にしたい理由があんま思いつかない。
493:login:Penguin
09/09/26 14:03:44 EEvSsK+s
最近GitHubが重いと思う
GitHubの収益源ってなんだっけ?
494:login:Penguin
09/09/26 16:19:01 1VrklZ1N
有償アカウントとか講習会とか業務への導入サポートとか。
鯖はEngineYardだな。
495:login:Penguin
09/09/28 11:57:44 tMILVOon
それだけで賄えるものなのか
496:login:Penguin
09/09/28 17:40:21 9izAOEVd
時々サーバ死んでるよね
タダで使い倒しておいてあまり文句いう筋合いもないけれど
497:login:Penguin
09/09/28 18:11:25 tMILVOon
無料でしか使う予定はないけど頑張ってほしい
498:login:Penguin
09/09/28 18:13:49 JZFsKZPh
URLリンク(fi.github.com)
そういえば、こんなのあったね。
499:login:Penguin
09/09/28 22:56:07 oz2dR2We
Gitはじめてなのですが、バイナリの履歴はすべて持っているのでしょうか?
それとも差分だけ?また、ローカルリポジトリには圧縮されたバイナリはどのように
保存されるのでしょうか?バイナリサイズが大きいプロジェクトで使用予定なのですが
ローカルリポジトリが膨れ上がるのを恐れています。
500:login:Penguin
09/09/29 21:45:20 bBdN/JgI
.git/objects の下を覗きながらcommitしていくと、git gcで
(あるいは時間が来て)packされるまではそのままのバージョンが
残ってるみたい。
mkdir foo
cd foo
git init
dd if=/dev/urandom of=BIN bs=1024k count=1
git add .
git commit -m 1
du -hs .git
echo -n A >> BIN
git add .
git commit -m 2
du -hs .git
find .git/objects -type f
git gc
du -hs .git
501:login:Penguin
09/09/29 23:05:28 RwaZJqu/
thunks! 時間がくれば pack されるのですね。
まあ、HDDスペース節約よりは速度重視な最適化というわけですね。
HDDは、いっぱい増やすしかないかぁ。
後 Windows のファイル名の日本語処理がまずいところが不満ですね。
これさえ解決すれば svn から乗り換えるんだけどなぁ。来年ぐらいかなぁ。
502:login:Penguin
09/10/02 20:43:35 N5w8ligl
>>494
あれなんかEngine Yardじゃなくなってるぽい。
こないだのメンテで移動したのかな。
503:login:Penguin
09/10/05 13:23:59 wUrA1+B2
なんか新しい本買った人いる?
504:login:Penguin
09/10/05 13:27:13 Llm7fIHP
"pro git" pdf
でぐぐれば面白いのが見つかるぞ
505:login:Penguin
09/10/07 07:24:37 GcizbF6G
git clone git://git.example.org/cgit.cgi/xyzzz/tree/?h=newton
git で下の階層に置かれている newton を
持ってくるにはどうしたら良いのでしょうか?
xyzzz を持ってくるのはできるのですが…
506:login:Penguin
09/10/07 07:53:19 GcizbF6G
自己解決 >>329-334 辺り感謝
git clone -n git://git.example.org/xyzzz
cd xyzzz
ls
git checkout -b newton
git fetch
で取りあえず上手く取ってこれるみたいでした
なんでも一行でやろうとするなじぶん('A
507:login:Penguin
09/10/07 20:16:41 9QifAEec
>>506
git cloneで既にfetchしているんでcheckoutの後にfetchしなくても
508:login:Penguin
09/10/09 23:56:02 zcQ4FwK0
>>501
>後 Windows のファイル名の日本語処理がまずいところが不満ですね。
$ git config core.quotepath true
でもだめでしょうか。
509:login:Penguin
09/10/10 10:37:00 qzf82yAL
> git config core.quotepath true
cygwin 版の話ですかね。基本エンジニア以外も触るのでTortoiseGit の(MSYS版)でコミット
した後の亀が飛んで行ったところのメッセージが必ず文字化けしているのがちょっと嫌ですね。
また現在 svn を利用していてこちらを git-svn で使用したいのですがこれも MSYS版には
入っていないようなのでそこもネックになっています。
510:login:Penguin
09/10/10 11:19:34 KZzP/TMn
>>509
msysgit(PortableGit-1.6.3.2-preview20090607) + TortoiseGit 1.0.0.2にて
git-svn をGUI経由で使えてますよ
git-svnにはハマリどころがありました。
svnリポジトリとシンクロしているgit側ブランチでgitのマージコミットをつくったりすると
git svn dcommit時にエラーになるので要注意ですね
ここらへんに情報があります
URLリンク(learn.github.com)
Rules and Guidelines
511:login:Penguin
09/10/10 19:49:42 mLaG7GzK
TortoiseGit に同梱されている
512:login:Penguin
09/10/10 19:51:42 mLaG7GzK
途中での書き込み、すまん。
TortoiseGit に同梱されている igit.exe のソース
どこにあるか、知っている人いたら教えてもらえないだろうか?
どうも TortoiseGit のリポジトリの中にはなさそうなんだけれども。
513:login:Penguin
09/10/10 19:57:24 6WX0ZYRA
Linux板でWindowsのソフトの話すんなよ
514:login:Penguin
09/10/10 20:14:31 zeXst2F3
Windows版のgitはまだまだだよって、開発者自らいってて、どんどんフィードバックしてくれって言ってるんだから
Windowsでgit使いたいんなら、フィードバックしないと一向に改善されないと思うよ
git開発者は、Windows特有の問題とか疎いだろうし
515:512
09/10/10 20:47:16 mLaG7GzK
重ね重ねすまん。
スレタイのみで検索して書き込んでしまった。
分散型バージョン管理システムのフロントエンドを
git の Windows 版フロントエンド作りたいなぁと思って
TortoiseGit のソース見てたんだが、
516:login:Penguin
09/10/10 20:48:31 mLaG7GzK
また、途中で書き込んでしまった。
ごめん、反省した。途中だけど、もうやめる。
517:login:Penguin
09/10/10 21:07:24 5i7bVBSp
>>513
次スレはム板にする?
518:login:Penguin
09/10/10 21:26:06 e4Crdqki
ここ、隔離スレかと思ってたんだが
519:login:Penguin
09/10/11 00:39:32 9BCQsKnT
Windows上でgit使ってる奴なんかいなんだから、Windows特有の問題なんかしらないってことでしょ
520:login:Penguin
09/10/11 02:33:37 FePGrTfs
>>512 恥ずかしいやつ過ぎるwwwwwwwwww
521:login:Penguin
09/10/11 02:44:24 MLGHRsF4
>>515,517
プログラム板にバージョン管理システムのスレあるけど、、、
スレリンク(tech板)
板違いにはならないだろうけど、、、コアな話題はここでも良いんじゃないかなぁ
>>519
あっちのスレ見てると、使ってる人居るみたいだよ。
日本語ファイル名で苦労するようだけど、UTF-8 Cygwinではちゃんと使えてるらしい。
522:login:Penguin
09/10/11 02:50:26 9BCQsKnT
そりゃ、あっちのスレではいるだろうよ(あっちがどこなのか知らんけど)
ここはLinux板
523:login:Penguin
09/10/11 03:22:42 MLGHRsF4
>Windows上でgit使ってる奴なんかいなんだから
ってお前が言うから、教えてやったんだぜ。
524:login:Penguin
09/10/11 03:40:02 9BCQsKnT
この板だろうが、あほ?
525:login:Penguin
09/10/11 03:41:49 FePGrTfs
安価もつけてない2ちゃんのレスを自分だけのメッセージって思うようになったら
終わりだぜ。しばらくmixijかtwitterでもやってたほうがいい。
526:login:Penguin
09/10/11 12:14:56 bj1WkRKb
は? LinuxもWindowsも両方使ってる奴だって居るだろうが、カス?
527:login:Penguin
09/10/11 14:55:39 tk3kki/A
で、ここは本スレなのか?
528:login:Penguin
09/10/11 15:00:46 h+3Jm6y9
一応。
529:login:Penguin
09/10/11 15:03:12 h+3Jm6y9
まあ今はム板にある Subversion スレも、この Linux 板の卒業生だしな。
530:login:Penguin
09/10/11 20:01:14 EMO8XszP
[ANNOUNCE] GIT 1.6.5
URLリンク(article.gmane.org)
531:login:Penguin
09/10/11 23:51:09 5ur/s6Zl
Git-1.6.1-preview20081227.exe から Git-1.6.4-preview20090730.exe に
乗り換えたら確かに git-svn を TortoiseGit から使えました。Windows も実用段階
に入ってきましたね。
532:login:Penguin
09/10/12 12:09:24 cIqY6mPO
>>531
>Windows も実用段階に入ってきましたね。
きっとビルゲイツも喜ぶよ、それ言ってやったら。
533:login:Penguin
09/10/15 23:02:27 eyJUfiVx
【恐怖の】呆れるほど危険な民主党の正体【民主党】
http://www.yo●utube.c●om/watch?v=●MUv12Ae7ojE
小沢一郎 〜 闇の系譜 :秘書逮捕の真相/北朝鮮との黒い関係 高画質
http://www.yo●utube.com/w●atch?v=gdKVt●_vKCHc
2/3【イリハム・マハムティ】東トルキスタンの歴史と中共の弾圧[H21/7/8]
http://www.you●tube.com/watch?v=6eUN●hjdBLXg
漫画で学ぶチベット問題
http://www.ni●covideo.jp/w●atch/sm275●2213
日米規制改革および競争政策イニシアティブに基づく日本国政府への米国政府要望書
URLリンク(japan.u)●sembassy.●gov/j/p/tpj-j2●0041020●-50.html#mineika-s
●の部分は外してブラウザのURLに入れること
534:login:Penguin
09/10/21 13:42:46 c6oQncZ5
もしかして git って名前通り、日付指定で checkout できないの?
やっぱ馬鹿。
535:login:Penguin
09/10/21 21:06:25 l0alaDlx
>534
なぜできないと思ったのか詳しく。
536:login:Penguin
09/10/21 21:07:29 aa6m0+r8
>>534
おみゃーがgitなんでは
537:hNhmZvkzyoOKS
09/10/23 00:55:36 AJC23NiC
But while these inter- ventions slowed the adjustments of the market, these adjustments were still in ultimate control of the situation. ,
538:VfpxZeUExLhxZWcT
09/10/23 22:20:46 iDEpw1qy
This initial post on Every Kitchen Table frames the need for new food systems connecting more consumers with sustainably grown, processed and transported food. ,
539:login:Penguin
09/10/28 22:39:14 5N68sDZB
最後にコミットした時のログメッセージの再編集は git commit --amend でできるのですが、
何世代も過去のコミットのログメッセージの再編集はどうやればできるのでしょうか。
それともそんなことはできないんでしょうか。
540:login:Penguin
09/10/28 22:53:34 oPxfRTK5
git rebase -i HEAD\~5
みたくやって pick を edit にして、--amend の時に変更かな
541:login:Penguin
09/10/28 22:53:38 ZAqclN9p
>>539
色々やり方あると思うが、例えば git rebase -i ... で編集したい commit を "edit" に設定
して、そこで git commit --amend とか
542:login:Penguin
09/10/28 22:54:51 Bv3SPJWB
URLリンク(progit.org)
543: ◆Mizar2to32
09/10/29 20:21:01 25uBABNp
git gui は日本語UIにできるのに、 gitk はできないのも妙に思い、日本語訳を試みてみました。
妙な日本語訳の改善案などがあればお知らせください。
URLリンク(lab.mzr.jp)
544:login:Penguin
09/11/02 10:53:06 dHnBQYx7
>>539
脳内で考えるような「単純な差し替え」は厳密にはできない
「以前と同じ修正群と、以前と違うコミットメッセージ」を持ったコミットの列を作って繋げなおす、という手順になる
動作的には同じだが、オブジェクトとしては別だし、ハッシュ値も違う
push した後だと以前のコミットと同一視させる手段がなくてたいそう悲惨
545:login:Penguin
09/11/02 22:10:38 tm2FQ3Ct
もちろんそれは正しいけど、commit --amendを持ち出してる
のを見ると、そこらへんは分かってるように見える。
546:login:Penguin
09/11/12 18:58:57 g557GIl1
Gitの実装はいつCからGoに切り替わりますか?
スレリンク(tech板:90-番)
547:login:Penguin
09/11/12 21:02:35 ExEkAwfK
>>546
どっちだ?
URLリンク(golang.org)
URLリンク(books.google.com)
548:login:Penguin
09/11/18 09:19:34 F9Vk+fo2
git pull --rebaseしたのですが、
Applying: コミットメッセージ
usage: git update-ref [options] -d <refname> [<oldval>]
or: git update-ref [options] <refname> <newval> [<oldval>]
-m <reason> reason of the update
-d deletes the reference
--no-deref update <refname> not the one it points to
と出てしまいます。
git rebase --continueしても同じメッセージが出ます。
どうすればいいんでしょうか?
549:548
09/11/18 15:11:19 F9Vk+fo2
git fetchして、git rebase masterすると同じメッセージが出たのですが、
git rebase -i masterすると問題なくリベースできました。
解決はできたのですが、なぜgit rebase masterでリベースできないのに
インタラクティブモードではできるのか、わけがわからない・・・
550:login:Penguin
09/11/18 18:47:37 d8p7qpgP
>>548
rebaseの内部でコケてるみたいだけど、遭遇したことないなあ。
バージョンは? もしかしてCygwinだったり?
551:login:Penguin
09/11/18 22:32:08 vQLD30Z2
>>548
rebase -i masterでリベースできるってことは
ふだん使うブランチはmasterではなくて、
masterっていうローカルブランチがたとえば
ref: origin/master
みたいになってたりするの?
552:login:Penguin
09/11/22 09:56:48 AGTujtCR
すみません、煮詰まってしまったので詳しいかた教えていただけないでしょうか
bareじゃない二つのリポジトリAとBがあります。
(BはAからのクローンです)
Bで変更を行ってAにPushしたあと、Aでgit statusすると
A上ではBで行った変更の真逆の修正が行われてステージされていることになっています。
これはどうしてでしょうか?
純粋に期待している動作(A上でもBで行った修正がコミット済みになっていて何もステージされていない状態)にするにはどうしたらよいのでしょう?
553:login:Penguin
09/11/22 11:17:08 VQCPH5PD
>552
ステージされてるなら git reset なり git checkout . なりすればいいんじゃないの?
554:login:Penguin
09/11/22 12:57:08 KnKStRKz
>>552
bareじゃないとこにpushじゃしょうがないんじゃないかな。
Aでpullしたらいいんじゃない?
555:login:Penguin
09/11/22 18:25:36 AGTujtCR
回答いただきありがとうございます。
>>553
A上で、真逆の修正が行われているものを
すべてgit checkout -- hogehoge.txt
して解除してみたところ結果としてはうまくいきました
>>554
AからBのリポジトリをremoteに登録して、pullしようとすると
Because this is not the default configured remotefor your current
branch,you must specify a branch on the command line.
とおこられます。
デフォルトのリモート先ではないので
先に設定を変えましょうといった感じでしょうか
現状ですと、正しくPushするためにはbareじゃないリポジトリを
用意する必要があると考えた方がいいのでしょうか?
checkoutする方法や都度リモート先を変更するのは手順が煩雑になるため・・
556:552,555
09/11/22 18:28:42 AGTujtCR
間違えました。
誤:現状ですと、正しくPushするためにはbareじゃないリポジトリを
正:現状ですと、正しくPushするためにはbareなリポジトリを
557:552,555
09/11/22 19:14:14 AGTujtCR
たびたびすみません。自己解決しました。
BからAにPushしたあと、Aでgit reset --hard
すればいいだけでした。
返信をくださった方ありがとうございました。
558:login:Penguin
09/11/28 04:29:09 mXZ4Zywn
バイナリファイルがコンフリクトした際にどのように対処してますでしょうか
マージすることが不可能な場合、どちらかのファイルを選択することになりますが
自分の作業を優先してコンフリクト解消する場合には
git add コンフリクトしてるファイル
git commit
これでコンフリクト解消できますが、相手のファイルを優先したい場合に
git reset コンフリクトしてるファイル
git commit
をすると両者の作業がなかったことになってしまいます。
相手の作業を優先する場合にはどのようなコマンドを打てばよいのでしょうか
559:login:Penguin
09/11/28 20:11:39 xkqQAqqu
git checkout --ours --theirs
560:login:Penguin
09/12/03 20:30:50 lBf6Jtla
URLリンク(www.kernel.org)
561:login:Penguin
09/12/04 13:36:14 F6K5uhGt
-----B
/ \
-------A
\
---C
という感じで開発を進めていて、Bの変更はマスターであるAに頻繁にマージしている状態です。
Cで $ git pull A でマージして $ git push A とすると
To prevent you from losing history, non-fast-forward updates were rejected.
Merge the remote changes before pushing again.
といわれてしまう。
なんでnon-fast-forwardな状況なんだかよくわからないです。どうやったら直せるんでしょうか?
562:login:Penguin
09/12/04 22:38:29 8MryHyNF
>>561
pushとpullって名前からしてやることが近い気がしてしまうけど、
pull:remoteをfetchして現在のブランチにmerge(fetchしてmergeするのと同じことが起こる)
push:remoteブランチをローカルのブランチで上書き
なので、pullはfast-forwardじゃなくてもマージコミット作ってくれるけど、
pushはマージはしないのでfast-forwardじゃない時は怒られる。forceオプションで強制pushすると
ヘタするとremoteブランチのコミットが失われる。
fast-forwardの意味が分からない場合は、チュートリアル見ると良いと思うよ。
Git入門 - トップページ
URLリンク(www8.atwiki.jp)
563:login:Penguin
09/12/05 10:43:44 Pt8GWP/i
>>562
「なんでnon-fast-forwardな状況」であるかの説明になっていないけど
564:login:Penguin
09/12/05 13:58:28 dGM7vi/8
>>563
それが分からなければチュートリアル読んだほうが良いと思ったから。
565:login:Penguin
09/12/06 00:13:42 O+n3DTMA
>>564
質問は「なんでnon-fast-forwardな状況」なのかであって
「(non-)fast-forwardとは何か」ではないので、だったら
>>561の説明自体無駄で最初からチュートリアルのURLだけ
案内するのと変わんねーじゃん
566:login:Penguin
09/12/06 03:51:03 3OwwH+xV
>>565
ほんとだ、俺寝ボケてたみたいだわ。ごめん。
>>561
Bの進化分は既にAに反映されているが、Cはそれ以前のAの状態を元に進化しているので、
non-fast-forwardということになる。
567:login:Penguin
09/12/07 12:28:13 XoL3Gt8w
Git 1.6.5.5
URLリンク(www.kernel.org)
>Manual pages can be formatted with older xmlto again.
568:561
09/12/07 13:26:24 BLewJ948
若干荒れ気味になってすみません。
>566
>Bの進化分は既にAに反映されているが、Cはそれ以前のAの状態を元に進化しているので、
でその通りでした。Cで
$ git pull B
コンフリクト等解決して
$ git push A
でOKでした。
569:561
09/12/07 13:34:18 BLewJ948
で、思ったんですが、non-fast-forwardな原因を追いかけるのはどうやるのが一番わかりやすいですかね?
私の今回の場合、過去にどう作業していたか思い出した、という原始的な方法だったんだけど、便利なコマンドとかありますか?
$ git log --graph
とか見ても、ごっちゃで気づけなかったです。
570:login:Penguin
09/12/07 14:54:49 XoL3Gt8w
>>569
git statusした時に
# Your branch and 'origin/master' have diverged,
# and have 1 and 1 different commit(s) each, respectively.
という感じで出るので、これで分かる。ただしgitのバージョンが古いとこれ出ない。
git show-branchも調べてみたらいいかも。あとgitkはそれなりに見やすいと思うな。
>>561
>Merge the remote changes before pushing again.
これやってみればいいのに。mergeだけだとマージコミットだらけになっちゃうから、
rebase出来る時はrebaseした方がいいけどね。git pull --rebaseとか。
571:login:Penguin
09/12/08 01:34:52 JrbFTpX+
>>569
gitk --all と打つとグラフィカルにグラフ表示してくれるので
fast-forwardかどうかすぐわかる
572:561
09/12/10 14:41:50 ZxyM+JCY
>570,571
リモートのコンソールにログインして使うことが多いので、gitkは使えないんです。
X飛ばすのも面倒な環境だし。
git show-branch の見かたを覚えることにしますわ。
573:login:Penguin
09/12/11 09:24:45 n6TyF9bQ
git clone すればいいんじゃね?
574:login:Penguin
09/12/12 01:53:51 1uRf1xZK
入門Git買ったんだが、これ分かりやすいな
さすがに濱野さんが書いてるだけあるか。
チームで使うSCMをSubversionからGitに変えたいんだが
メンバー全員に正しいGitの使い方を教育するのは、骨が折れそうだな・・・
575:login:Penguin
09/12/12 02:23:58 7I0ALriM
>>574
入門Git、神本なのは確かだけど、俺としては日本語ちょっとクドい気がしたな。
アメリカ在住らしいから、脳が英語になってるんじゃなかろうか。
Gitって、viとかみたいに取っ付きにくいけど慣れてしまうと手放せなくなる
典型的な麻薬ツールだと思う。そのぶん障壁が高くて文句言われがちなんだけど。
だから「メンバー全員に正しいGitの使い方を教育」するのは、難しいだろうけど
そのぶん感謝もされるし、また始めての人にどう教えたら本質を理解してくれるのか
というのは、とても有用な情報だと思う。
576:login:Penguin
09/12/12 14:40:22 0trcq50X
>>574
良い本だとは思うけど、わかりやすくはないと思う。
まわりを教育するには初心者向けのわかりやすい本が欲しい。
577:login:Penguin
09/12/12 15:31:09 1uRf1xZK
>>575,576
日本語で読めるGitの入門書って濱野本、でびあんぐる本、ProGitくらいしかないしなぁ
でびあんぐるのは知らないけどProGit、濱野本の順で読ませるのが分かりやすいんじゃないかな
578:login:Penguin
09/12/12 15:35:54 1uRf1xZK
>>575
Gitが難しいのは、思想や観念を理解するのが難しいわけじゃなくて
コマンド/オプションが多すぎる、同じコマンドで2種類以上の役割を持たせてる
あたりが敷居を高くしてる気がする
579:login:Penguin
09/12/12 18:45:28 7I0ALriM
>>578
いや、コマンドの数が多いのは確かだけど、普段使うものは数えるほどしか無いよ。
それに全コマンド一覧なんて初心者に見せるか? 下位レベルコマンドは知る必要ないし。
もっとも障壁が高いのはGitの本質を知る事だと思う。特にsvnをやってた人は
「Gitで何が出来るのか」ではなく「svnでやっていたことをGitでやろう」とするので
自分がやっていることがほんとうは何を意味するのかよく分からないまま使うことになり、
「使いづれー」ってなる気がする。
頭を切り替えてチュートリアルを実践するだけで、けっこう分かると思うんだけどな。
>>577
最近初心者向けにGitのことブログで書いてる人も多いね。俺は純正チュートリアルでも
けっこういけると思うんだけどね。最初は会社の同僚からGit教えてもらったんだけど、
これは麻薬ツールの典型なんだが、会得してしまった人は会得してない人に教えるのが
上手くできないんだよね。viとかemacsとか、そう簡単に教えられるものじゃないみたいに。
だから結局は全て自分でチュートリアルやって覚えたけど、最初はどうしてもsvnとかに
なぞらえてしまって、イライラしたな。
580:login:Penguin
09/12/12 19:41:26 91i8JXzY
>>578
resetはreset(巻き戻し)とunstage(indexからの削除)に分けるべきだよな
他には何があるっけ?
581:login:Penguin
09/12/13 04:59:08 XTGOd8wr
>>579
Webなんかでも、svnのこのコマンドに相当するgitのコマンドは何?って質問が
結構あるしやっぱり本質は理解されてないかんじですね
indexも存在意義がわかれば非常に便利なんだけど。
Winの話題で申し訳ないけれど、TortoiseGitなんかもindexの存在を隠して
ワークツリーから直接コミットするような作りになってるし
>これは麻薬ツールの典型なんだが、会得してしまった人は会得してない人に教えるのが
たしかにそうですねw
>>580
よく使うコマンドだと
checkout ブランチ名(ブランチ切り替え)
checkout -- ファイル名(ファイル取り出し)
reset HEAD^(コミット取り消し)
reset ファイル名(ファイルアンステージ)
reset --hard(ワークツリーの修正取り消し)
582:login:Penguin
09/12/13 12:05:06 eLNfVime
言葉で伝えるのは難しくて
チュートリアルをいじって自分の頭の中に動作イメージを作るか
よくできた紙芝居を見せてもらうかしないと
「わかった」とはならなよね。
583:login:Penguin
09/12/13 21:39:57 MfgUdwK5
>>580-581
まあでも「alias書けば?」で終わるレベルじゃん
584:login:Penguin
09/12/13 22:56:38 hWQ7uDdJ
だよね
585:login:Penguin
09/12/13 23:48:27 yRHWt0hz
打つのがめんどいって話じゃなくて分かりづらいって話では?
586:login:Penguin
09/12/14 00:06:09 iC7LD6wI
aliasには「分かりやすい名前をつける」という機能もあるんだけど
587:login:Penguin
09/12/14 00:12:42 1YNrTAVE
一度やりたいことをしてくれるコマンドを知れば別名も
付けられるんだけどねー。
分かるまでがたいへん。
588:login:Penguin
09/12/14 00:21:12 MiMO4S1u
そのaliasを設定するためにはコマンドの使い方知ってなければ
ならないが、話の論点わかってますか?
589:login:Penguin
09/12/14 00:50:41 uqSDssQD
aliasでこんなんやっちゃう人もいるみたい
URLリンク(github.com)
590:login:Penguin
09/12/14 20:21:03 9KU3MLe4
俺はrefspecの表し方がよく分からない。
文脈で書き方が
$ git push repository branch
だったり
$ git merge repository/branch
だったりするところとか。理解しきれてないからなんだろうけど。
591:login:Penguin
09/12/14 22:02:14 iC7LD6wI
>>588
そしてある程度分かってきたら、よほど長くない限りalias使わなく
てもよくなるんだけど、誰かが作ってくれたalias集をwebから
持ってきて、... なんて方法も今はあるからね。
592:login:Penguin
09/12/15 00:21:21 uU/CeyJd
リモートブランチの扱いが俺も最初はとまどったけど
省略形じゃなくてフルで記述するコマンド体系を覚えてから
省略形を使うようにしたら、すんなり理解できた
$ git push repository branch
は
実は
$ git push repository branch:branch
の省略形で、手元のbranchからrepositoryのbranchへ対してpushしなさいという意味
一方mergeのorigin/masterなどは、具体的なコミットを指しているので
リポジトリ名/ブランチ名となる
593:login:Penguin
09/12/15 04:59:39 pR/bRTj/
>>592
もう忘れてたけど確かに俺もそうだわ。
pushはフル書式で理解するまではかなり自信なさげに使ってた。
594:login:Penguin
09/12/24 15:20:36 v3JWri2J
1.6.6 released
595:login:Penguin
09/12/25 21:55:28 lY3loZi6
stashとresetに頼りまくってる自分の使い方は邪道なんじゃないかと
気になるんだが、indexとかうまく使えば減るだろうか
596:login:Penguin
09/12/26 00:20:32 EUZh5OCV
>>595
運用上不都合がなければいいんじゃない?
597:login:Penguin
09/12/26 06:40:51 SkSud091
>>595
reset、rebase、resetに頼りまくれるようになってはじめて、一人前のGit使いだと思う。
commitとmergeだけじゃ今までのVCSと変わらないじゃないか。
598:login:Penguin
09/12/26 06:42:53 SkSud091
reset、rebase、resetってなんだよorz
reset、rebase、stashのつもりだった。。。
あとrebase --onto、rerereなんか使うとさらに先にいける。
599:login:Penguin
09/12/26 10:39:25 AQehkmKr
おーでかーけでーすかー
600:login:Penguin
09/12/26 12:12:59 Z6Z05dDL
今だにpush,pull,rebaseの使い分けがわかんないんだよな。
普段git svnでやりとりしてるとrebaseだけで事足りるというだけなのか
601:login:Penguin
09/12/29 01:24:35 AAGVKxmF
そりゃgit svnではpush, pullは使いようがないというか、使ったらぶっ壊れるんじゃ。
602:login:Penguin
09/12/29 14:12:54 utuwRMGk
他にもgit svnを使っているメンバーがいた場合、
そいつとは、pushやpullができるという
603:login:Penguin
09/12/29 18:19:26 erZVRnS3
>>602
でも結局いつかgit svn rebaseするから、ID全部変わるしマージコミット入れられないしで
うぼわーマジsvnやめようぜクソがぁ!
ってなる。
604:login:Penguin
09/12/30 07:38:54 kfBW1mPl
しかしsvnに入れた分はちゃんとIDそろうのはすげーと思ったな。
605:login:Penguin
10/01/08 12:31:36 S57JTlxp
オリジナルの拡張子を持ったファイルをコミットすると、rawファイルとして認識されるみたいですが、
textファイルだとgitに教える方法はありませんでしょうか?
606:login:Penguin
10/01/09 10:57:40 3So5fkbw
>605
gitattributes で crlf と diff をセットだと思う。
607:login:Penguin
10/01/12 19:43:07 2XlpNrfT
githubみたいに、git archiveで生成するアーカイブに
コミット名を入れたいのですが、みなさんはどうやって取得していますか?
知りたいコミットがHEADとした場合、bashでは
VER=`cat ".git/\`cut -d \ -f 2 .git/HEAD\`"`
でコミット名が取得されるのですが、
Makefile内だとうまくエスケープ?されなくて困っています。
他の方法があればそちらで試してみたいと考えています。
ちなみに、Makefile内では
@VER=$(shell cut -d \ -f 2 .git/HEAD)
@VER=$(shell cat .git/$(VER))
echo $(VER)
としているのですが、変数VERが空になってしまいます。
608:login:Penguin
10/01/12 23:43:38 914bGyNn
git describe --always
609:login:Penguin
10/01/13 05:50:58 +l7m8J7G
git rev-parse HEAD
610:login:Penguin
10/01/13 09:58:54 /kr/i6EO
github は、タグからアーカイブを生成する場合、アーカイブのファイル名にタグ名を含めてほしい。
611:login:Penguin
10/01/18 10:24:04 xAKlwsjN
example.log っていうファイルがあって
このファイル自体はpushされていて、でも今後の変更分についてはpushしたくないってとき、どーするのが正解?
git rm --cached して版管理自体をやめるわけにはいかないんだけど
612:login:Penguin
10/01/18 11:48:43 9pALEWP2
ignore すれば?
613:login:Penguin
10/01/18 11:58:05 xAKlwsjN
>>612
すでに版管理されてるからmodified filesとしてあがってきちゃう
commit対象としてのみ無視したいんだけど、ignoreできるの?
614:login:Penguin
10/01/18 20:36:24 KAj8+0o6
>>611
ローカルリポジトリでバージョン管理するのを止めれないなら
ignoreできないから、簡単な方法はないでしょう。
push用のブランチを作り、手でrebaseしてそのファイルへの修正が
入らないようにしてからpushするとかしか思いつかないけど。
615:login:Penguin
10/01/18 20:43:21 2FuAr7Gb
push 用の branch とローカルでの example.log の変更を commit する branch とを作ればいいんじゃないかな。
616:login:Penguin
10/02/04 11:09:26 5W3FJugT
CVSやSVNは集中型、gitは分散型 とあるんだけど
何が集中したり分散したりしてるの?
617:login:Penguin
10/02/04 11:11:53 CYNiw1E3
リポジトリ(履歴データを持っている場所)が1つか、複数か。
618:login:Penguin
10/02/04 13:34:55 YQOQkcZC
集中型は権力も集中しがちになる(コミット権がうんたら)
619:login:Penguin
10/02/04 14:30:46 5W3FJugT
じゃあgitはオープンソースに適してるんですね。
仕事用で使いたくて、なるべく権力を集中させたいので
gitは見送ります。ありがとうございました。
620:login:Penguin
10/02/04 17:54:59 5NWhCwR0
ワークフローは運用次第ってだけの話だが。
URLリンク(progit.org)
URLリンク(github.com)
621:login:Penguin
10/02/04 19:37:14 YQOQkcZC
分散型に出来て集中型に出来ないことは無いんじゃない?
622:login:Penguin
10/02/04 19:39:44 YQOQkcZC
あれ逆か、集中型で可能なことは分散型で出来る。
623:login:Penguin
10/02/04 19:55:52 gmC/Yryo
>>619
要は、運用次第で権力集中可能
例えば、マスターリポジトリの更新権限を限定するとか(つ〜か普通そうするんじゃ…)
624:login:Penguin
10/02/04 20:47:50 JYXesGU0
>>622
オフラインでのコミットとか無理じゃね?
ローカルにリポジトリあれば別だけど自分以外ができないからあれだし
625:login:Penguin
10/02/04 21:36:49 G2p82aGi
あと、うっかり変なcommitをしてしまったとき、gitならpushしない限り大丈夫だが、
集中型だとお説教タイムになってしまう悪寒
626:login:Penguin
10/02/05 00:04:47 +YPRuxoa
>>625
巻き戻せばいいだけでは。
627:login:Penguin
10/02/05 01:55:01 CLmEj5oN
>>626
普通巻き戻しは特権がいるんじゃない。 で、特権のある人に
お説教されるとw
628:login:Penguin
10/02/06 00:46:55 44qJRz29
お説教なの? ニヤニヤされるんじゃなく?
629:login:Penguin
10/02/09 20:22:37 RAlUQWhi
せんせーきほんてきなしつもーん
ターミナルが A と B の 2個あったとして、
A で git checkout one したあと
B の Emacs でたくさん git 対象ファイルを開いて、そのまま、
A で git checkout two するとします
Emacs で開いてるバッファ内容ってやっぱり one のままだよね?
バッファを編集して保存したら one のファイル内容が two のファイルに上書きされて「危険」だよね?
A でブランチを切り替えるたびに Emacs のバッファは全部閉じて再度開きなおさないといけないよね理屈上
630:login:Penguin
10/02/09 20:36:57 b7GskCpL
emacs使いじゃないから知らないが、バッファ読み込み後にファイルが更新されてるのを
警告もなしにそのまま上書きしちゃうのか?
631:login:Penguin
10/02/09 20:39:16 acViODVs
ニヤニヤ
632:login:Penguin
10/02/09 20:39:37 nKVKxkV8
ちゃんと警告してくれますよ。
633:login:Penguin
10/02/09 20:47:12 9V49chdu
screen と emacsclient使え。
634:login:Penguin
10/02/10 09:43:04 QkCzSUH3
Emacsの revert-buffer を使えばバッファを再読み込みしてくれるけど……
635:login:Penguin
10/02/10 10:00:40 0TBtUf8g
>>629
危険ていうか、それはgitじゃなくても他の端末から同じファイルを編集したら同じことになるでしょ。
俺はvimだけど、ブランチ切り替えもそうだけど、git stash -> git svn dcommit -> git stash pop
ってやった後に保存しようして、警告が出るな。
このパターンだと十中八九ファイルの内容は変わってないんだけど、念のため確認するようにしてる。
636:login:Penguin
10/02/10 15:21:40 M9UhD/wS
git-mode上でブランチ切り替えたら再読み込みしてくれたりしないかな
ようはEmacsがブランチ変更を検知しないことが問題なんだよね
上書き警告だって本質的な対策じゃない
ブランチが変更されたんだから、編集したいのはそのブランチのファイルのはず
637:login:Penguin
10/02/10 15:26:10 3rYFILyb
Emacsの普通の設定ならタイムスタンプが変わってたらrevertするか聞いてくるだろ
638:login:Penguin
10/02/10 15:31:20 M9UhD/wS
>>637
それがめんどくへえという話なのでは…
編集中のバッファでなければこっそり開きなおしてくれてるくらいのサービス精神がないと
不況下の日本ではEmacsは生き残れないぞたぶん
639:login:Penguin
10/02/10 15:33:25 uKVeMcIn
>>638
そうしたいならそうすればいいじゃん
640:login:Penguin
10/02/10 15:43:03 9JULZJQU
git はメンテしてる Junio Hamano 氏がとんでもないナンパ野郎だと知って以来、
極力避けるようにしてる。濱野氏がメンテから降りたらもっと使ってもいいかな。
641:login:Penguin
10/02/10 16:33:53 wST9AMIH
ふーん
642:login:Penguin
10/02/11 11:44:58 yw+dRYs8
>>640
どのへんがナンパ野郎なのか教えて
643:login:Penguin
10/02/11 12:45:14 XV6xszzu
濱野氏は、美人研究者のブログで、その人が git 好きなのをネタにして、
「今度 git の講演に日本に行くから、その時に二人でデートしようぜ」
と本気でナンパしていたと聞いている。
644:login:Penguin
10/02/11 15:02:11 nZMD/n4Y
べつにgitをユーザが増えようと減ろうとJunioのナンパに貢献する
ことはないと思うけど、それ以前に共通の趣味をネタに口説くこと
がどうまずいのかも不明。
645:login:Penguin
10/02/11 15:10:50 yJW9hFuf
女を捨てまくってるとかならともかく、アプローチしてるだけでそこまで嫌悪する必要ないだろ
646:login:Penguin
10/02/11 15:55:14 WaojUPKf
>>643
糞ワロタwww
ブログでかよ?
他に読んでる奴等もいるだろうし、
さすがにそれはねーわなw
647:login:Penguin
10/02/11 17:30:48 aEGTGT/7
gitに使う価値があるかどうかは、
メンテナ氏の女性へのアプローチ法とは関係がない
648:login:Penguin
10/02/11 19:24:12 oAJQYaS+
どこのblogかkwsk
649:login:Penguin
10/02/11 20:12:33 jeJxZddW
嫌儲の男女バージョンみたいな感じだな
650:login:Penguin
10/02/11 22:27:09 71QNNVeu
>>638
auro-revert-bufferじゃだめなのか?
651:login:Penguin
10/02/12 01:58:47 hFHmJq9f
ソースコードを本番にデプロイする時についてなのですが、
前回デプロイ時のソースとの差分だけ抽出して、そのファイルだけ本番にデプロイできるようにしたいと考えています。
今レポジトリにコミットしたリビジョンと、前回デプロイ前のコミット時のリビジョンの差分を
抽出することができればと思うのですが、それ用のコマンドってgitにあるでしょうか??
教えていただけると幸いです。
652:651
10/02/12 02:00:25 hFHmJq9f
すいません、言葉足らずでした。
>>今レポジトリにコミットしたリビジョンと、
>>前回デプロイ前のコミット時のリビジョンの差分を
>>抽出することができればと思うのですが、
更新のあったファイルの「ファイル名」だけ、gitのコマンドで抽出できないか、という意味です。
653:login:Penguin
10/02/12 08:54:33 hx+CbuVO
>651
どーやってデプロイしてるのか教えれ。
654:login:Penguin
10/02/12 11:50:19 StLEjzjs
>>652
git diff --name-onlyとか、どう?
655:login:Penguin
10/02/12 14:33:42 MaWIE5lB
>>651
普通にgit pullしたら早いと思うんだけどな。
rsyncするよりも手軽だし。
656:651
10/02/12 15:29:51 hFHmJq9f
レスありがとうございますm(_ _)m
>>653
ftpかsftpでデプロイしようと思っています。
本番環境はさくらインターネットの供用サーバです。
>>654
やってみました。
これって、コミットする前の、さらにステージする前の差分ファイルを抽出するんですね。
git diff --cached --name-only って試してみたらステージ後の差分ファイル一覧も出力出来ました。
やろうとしていることは大体こんな感じなのですが、
2つ前のコミットと1つ前のコミットの間で更新されたファイル一覧の出力ってのはできないでしょうか??
>>655
なるほど、本番環境に入ってpullするんですね。
仕事では本番サーバも自分で用意してgit環境も構築してたのですが、これってやったことありませんでした。(普通にsftpとかrsyncで・・)
ただ今回の場合、デプロイ先がさくらインターネットの共有サーバなので、git環境を構築出来ないと思うんですよね。
なので普通にftpとかsftpでアップしようと思っています。
ちなみに、本番環境でgit pull する方法で、本番ウェブサーバが複数ある場合は、
それぞれにログインしてウェブサーバ毎にgit pullする感じですか?
657:login:Penguin
10/02/12 15:54:21 MaWIE5lB
>>656
>ちなみに、本番環境でgit pull する方法で、本番ウェブサーバが複数ある場合は、
>それぞれにログインしてウェブサーバ毎にgit pullする感じですか?
どれぐらい気をつかってやるかにもよるんじゃないか。
静的コンテンツをただ更新するだけならrsyncとかgit pull/pushとかをスケジューリングで
自動でやらせてもいいかもしれないけど、warなんかだとそうもいかないだろうから
リリース毎にウェブサーバ切り替えながら慎重にやるんじゃない?
てきとうにググったら、さくらのレン鯖にGit入れてる人けっこう居るみたいだよ
URLリンク(www.google.co.jp)
俺もさくらのやつあるんだよね。今度やってみようかな。
658:651
10/02/12 21:58:43 hFHmJq9f
>>657
レスどもです。
そーか、スタンダードプランならsshとか使えるし、gitのインストールもできるんですね。
早速
URLリンク(d.hatena.ne.jp)
これみてやってみたんですが、
git push --all
のところで
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
っていわれてしまいました。
さくらのスタンーダードプランのssh接続って試してみたら
鍵認証なしの単純なパスワード認証みたいなんですけど、
git push の時のssh接続では鍵が探されてる?気がします。
上の記事書いた人はなんでうまくいったのか・・
git://プロトコルにするとポートが開いてないみたいでダメです。思案中・・
659:login:Penguin
10/02/12 22:57:55 meESnmZa
>>658
単に向こうの~/.sshやauthorized_keysのパーミションの
問題とかではなく?
660:651
10/02/13 00:05:44 IZfm7XrQ
>>659
いま一応確認してみましたが、~/.ssh のパーミッションは755で、authorized_keysはありませんでした。
普通にsshでログインしようとしたら鍵認証じゃなくてパスワード認証になるので
authorized_keysはないのは問題ないと思うんですが
gitでssh接続しようとするとなぜか鍵認証にしようとします・・なぜだー。
661:login:Penguin
10/02/13 02:02:29 52GS5xAq
man co
662:login:Penguin
10/02/13 09:09:31 mH7bnksn
>>656
> 2つ前のコミットと1つ前のコミットの間で更新されたファイル一覧の出力ってのはできないでしょうか??
git diff --name-only HEAD^^ HEAD^
それぞれのcommitのSHA-1値を与えてもOK。詳細は git diff --help してみるのがよいかと。
663:login:Penguin
10/02/13 11:21:11 tHnX+oRf
1.7.0 キタ━━(゚∀゚)━━!!
URLリンク(article.gmane.org)
664:login:Penguin
10/02/13 11:53:52 06CKMljI
あれなんか空のディレクトリいつのまにかサポートされてる?
665:login:Penguin
10/02/13 16:21:28 3p2VcGOY
>>664
mjd??
666:login:Penguin
10/02/15 11:27:21 v96hRl2p
>>647
reiserfsを使っている俺には死角はなかった。
667:login:Penguin
10/02/15 22:23:02 Ap57uWpz
URLリンク(progit.org)
お、ちゃんと日本語に戻ったな。
ちょっと前まで何語かよくわからんのにすり変わっていて笑ったんだけど。
668:login:Penguin
10/02/18 22:09:12 yUl4nZSS
>>663
repo.or.czのミラーって更新遅いんだな...
669:login:Penguin
10/02/23 21:07:12 hI3BlWsm
ようやく、なんとか git add -p / git commit -v
に慣れてきた感じ。
git add も当たり前だがわかっててやらないと(?_?)な
状態にすぐなる。git add -u とか
git commit -v -m "hoge" huga.txt
とか、けつまずいた。git reset HEAD^ に何度も助けられたぜ。
670:login:Penguin
10/02/23 23:41:35 ZVOkCMZj
俺も最近なれてきたけど
少し前まではgit pushした後、
別の日にgit commit --amendから初めて
git pushして、パニクってたものです・・・
671:login:Penguin
10/02/24 16:05:44 wK5Zb8Pm
サブモジュールとサブツリーってどう違うのかよくわからん。
複数プロジェクトを1レポジトリでまとめたいんだけど
どうすりゃいいの?
672:login:Penguin
10/03/02 23:16:21 jWjxjdrz
復活カキコ
673:login:Penguin
10/03/05 07:39:15 nZaP2lzx
みなさん、もう$Id$とか使ってないですか?
674:login:Penguin
10/03/05 08:23:57 T3bjYh1e
それgitで使えるの?
blameとか見ればいいんだし使わないよ
675:login:Penguin
10/03/05 16:26:48 HZ7fJgn/
最近TortoiseGitが1.3.6にヴァージョンアップしたもようですが
1.3.2対応の日本語化パッチが使えなくて困ってます。。
是非1.3.2にヴァージョンダウンさせたいんですが本家のぞいても前ヴァージョンが無いんですよね・・・
どこかに1.3.2転がってませんかね?
676:login:Penguin
10/03/05 16:38:07 Cxd0LGFJ
>>675
開発元サイトにあるぢゃん
URLリンク(code.google.com)
677:login:Penguin
10/03/05 18:22:52 vhUyLNw1
msysgitの方も最新版出ないかなぁ
678:login:Penguin
10/03/05 23:40:59 nZaP2lzx
>>674
attributesファイルに * ident って書けばできるんですけど、
日付とかではなく、コミット名(ハッシュ値)になるみたいだし、
checkoutした時しか置換されないようです。
今までSubversionとかで$Id$使ってたソースをGitに移した場合、
全ファイルのこの部分は、この先どうしていけばいいんだろう?と思いました。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5370日前に更新/211 KB
担当:undef