トップページtech
1001コメント321KB

Git 9

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/04/12(土) 13:22:20.98ID:s4x1CSLN
ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。

Git - Fast Version Control System
http://git-scm.com/

◆関連サイト
Pro Git - Table of Contents
http://progit.org/book/ja/
Git入門
http://www8.atwiki.jp/git_jp/

◆前スレ
Git 8
http://toro.2ch.net/test/read.cgi/tech/1389701817/
0534デフォルトの名無しさん2014/05/18(日) 17:56:48.01ID:ItRorGEB
>>532
何を変更したのかがわからないクソログ
0535デフォルトの名無しさん2014/05/18(日) 18:07:20.56ID:4ihVJdEr
>>532
流石2chの管理人さんやで
0536デフォルトの名無しさん2014/05/18(日) 20:04:06.18ID:XTSqz+Em
なんでこの変更が必要なのか書いてあればそれでいいや。
0537片山博文MZバグロボ ◆T6xkBnTXz7B0 2014/05/18(日) 21:11:53.29ID:wTsBQBni
Gitでバージョン番号を管理する方法ないの?
0538デフォルトの名無しさん2014/05/18(日) 21:16:22.56ID:C9yMB7Be
>>537
あるけど、具体的にどういう
バージョン番号管理をしたいの?
0539片山博文MZバグロボ ◆T6xkBnTXz7B0 2014/05/18(日) 21:29:08.38ID:wTsBQBni
コミットするたびにソース中のバージョン番号を自動的に更新して欲しい!!
0540デフォルトの名無しさん2014/05/18(日) 21:40:01.78ID:C9yMB7Be
>>539
ソースコードのバージョン?
アプリのバージョンじゃなくて?
0541デフォルトの名無しさん2014/05/18(日) 21:40:35.24ID:7v87Hd7x
prepare-commit-msgフックでコミットメッセージにバージョン番号でも入れりゃいいんじゃねえの
0542デフォルトの名無しさん2014/05/18(日) 21:44:28.59ID:C9yMB7Be
>>539
少しバージョン番号のつけ方の仕様を決めてくれないかな。

たとえば、仮にバージョン1のソースコードがあったとして、
それをAさんとBさんが個別に修正した時、
それぞれのバージョンはどうしますか?
0543デフォルトの名無しさん2014/05/18(日) 21:52:39.89ID:wDknVmCU
アプリケーションでバージョン番号を持ってるファイルの更新だろな。
どっちかっつーとpush時な気がするな。
0544デフォルトの名無しさん2014/05/18(日) 22:28:18.60ID:C9yMB7Be
>>543
どういう運用にしたいかによるでしょうね。

git推奨でいえば、バージョン番号 = ハッシュID
この方法が優れているのは、ソースコードに何も書かないでいいし、
複数の人が平行で作業していても、バージョン番号がかぶることがないというメリットが有る。

git推奨の方法以外をやりたいのであれば、その仕様を決めてもらわないと答えようがない。
0545デフォルトの名無しさん2014/05/18(日) 22:49:36.09ID:7h87TJ0i
リリース前に、バージョン番号を格納するファイルを更新しpusu、そしてtagをつける
ってやってる
0546デフォルトの名無しさん2014/05/18(日) 23:27:23.72ID:WINLDOAf
>>544
>git推奨でいえば、バージョン番号 = ハッシュID
当のgitがそれやってなくね?
0547デフォルトの名無しさん2014/05/18(日) 23:43:08.76ID:C9yMB7Be
>>546
いえ、"ソースコードの" バージョンの話です。
アプリのバージョンの話ではありません。
0548デフォルトの名無しさん2014/05/18(日) 23:53:30.20ID:mKpMCPC5
推奨とか書いちゃうから
0549デフォルトの名無しさん2014/05/19(月) 00:10:30.29ID:Zm2k/WGd
>>547
そうなのか。

ところで、アプリのバージョン番号はどうやって管理してる?
自動でインクリメントする仕掛けってやっぱほしいよね
0550デフォルトの名無しさん2014/05/19(月) 00:16:41.33ID:PiFbW4Gq
それこそフックで何らかのスクリプト走らすって話じゃね?
0551デフォルトの名無しさん2014/05/19(月) 00:37:55.02ID:2pHoKbmf
自動なのはビルドだけでバージョンは手でいいんじゃね
0552デフォルトの名無しさん2014/05/19(月) 01:30:50.53ID:boPMtkif
CIツールでやれ
0553デフォルトの名無しさん2014/05/19(月) 02:00:24.75ID:lhsjIgd7
時々さ、--versionってやると
バージョン番号としてコミットIDが
表示されるのあるじゃん?

あれってどうやってるの?
コミットしなければ現在の
コミットIDわからないはずなのに。
0554デフォルトの名無しさん2014/05/19(月) 03:20:50.33ID:cOS2qM9v
>>553
それを表示するコードをビルド時にリポジトリ情報から自動生成すればいい
0555デフォルトの名無しさん2014/05/19(月) 05:02:24.66ID:ZqE06A31
>>553
キーワード展開でググる。
0556デフォルトの名無しさん2014/05/19(月) 14:22:29.51ID:nfghgbV/
>>493はまさにjap
0557デフォルトの名無しさん2014/05/19(月) 21:43:58.04ID:lhsjIgd7
>>554
サーセン、LL使いなんでビルドなんて
ないんですwww
0558デフォルトの名無しさん2014/05/19(月) 21:56:35.02ID:xEeDrkw/
そうだそうだ!
0559デフォルトの名無しさん2014/05/19(月) 22:44:03.09ID:cOS2qM9v
>>557
ビルドは無くてもデプロイするだろ
インストールスクリプトみたいなものを用意しないか?
0560デフォルトの名無しさん2014/05/20(火) 05:21:27.44ID:7I4ys7NV
PHPerとかサーバで運用しているコードをそのままいじったりするから恐ろしい。
たまにgitにアプリのログやパスワードとか含まれてたりする。
0561デフォルトの名無しさん2014/05/20(火) 05:26:16.72ID:Q2AhpEnY
> そのままいじったりする

どゆこと?
0562デフォルトの名無しさん2014/05/20(火) 07:18:02.19ID:7I4ys7NV
>>561
運用と開発の環境が同じものってこと。バージョンとかでなくて、同一のリソース。
0563デフォルトの名無しさん2014/05/20(火) 07:41:36.00ID:Q2AhpEnY
Webサーバとして公開してるディレクトリでgit initして開発してるってことか
0564デフォルトの名無しさん2014/05/20(火) 08:24:11.40ID:uQLrwk2U
>>563
git じゃなくて Subversion だけどテストサーバーはその運用だわ。
0565デフォルトの名無しさん2014/05/20(火) 12:10:11.33ID:Y3VmLAx+
開発と運用を分ける場合ってどうやるんですか?
例えばC:¥apache2.2¥htdocs¥kaihatu¥.gitで作って
運用で動かすのはC:¥apache2.2¥htdocs¥honban¥.gitみたいにしたらいいですか?
honbanフォルダでhaihatuをcloneして動かすっていう感じでしょうか?
0566デフォルトの名無しさん2014/05/20(火) 12:50:55.92ID:fbMM1sIr
リポジトリの話と実行環境の話がごっちゃになっとる
0567デフォルトの名無しさん2014/05/20(火) 13:32:57.00ID:oqlsgWjt
ものにもよると思うが開発マシンでそのまま運用するとか恐ろしいな
0568デフォルトの名無しさん2014/05/20(火) 16:19:48.21ID:zD+BcsMh
これがDevOpsというやつか
0569デフォルトの名無しさん2014/05/20(火) 17:18:53.44ID:7I4ys7NV
git archiveで取り出して、テスト環境にインストールしてテストして、同じものを本番環境にインストールが普通だよな? 普通だと言ってくれ。
テスト環境でリポジトリから直接インストールは許す。
0570デフォルトの名無しさん2014/05/20(火) 20:19:01.71ID:7WHSNOxu
今の時代、スクリプト言語でもソースコードを
そのまま配置するとかやっちゃだめだよ。

デプロイはサーバーにログインして
git pullとかやっていいのは小学生までw
0571デフォルトの名無しさん2014/05/20(火) 21:45:26.96ID:+FFXBZCI
この話git関係ないだろ
0572デフォルトの名無しさん2014/05/20(火) 22:09:24.93ID:gHSFUybb
>>567
恐れるな!
0573デフォルトの名無しさん2014/05/20(火) 22:47:06.91ID:w8F8fDtL
何のためのバージョン管理かわからんなw
問題出たら巻き戻せって事?
なんだかテストもしてなさそうw
0574デフォルトの名無しさん2014/05/20(火) 23:20:14.34ID:DeZ/1+VP
>>569
rsyncとかするの?capとか使うの?
gitじゃだめなのか、、?
0575デフォルトの名無しさん2014/05/20(火) 23:30:10.39ID:oqlsgWjt
本番環境にgit pullでデプロイするのは.gitが残るから問題あるよね
テスト環境ならいいと思うけど
0576デフォルトの名無しさん2014/05/20(火) 23:45:03.16ID:gZsncm2t
緊急事態が起こって巻き戻すぐらいならええじゃないか
デプロイした先の本番環境で頻繁に巻き戻さないといけない方が余程テスト不足では
0577デフォルトの名無しさん2014/05/20(火) 23:54:11.31ID:w8F8fDtL
本番サーバーがそのままリポジトリのマスターってのもありそう。
0578デフォルトの名無しさん2014/05/20(火) 23:54:26.37ID:4h/6mNTZ
GitHubでプルリクの流れがよく分かりません。
コミットするときはmasterではなくてbranchにしろとは聞いてますが、
自分が理解するところでは、

@フォークする
Aローカルにcloneで持ってくる
Bリモートにフォーク元のmasterリポジトリをaddする
Cローカルにブランチを作る
Dローカルのブランチを修正する
Eローカルのブランチに変更をコミットする
FGitHubのブランチに変更をコミットする
GGitHubのフォーク元のmasterリポジトリにpull requestを出す
Hマージされたらブランチを削除
Iローカルでfetchする

こんな感じになるんでしょうか?
0579デフォルトの名無しさん2014/05/20(火) 23:56:41.46ID:Q2AhpEnY
>>578
>>2
0580デフォルトの名無しさん2014/05/21(水) 01:08:18.51ID:BNHZ/x8Q
最近気づいたけど変更したファイルだけコピーしたくてもxcopyじゃ出来んのな
チェックアウトでファイルの更新日時が更新されるとは
0581デフォルトの名無しさん2014/05/21(水) 01:29:27.63ID:pe3xq3aD
>>580
チェックアウトしてmakeかけたときに変更したファイルだけコンパイルするのが普通なんで
gitに限らずUnix由来のVCSはそういう挙動になる
0582デフォルトの名無しさん2014/05/21(水) 02:14:07.74ID:BNHZ/x8Q
言われてみればたしかにmakeするときはobjファイルとか別ブランチの状態になってたりするからそういう仕様でないと困るね
そのプロジェクトをgitで管理する前はxcopyで更新したファイルだけ移動してたけど移動には別手段考えるしかないか
0583デフォルトの名無しさん2014/05/21(水) 02:20:38.03ID:5sngE80p
gitにかぎらずだけど、よく考えて作られてるわ。
時たまgitのやり方に合わないやり方をしたいっていう人がいるけど、
よく考えて作られたgitがどうしてそうなっているのかを
考えたほうがいいと思う。
0584デフォルトの名無しさん2014/05/21(水) 02:45:19.12ID:Cs2Lb6yD
>>579
>>18-20
0585デフォルトの名無しさん2014/05/21(水) 04:29:31.39ID:sT3o3DmA
gitと全然関係ないGitHub固有のサービスの話題もここで扱う気なの?
GitHubPagesやGistsやissueやwikiやOrganizationや有料サービスについてや
色々とあると思うんだけど
0586デフォルトの名無しさん2014/05/21(水) 10:49:12.08ID:/08zgsVl
>>585
http://toro.2ch.net/test/read.cgi/tech/1384821518/
05875652014/05/21(水) 18:07:42.08ID:T6zeFgZl
とにかくどうしたらいいのかおしえてくだしあ
0588デフォルトの名無しさん2014/05/21(水) 18:08:59.27ID:T6zeFgZl
ゆとりはgitって名前が付いてるからgithubもこのスレでいいじゃないかっていうけど
そうやって幅を広くすると俺みたいなカスの質問が流れるか軽くあしらわれてしまうのでやめてほしい
0589デフォルトの名無しさん2014/05/21(水) 19:43:13.07ID:nqnjC0dU
Git 2.0-rc4 リリース
https://github.com/git/git/releases/tag/v2.0.0-rc4
0590デフォルトの名無しさん2014/05/21(水) 19:55:42.24ID:rgBB9OCe
gitみたいなバージョン管理ソフトで、
rc版使う奴ってどういう奴なの?
もしも不具合とかで全部吹っ飛んだりしたらどうすんの?
バックアップとてたとしても、そんな面倒な事してまで使う物なの?
なんなの?ばかなの?しぬの?
0591デフォルトの名無しさん2014/05/21(水) 20:08:44.66ID:MmHyni7x
>>590
人柱を大事にしろよボケ
0592デフォルトの名無しさん2014/05/21(水) 20:18:33.19ID:AVBbOV7Q
>>590
テスト版使ってる連中はリスク承知で使ってんだから大丈夫だろ
何かバグでどうにかなっても取り戻す手段くらい準備してやってるだろ
0593デフォルトの名無しさん2014/05/21(水) 20:19:24.23ID:AVBbOV7Q
>>588
>>569のやり方でいいじゃn
0594デフォルトの名無しさん2014/05/21(水) 21:09:00.37ID:EKqVwxDb
最高に意地悪でひねくれたテストを見せてくれ。
0595デフォルトの名無しさん2014/05/21(水) 21:15:19.41ID:19taQ0OX
pushこまめにしてれば問題ない
0596デフォルトの名無しさん2014/05/21(水) 21:16:23.33ID:19taQ0OX
テスト環境のをすべてシンボリックリンク貼ればいいだろ
0597デフォルトの名無しさん2014/05/21(水) 21:21:22.37ID:OinoP915
gitoliteのやり方
https://github.com/sitaramc/gitolite
パッケージにインストール用スクリプトを追加、git cloneしてそのスクリプト実行

ていうかgit関係ない、zipで拾ってきても、git cloneやpullでも大事なのはソースとってきたあとの話
0598デフォルトの名無しさん2014/05/21(水) 21:44:31.28ID:igdonOpP
>>590
gitは分散型だからユーザーが多くなれば多くなるほど
それぞれがバックアップを持っている。
だからたとえ一人が壊れても復旧可能。


そしてディスク壊れたらどうすんの?って話と一緒。
バックアップぐらいとれや。
0599デフォルトの名無しさん2014/05/21(水) 22:58:13.70ID:19taQ0OX
>>598
rails事件
0600デフォルトの名無しさん2014/05/21(水) 23:03:07.97ID:igdonOpP
>>599
gitと関係ねーしw
0601デフォルトの名無しさん2014/05/22(木) 06:26:16.29ID:JO7c/VLA
>>539
GitHubのGistみたいな感じ?あれもGitで実現されてるらしいけど

>>580-583
VSCの仕様はコンパイルする言語向けって感じで
更新したスクリプトファイル等だけを借りてるサーバーにアップロードしたいという需要には応えられない感じだな
需要としてはアップロードに通信量制限があるとかそういう感じ稀なケースくらいだろうからしかたないか
0602デフォルトの名無しさん2014/05/22(木) 07:30:00.04ID:O49mbUbG
>>601
UNIXの世界ではそういうのはrsyncを使うからね
タイムスタンプじゃなくてMD4を用いて更新チェックしたり
更新の転送もファイル全体じゃなくて変更部分だけを転送して通信量を最小化する
0603デフォルトの名無しさん2014/05/22(木) 08:00:54.05ID:JO7c/VLA
なるほどね
簡易なftp通信ツールじゃなく同期ツールを使うのか
0604デフォルトの名無しさん2014/05/22(木) 08:43:15.77ID:Md3S+Ay9
gitとgithubは(media)wikiとwikipediaのような関係かw
0605デフォルトの名無しさん2014/05/22(木) 09:52:08.98ID:8poss9h8
ふむ
0606デフォルトの名無しさん2014/05/22(木) 17:52:05.88ID:bnXb1Wgc
>>604
それはちがうね
wikipediaはmediawikiそのものだから
0607デフォルトの名無しさん2014/05/22(木) 18:25:23.64ID:uwnOnEuc
そういうこと言ってんじゃない
0608デフォルトの名無しさん2014/05/22(木) 18:48:58.03ID:2qkQcCiJ
>>601
>VSCの仕様はコンパイルする言語向けって感じで
>更新したスクリプトファイル等だけを借りてるサーバーにアップロードしたいという需要には応えられない感じだな
いや全然違うと思う

VCSが言語を選ぶとかじゃなくて、VCSに向かない作業をやってるのがダメなんでは?
そういうのは専用のデプロイ・デリバリツールを選ぶべき。
上の方で話題に出てた「ビルド時にリビジョン埋め込みたい」みたいな要望も
VCSじゃなくてビルドツール等が行うべき領域。

バージョン管理に向かない言語とかは特にないと思うな
ソースコードそのものがバイナリとかいうのがあるなら分からんけど・・・


あと細かい指摘ですまんがVCSのタイポだよな?
しばらくググって悩んじゃったじゃねーか
0609デフォルトの名無しさん2014/05/22(木) 18:54:11.54ID:TFAWZMIx
>>608
>ソースコードそのものがバイナリとかいうのがあるなら分からんけど・・・

Piet言語のことか
0610デフォルトの名無しさん2014/05/22(木) 19:22:23.11ID:f81WwqvH
bitbucketが作ったstash3.0ってなに?
0611デフォルトの名無しさん2014/05/23(金) 18:37:12.92ID:pr4rIIld
developで開発中、急きょ必要がありmaster(stable)からfixブランチを切り修正masterにマージ
developでは弄ってるがfixでは弄って無いファイルの更新日時まで変更される(これはdevelopから切り替えた時点でおきるが)
ファイル更新日時だけでアップロードしようと思うと無理がある
0612デフォルトの名無しさん2014/05/23(金) 20:49:08.96ID:3CistgHw
とうとうgit 2.0が
0613デフォルトの名無しさん2014/05/24(土) 09:01:11.84ID:9qFFfmjf
gitchainを知らなくていいのって小学生までだよね〜
0614デフォルトの名無しさん2014/05/24(土) 11:32:04.32ID:4TNjChUa
>>601
コミットしたものをサーバーにアップロードしたいのか?
コミットする前にテストしたりするためにサーバーにアップロードしたいのか?どっちかよくわからないけど

前者なら作業用のリポジトリをクローンしたものをローカルに用意しといてpullしてxcopyすればいいし
後者ならムダだと思うかもしれないけど今の挙動のままが正解だと思う
checkoutしてタイムスタンプが更新されたファイルは転送されるべきなんだよ
0615デフォルトの名無しさん2014/05/26(月) 16:40:41.53ID:E/fV2vLO
git checkout -b topic_foo HEAD
git push origin topic_foo
というのをよくやるんですが、git push origin topic_foo をもっと簡潔にできますか?
具体的には topic_foo を省略したい。
初審者質問でごめんなさい!
0616デフォルトの名無しさん2014/05/27(火) 03:17:32.65ID:Ha9yhWBf
バッチにしろ
0617デフォルトの名無しさん2014/05/27(火) 07:23:22.69ID:CjDrbeGH
>>615
alias p="git push origin topic_foo"
0618デフォルトの名無しさん2014/05/27(火) 08:25:02.04ID:aQ+mTKAT
>>615
git config push.default current
自己責任で使え
0619デフォルトの名無しさん2014/05/27(火) 09:36:32.14ID:M7xuRdW4
>>616
必ずしも連続して実行するわけではないので、バッチでない方法がいいなあ。
git checkout はこれでいいと思うので、git push origin topic_foo が簡潔になるよい方法があれば教えてください。
(topic_fooが、実際にはけっこう長い名前なので、入力するのがめんどくさい)
0620デフォルトの名無しさん2014/05/27(火) 11:40:51.59ID:empqvUFR
>>615
> git checkout -b topic_foo HEAD
> git push origin topic_foo
> というのをよくやるんですが、git push origin topic_foo をもっと簡潔にできますか?
> 具体的には topic_foo を省略したい。

その前にHEADを省略しろよw

git checkout -b topic_foo
git push origin topic_foo
0621デフォルトの名無しさん2014/05/27(火) 11:41:37.17ID:empqvUFR
> (topic_fooが、実際にはけっこう長い名前なので、入力するのがめんどくさい)

TABで補完すれば良い
0622デフォルトの名無しさん2014/05/27(火) 12:03:49.03ID:aQ+mTKAT
>>618を設定しとけば、topic_fooを省略してgit push originでいける
remoteがoriginならこれも省略できるから、git pushでいい
0623デフォルトの名無しさん2014/05/27(火) 16:10:42.92ID:Ha9yhWBf
バッチすら作れないのか(笑)
619がしょぼいのか619が使ってるosがしょぼいのか(笑)
うちのvistaならファイルすら不要でランチャーにいくらでも作れるんだが(笑)
0624デフォルトの名無しさん2014/05/27(火) 18:36:54.81ID:CjDrbeGH
vistaでなければ、バッチなんてめんどくさいもの作る必要すらない。
0625デフォルトの名無しさん2014/05/27(火) 19:21:12.08ID:Ha9yhWBf
いやいや面倒でもなければターミナルに切り替える必要もなくただボタン一つ押すだけだから(笑)
0626デフォルトの名無しさん2014/05/27(火) 21:50:46.03ID:x1QZTJwI
必ずしも連続して実行する訳ではない、と言われてるのに脳内で作れないって決めつけちゃうのヤバいな
これからの日本社会に必要な人材だ
0627デフォルトの名無しさん2014/05/28(水) 02:29:31.61ID:JqBWJ9I7
>>625
ボタン押すとかめんどくさすぎる
0628デフォルトの名無しさん2014/05/28(水) 06:37:21.38ID:3jHSpg0i
バッチってもしかしてブランチ毎に作るんか?w
0629デフォルトの名無しさん2014/05/28(水) 09:27:53.43ID:CrCNX+z2
主となるブランチが1個なら別にいいだろ
0630デフォルトの名無しさん2014/05/28(水) 09:47:28.15ID:3jHSpg0i
元の質問はトピックブランチの話をしてるんだから
主となるブランチが1個とかじゃないだろw
0631デフォルトの名無しさん2014/05/28(水) 10:02:33.99ID:TQzWSZnP
トピックブランチっていくつあるの?
0632デフォルトの名無しさん2014/05/28(水) 10:44:05.28ID:+VRaMc3N
そこからかよw

無知が提示する案ほど
迷惑なものはないよなw
0633デフォルトの名無しさん2014/05/28(水) 12:13:27.82ID:zJ+uQAQa
でも結局>>618でFAだろ?
0634デフォルトの名無しさん2014/05/28(水) 13:56:51.68ID:3jHSpg0i
作ったトピックブランチを確実にpushする前提なら
(トピックブランチ作ったけどやっぱpushするのやめたーってのが無い前提なら)
push.default=currentにしなくてもpush.default=simpleで(2.0からのデフォルト)
ブランチ作ってすぐgit push -u origin topic_fooをやっとけばいい
それ以降はgit pushだけで済む
■ このスレッドは過去ログ倉庫に格納されています