Git 15©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/02/05(日) 05:22:15.65ID:AxwpDksc0
ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。

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

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

◆前スレ
Git 13
http://echo.2ch.net/test/read.cgi/tech/1439563364/
Git 14
http://echo.2ch.net/test/read.cgi/tech/1457412803/
VIPQ2_EXTDAT: default:vvv:1000:512:----: EXT was configured
2017/03/21(火) 00:49:07.64ID:1pi9Zbm10
>>267
それがどうしたんだよw
2017/03/21(火) 00:55:25.33ID:KGQ11aI90
バイナリファイル系は適切なツールを使えば
差分を知ることはできるが、
差分を知る以上のことはできない。

例えばcherry-pickとかmergeとかね

ただsvnとかでバックアップツールとしか
見てなかったやつは、そもそもmergeとかいう概念がないから
差分だけわかればいいと勘違いしてしまう。

それじゃプログラマとはいえない。
2017/03/21(火) 01:17:05.94ID:VJPcfHdS0
officeのドキュメントを差分管理ベースで作業できるようにするなら
ドキュメントの中の要素を個別に差分取って管理できるようにならないとダメだろうなあ

アプリのソースが一つのファイルにすべて書かれてて、
それをgitで管理しろとか言われたら気が狂うw
2017/03/21(火) 01:37:41.67ID:xwYJW6M40
複数のブランチを切ることがそもそもない環境なら、mergeとか知らなくてもしょうがない
2017/03/21(火) 01:39:23.98ID:1pi9Zbm10
>>271
ZIP解凍した中身をgitで管理
pullで自動圧縮するようにできればお望みのことが実現するのだが
2017/03/21(火) 02:02:40.95ID:VJPcfHdS0
>>273
docxとかだよね?あれの中身って文章が構造的に分割されてるわけじゃなくて
単にスタイルとかイメージとかが分離されてるだけじゃないの?
2017/03/21(火) 02:10:13.49ID:1pi9Zbm10
>>274
それでもXMLだから差分は一目瞭然かなと

xlsxやpptxならシート/ページごとにXMLファイルが分かれるからもっと管理しやすいかも
2017/03/21(火) 02:14:24.08ID:jV0Y+t/Y0
>>270
行単位の処理とかは無理かもだけどcherry-pickやmergeはできるんでない?
2017/03/21(火) 02:16:22.53ID:VJPcfHdS0
>>275
少なくとも、差分を見ただけでどの章のどこが更新されたかが分からないとつらいかな
ドキュメント全体をひとつのxmlで管理するなら
そういう機能をもった差分ビューワが必要になると思う
2017/03/21(火) 02:19:18.55ID:1pi9Zbm10
>>277
そういう目的ならExcelかPowerPointってことになるかね
2017/03/21(火) 02:23:17.75ID:jV0Y+t/Y0
Office用の見やすいGUIの差分ビューワもあるけどたいてい有償だから
まずはここに書いてるのから試してみたら
http://qiita.com/shuhei/items/6a18d968051378d7ac1a
280デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/21(火) 03:53:28.35ID:vLQCNfD00
>>275
差分見えてもmergeはconflictの山になって事実上無理ぽそう。
2017/03/21(火) 09:23:16.21ID:e/VBfIvSp
ここで言うことでもないけど
いい加減Officeを卒業したい
2017/03/21(火) 09:26:11.18ID:A2xILC47M
早く画面キャプチャをExcelに貼る作業にもどるんだ
2017/03/21(火) 09:41:34.15ID:KGQ11aI90
>>275
> それでもXMLだから差分は一目瞭然かなと

え? お前OfficeのXMLのタグを知ってるの?
XMLのタグを知っていないと、差分は分かっても
その意味はわからないよね?

>>280
> 差分見えてもmergeはconflictの山になって事実上無理ぽそう。

XMLのタグの整合性、つまり閉じタグの対応まで
ちゃんとやらないとだめだからねw
タグの意味、属性、誰か解説してる人いる?
2017/03/21(火) 09:46:31.05ID:dDb6xsPz0
Excelファイルのバージョン管理なんて実質タイムスタンプで管理するしかないのに、とにかくGit真理教の信者は
なにかテキストファイルレベルでの差分での管理が実用的みたいなウソを垂れ流す
2017/03/21(火) 09:56:27.64ID:e/VBfIvSp
gitがバイナリに弱いのは誰もが認める話だと思うけど、タイムスタンプで管理するのは無くない?
svnとか他のバージョン管理システムってタイムスタンプ見て管理なんかしてたっけ?
286デフォルトの名無しさん (スプッッ)
垢版 |
2017/03/21(火) 10:41:32.81ID:CAHXK6Wdd
>>270
適切な扱いが出来るかはそのバイナリファイルを扱うソフトウェア次第
3wayマージが出来るならgitの機能は全部使えるだろう
287デフォルトの名無しさん (スプッッ)
垢版 |
2017/03/21(火) 10:47:26.85ID:CAHXK6Wdd
>>285
gitがじゃなく、汎用バージョン管理システム全般が、個々のファイル仕様に独自に対応しなければならないファイルに弱い
というより、テキストファイルのシーケンシャル性と改行で意味分割する仕様が特別汎用性に優れてるだけ
gitはエディタも差分表示もマージツールもファイル属性に応じた外部ツールを使用出来るようになってるから、まだそういう仕様が不明なファイルに強いと言える
gitが弱いのはバイナリファイルではなくサイズが巨大なファイル
たとえテキストファイルでも1ファイル1Gとかになると扱い辛い事になるはず
288デフォルトの名無しさん (エムゾネ)
垢版 |
2017/03/21(火) 10:56:57.56ID:2pW378OvF
>>284
excelは標準では同じファイル名のファイルを同時に複数開けないし開いただけでタイムスタンプが変わるから、ファイル名でバージョン管理するのが基本だと思うけど
どうやってタイムスタンプでバージョン管理するんだ?
2017/03/21(火) 14:58:44.05ID:6WWBsw/3F
>>265
どうでもいいけどファイルのタイムスタンプを保存している(する必要がある)なら
ファイルの中身を変更せずにファイルの日付だけ変更してコミットしたときに
何も変更されてねーコミットスルーしよーぜってのがgit
それもファイルの変更とみなしてコミットするのはあほ
290デフォルトの名無しさん (エーイモ)
垢版 |
2017/03/21(火) 16:43:16.40ID:RUBeb/rgE
指定した範囲のコミットログを表示する方法を教えてください

例えばhttps://github.com/git/git/releasesなら
タグv2.11.1からv2.10.0の間のログのみgit logで表示したい
タグがダメならコミットIDで指定でも構いません指定した範囲のログさえ取れれば
291デフォルトの名無しさん (ブーイモ)
垢版 |
2017/03/21(火) 16:52:15.37ID:vbOnldibM
てんてん
2017/03/21(火) 20:49:02.70ID:KGQ11aI90
>>284
> なにかテキストファイルレベルでの差分での管理が実用的みたいなウソを垂れ流す

差分での管理なんて一言も言ってないけど、
ソースコードであればテキストファイルで管理するのが
一番実用的だ。これは本当。

ソースコードがテキストファイルでないものがあるが
(例えばExcelなどの埋め込みVBScript)
見事に管理しづらい。
2017/03/21(火) 20:52:20.32ID:KGQ11aI90
>>289
何を言ってるのか全くわからない。

コミットの日付とファイルの日付(タイムスタンプ)は本質的に違うものであって
gitが記録しているのはコミットの日付であって
タイムスタンプじゃないといったのが理解できなかったの?

コミットの日付を記録するんだから、ファイルに変更がなくコミット自体が発生しなければ
当然コミットの日付は記録されんよ。当たり前だよ。
2017/03/21(火) 20:56:22.17ID:KGQ11aI90
>>288
> どうやってタイムスタンプでバージョン管理するんだ?

ここで>>284に言ってほしい言葉は、

「タイムスタンプが新しい方を最新バージョンとみなすべきだ。
たとえ古いファイルを間違って修正した結果、新しい日付になった場合でも
AさんとBさんがそれぞれ違うシートを修正したとしてもだ!」

って(間抜けな)言葉だねw
2017/03/21(火) 21:01:05.29ID:fjLA+enk0
当然、そうならないようにロック機能をつけるんだよw
2017/03/21(火) 21:13:08.26ID:KGQ11aI90
ロック機能をつけた所で、違うブランチで作業したら
ロックかからないんだから、同じ問題が発生するだろw
2017/03/21(火) 21:26:41.34ID:fjLA+enk0
当然、リポジトリは1つだけに限定してブランチも認めないんだよw
2017/03/21(火) 21:30:32.46ID:KGQ11aI90
>>297
それじゃファイルの管理しか出来ないじゃんw
どうやってアプリのバージョンの管理をするんだよw

新しいバージョンへ追加する機能をマージしていくのが
バージョン管理というものなのに
299デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/21(火) 21:38:19.51ID:YgRGY1SP0
せっかくのボケに対してマジレスしてどうする。
「それはSVNやんかー」と正しく拾ってあげんか。
2017/03/21(火) 21:39:24.77ID:KGQ11aI90
マジレスすると、馬鹿がムキーってなるだろ?w
それが狙いだよ。
2017/03/21(火) 21:46:06.80ID:kM/ZbQe40
VSS
をお勧めするw
2017/03/21(火) 22:09:22.81ID:wENhDYbfM
>>294
なんか勝手にレベルの低い敵を想定して、それをバカにすることで勝ったつもりってのが新しいなw
情けないにも程があるw
2017/03/21(火) 22:14:43.17ID:KGQ11aI90
>>302
そうじゃないよ。もっと面白いことを言ってみせろってことだよw
>>294ぐらいの内容は想定済みだからさ
2017/03/21(火) 22:28:04.46ID:72kEtT2QM
>>296
そんな間抜けな機能を実装してどうする w
305デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/21(火) 22:35:23.92ID:3G08meY40
v2.12.1
306デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/21(火) 22:53:46.86ID:3WUWYr7R0
>>304
SVNディスってんの?
307デフォルトの名無しさん (ブーイモ)
垢版 |
2017/03/21(火) 23:35:33.90ID:vbOnldibM
svnは駆逐された
2017/03/21(火) 23:55:56.28ID:eniBTwk40
svnはバックアップツール的な役割で当分生き続けると思う
ソースコード管理としてのsvnはもう見たくない
あとVSSとかいうゴミが未だに生き残ってるのはうちの会社だけであってくれ
2017/03/22(水) 00:14:08.46ID:MyrW3Mfd0
>>307
されてないよ
2017/03/22(水) 00:55:23.96ID:9PE4AFjh0
GNU - Free Software Directory
http://directory.fsf.org/wiki/GNU

この中でGitを採用してるプロジェクト少なそう
2017/03/22(水) 00:57:04.80ID:9PE4AFjh0
GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation (FSF)
https://gcc.gnu.org/


gccですらSVNだし
2017/03/22(水) 01:23:51.07ID:twIlTm4o0
Gnu Emacs は古参を説得してgitに移行したんだよな
2017/03/22(水) 11:06:02.00ID:6SOT+CpTM
ローカルコミットあればsvnでもいいんだけどな。
2017/03/23(木) 01:26:02.84ID:K0r5mLIw0
gitと同じ機能があればsvnでもいいんだけどなA: [0.091163 sec.]B: [1.205233 sec.]
2017/03/23(木) 20:35:05.23ID:YiRNRc4u0
いやそれなら git でいいだろってなるでしょ。
ってなんか話がわかんなくなってきた。。
316デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/23(木) 20:40:47.51ID:xoR/oCcH0
リーナスの最大の功績はlinuxではないrebaseなのだ
おかげでバカがrebaseに夢中になっている間にスムーズに仕事が終えられる
2017/03/23(木) 23:04:58.72ID:K0r5mLIw0
そのリーナスがrebase使いまくってるんだが?
2017/03/23(木) 23:52:59.08ID:pns5gc7N0
じゃあリーナスはバカだな
2017/03/24(金) 00:01:42.64ID:eFzcKtyj0
だって「git」じゃん……
320デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/24(金) 00:05:33.87ID:pHNq00OZ0
道具は使うためにあるんだよ
2017/03/24(金) 00:16:43.48ID:eJM70nNY0
道具に使われてる感があるな
2017/03/24(金) 00:23:01.51ID:zQzOEJABd
gitは使うことに意義がある
2017/03/24(金) 07:58:41.73ID:hRC2OOpsM
ここは布教に意義を見いだしてる奴の方が多くね?
324デフォルトの名無しさん (オッペケ)
垢版 |
2017/03/24(金) 12:23:45.71ID:+6lNlTOdr
gitに限らずコイツらの布教活動が成功したためしなどただの一度もないけどなw
325デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/24(金) 12:52:55.54ID:lapEt7PI0
>>323
自分がいいと思ってる、使っているものが正しいという阿呆がなんにでもある。
2017/03/24(金) 14:23:13.53ID:pHNq00OZ0
世界を自分(たち)にとって都合の良い方向へ変えようとする活動が布教
変えてゆくためには相手を納得させるか騙すか強要するか
都合の良い部分は伝えるが都合の悪い部分は隠すか屁理屈か嘘で押し通す

布教行為を許してはならない
2017/03/24(金) 14:27:43.43ID:pHNq00OZ0
VCSは頭の良い奴にしか使いこなせない
複数種類のVCSを使いこなせるのならかなり頭が良い
328デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/24(金) 15:38:22.82ID:lapEt7PI0
>>327
あっそ
2017/03/24(金) 17:39:10.63ID:bDNInspW0
Git推しのやつの微妙なウザさってのはあるよなあ
330デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/24(金) 19:00:52.18ID:tPVQTU6p0
>>326
という布教
331デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/24(金) 19:01:20.67ID:tPVQTU6p0
>>329
gitスレで言うことかね
2017/03/24(金) 19:20:07.13ID:aTcy1Xxd0
言ってもいいんじゃね。
おれもgit は好きだけどgit厨は嫌いだし。
2017/03/24(金) 19:54:00.71ID:TtVdytu+d
>>331
言うことだよ!
2017/03/24(金) 19:56:35.65ID:uEBgSsc/0
>>332
わかる
特定のflowを絶対正義だと信じて「git pull --rebaseしないのは馬鹿」とか言い切ってくる奴とかなー
2017/03/24(金) 20:11:39.04ID:cySUBa280
あるある大事典:
git の話ばかりしているから svn スレかと思ったら git スレだった…
2017/03/24(金) 20:14:03.33ID:TtVdytu+d
>>335
意味が分からない
337デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/24(金) 21:33:44.74ID:hATCGDnU0
>>335
思わねーよ
2017/03/25(土) 00:34:43.50ID:OqJqFalA0
gitの話ばかりしてるから、(gitに対して嫉妬してる)svn(ユーザ)のスレかと思ったら、git(信者がのさばってる)スレだった…
2017/03/25(土) 10:29:50.70ID:GiAuLLWQ0
SourceTreeって重くね?
リポジトリを幾つかブックマークに追加しただけなのに
起動がとんでもなく遅くなった
340デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/26(日) 00:38:00.55ID:J8Vm0Xfq0
v2.12.2
2017/03/26(日) 02:34:38.78ID:0Soyrw+Z0
短期間リリースに方針変更?
2017/03/26(日) 07:13:07.41ID:4U1MmeM70
branchだけしてcheckoutし忘れ
誤ってmasterブランチにコミットする大事故
2017/03/26(日) 08:23:06.27ID:ns//jG8c0
王様のbranch
2017/03/26(日) 10:00:08.97ID:+VpcfeLe0
>>342
つgit checkout -b new_branch
2017/03/26(日) 12:53:22.44ID:0NHqcIOe0
git stash popは危険なコマンドだと思いませんか?
間違えたブランチで実行してしまったら元に戻せませんね。
2017/03/26(日) 13:43:28.99ID:7dOJEWlC0
正しいブランチでやり直せばいいだけ
2017/03/26(日) 14:18:20.64ID:+CTQx9f50
>>345
元に戻すためのgitでしょ
2017/03/26(日) 14:31:55.91ID:+VpcfeLe0
マージ失敗したらdropされずに残るので、やり直せる
マージ成功ならもう一回stash saveも出来る

万が一?pop後にファイルをresetしてもコンソールを閉じていなければdropしたコミットハッシュが残っているはず
億が一それも消しちゃってもfsckで到達不能なコミットを探せば復元可能
間違って消す方がむずい
2017/03/26(日) 15:41:48.18ID:+CTQx9f50
大抵の手違いは元に戻せるのがgitのいいところなんだけど
ファイルスタンプを戻すのだけはなぜかできないんだよな・・・
2017/03/26(日) 15:49:48.61ID:7dOJEWlC0
ファイルスタンプは手違いで発生するものじゃないからねw
手違いじゃないのだから戻さらないというのが
正しい動作。
2017/03/26(日) 16:34:52.44ID:ns//jG8c0
またお前か
352デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/26(日) 19:08:55.12ID:K0FPpjuZ0
東京電力の新会長に日立製作所の人間が就任
2017/03/26(日) 20:18:09.67ID:HpKD8Qm70
>>352
git終了だな
2017/03/26(日) 20:59:01.54ID:oEHJolMv0
いつまでタイムスタンプの話続けるの?
欲しいやつはgit logから引っ張ってくればいいだろ
2017/03/26(日) 21:28:59.97ID:7dOJEWlC0
リーナスにタイムスタンプ入れるとかアホって言われたのが
よっぽど悔しいんだろw
2017/03/27(月) 00:02:27.22ID:Rc7q5+sM0
またお前か
2017/03/27(月) 08:45:42.95ID:DZ7KBqWQ0
インターネットみてると「マスターをチェックアウトして」とか
「マスターへチェックアウトして」とかいろいろな表現を見るけれど。
どれもマスターのブランチへ移動していることを示しているのがおかしくないですか?
今のブランチをチェックアウトしてマスターにチェックインするってことなんだから
前者はマスターから抜け出すことになるし、後者は意味不明になりますと思いませんか?
2017/03/27(月) 13:08:51.32ID:wTfMHfwZ0
君の日本語が意味不明
2017/03/27(月) 13:18:36.33ID:En3IMuBbp
自分がブランチに出たり入ったりするというのは斬新な見方だな。ホテルかよ。
リポジトリから指定のリビジョンのソースを(ブランチ・タグ・ハッシュ等で指定して)チェックアウトするんだよ。
後者は日本語に不自由なやつなだけだと思うが。
360デフォルトの名無しさん (スッップ)
垢版 |
2017/03/27(月) 15:24:31.02ID:FTQE7C/md
>>359
後者は「マスターをチェクアウト」と「マスターブランチへ移動」が混ざったんじゃ無いかな?
2017/03/27(月) 15:44:40.12ID:BGS+rNUAH
>>357
> 「マスターへチェックアウトして」とかいろいろな表現を見るけれど。
気のせいでは?

https://www.google.co.jp/webhp?sourceid=chrome-instant&;ion=1&espv=2&ie=UTF-8#q=%22%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E3%81%B8%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%A2%E3%82%A6%E3%83%88%22&*
"マスターへチェックアウト"との一致はありません。
2017/03/27(月) 15:48:03.74ID:BGS+rNUAH
ごめん、結構いたわ。

"masterにチェックアウト"
約 724 件 (0.45 秒)
2017/03/27(月) 16:32:28.67ID:DZ7KBqWQ0
コンフィグのここで疑問なんだけど
[branch "master"]
remote = origin
merge = refs/heads/master
ここで、なぜmerge = origin/masterじゃなんですか?
branchマスターが追跡しているのはorigin/masterで
origin/masterが追跡しているのがrefs/heads/masterなので、
一段飛び越えていて変なんですけど。
2017/03/27(月) 16:37:48.22ID:4R4DHhDf0
ブランチを切る ってどっちの意味?
作成する? 削除する?
2017/03/27(月) 16:38:51.24ID:DZ7KBqWQ0
もしかしてrefs/heads/masterはローカルを指していて
デフォルトでmasterでpullすると別のブランチのところにmergeされるってこと?
それがなにの役に立つというの?
2017/03/27(月) 16:39:30.52ID:LarKYmAi0
小切手を切ると同じ意味
2017/03/27(月) 16:43:59.37ID:BGS+rNUAH
>>363
それは、ローカルのファイルシステムのパスです。
https://git-scm.com/book/ja/v1/Git%E3%81%AE%E5%86%85%E5%81%B4-Git%E3%81%AE%E5%8F%82%E7%85%A7
2017/03/27(月) 17:41:44.24ID:DZ7KBqWQ0
refs/heads/masterはリモートを指してるらしい、
そしてpullで初めにfetchしたときにrefs/heads/masterがfetchしたなかにあると
refspecで調べてorigin/masterに変換して今のブランチにmergeするらしい
369デフォルトの名無しさん (スッップ)
垢版 |
2017/03/27(月) 18:23:11.66ID:FTQE7C/md
>>368
refs/heads/masterが、masterという名前のブランチの正式表記で、originのリモートリポジトリの別名表記ってだけじゃないの?

tagにも同じ名前を付けられるからコンフィグは正式名称の方が都合がいいし、
リモートリポジトリは参照するサーバーやリポジトリパスが変わることもあるし、同時に同じリモート名は付けられないから別名表記の方が都合が良い
ってことだと思うけど。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況