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/04/29(土) 13:10:29.98ID:wQSInbL00
>>706
あとね、バイナリエディタでファイル開いてもファイル名とか格納されていないよ
だから格納されてるされてないで重要度は判断はできない
2017/04/29(土) 13:14:56.03ID:u4T6eHTd0
>>708
だからtarを使えば良いのでは?

ソースコードのバージョン管理をしたい時に
tar使っても過去の履歴がないのは、tarの機能が低いんじゃなくて
アーカイブツールだから。専用のソフトを使うのが一番適切
711デフォルトの名無しさん (JP)
垢版 |
2017/04/29(土) 14:52:55.32ID:D/W8thCKH
所有者やアクセス権整理するスクリプト書いて一緒にコミット汁
2017/04/29(土) 15:15:45.56ID:uMWscgROM
>>708
Linux で作成して Windows で展開しても所有者が保存される?
2017/04/29(土) 18:08:58.31ID:awogmL8Y0
秋田
2017/04/29(土) 23:12:33.25ID:O2AdtwVJ0
>>708
/直下にファイルをずらずら置いておいても困らない例なんていくらでもあるけど
Gitを何に使いたいのかな?具体的な利用方法を言ってみてよ
他のツールでできることがGitでは出来ない、ではなく、ユースケースで言ってみて

言えないならさようなら
2017/04/29(土) 23:37:08.61ID:FuTLeYzk0
またこいつか
2017/04/29(土) 23:38:53.95ID:jlBbI1A10
tarでファイルに他人に所有権のファイルが有った時、
自分のホームディレクトリ以下に展開した時
他人のファイルが出来ちゃうの?
それって危険だよね。tarの脆弱性か
717デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/04/30(日) 00:39:57.06ID:stNMbg2v0
tarはファイルの所有者情報を記録するけど
普通は、展開するときに所有権情報まで一緒に展開しない
展開したユーザの所有権で展開される

システム管理者がスーパーユーザ権限で作業するときぐらいだよ
記録された所有者情報を使うのは
2017/04/30(日) 01:22:11.27ID:9gQ91qOn0
>>714
なんのためにディレクトリがあるのかわかってる?
gitはディレクトリ情報は保存するぞ
2017/04/30(日) 03:52:31.39ID:qsFul2YM0
言えないからさようならw
2017/04/30(日) 04:25:21.95ID:GoGMStRX0
>>718
そうやって煽ってもいい加減つまんないぞ
2017/04/30(日) 11:09:52.78ID:CJ1bT41aM
どうみても >>714 の方が煽りだろ
2017/04/30(日) 11:38:11.27ID:U/xvgYsy0
タイムスタンプと寸分違わず同じ流れでよく飽きませんね
2017/04/30(日) 12:20:34.09ID:VPr4LyhYH
この程度で飽きるならとっくに2ちゃん辞めてる
2017/04/30(日) 13:39:58.71ID:STBPt1Jg0
そもそもタイムスタンプ問題は何も解決していない
725デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/04/30(日) 13:46:17.20ID:kmaYjpOe0
解決もなにもそんな問題自体ないから
2017/04/30(日) 13:47:51.58ID:STBPt1Jg0
そういうことに、したいのですね。

 ヘ_ヘ
ミ・・ ミ  
(   )〜 あさから よかいち
727デフォルトの名無しさん (JP)
垢版 |
2017/04/30(日) 14:11:44.10ID:VPr4LyhYH
git checkout -b void
2017/04/30(日) 14:12:49.53ID:ubyMNxSN0
git branch -d void
2017/04/30(日) 14:53:45.28ID:stNMbg2v0
error: The branch 'void' is not fully merged.
If you are sure you want to delete it, run 'git branch -D void'.
2017/04/30(日) 14:56:49.20ID:ubyMNxSN0
git branch -D void
2017/04/30(日) 22:29:42.03ID:kMpmo3Sg0
rebaseして失敗したら追加したファイル全部なくなったんですが、復旧できないですか?
2017/04/30(日) 22:41:16.00ID:aHkcW8aG0
rebase --abortすりゃいいだろ
すげー楽だよ。gitは失敗が怖くない。
2017/05/01(月) 10:20:41.89ID:ujE6Bxy4H
>>698
例えば、creatorがWindowsユーザだったらどうすんの?
2017/05/01(月) 11:23:05.58ID:hzoMRY/LH
>>732
ありがとう
2017/05/01(月) 11:23:48.63ID:hzoMRY/LH
>>733
umaskじゃね
2017/05/01(月) 11:46:07.72ID:ujE6Bxy4H
>>735
意味がわからない
737デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/01(月) 16:39:04.61ID:cTnhqS2C0
どうすんの?じゃなくて、なんですんの?を誰も言わない所が共通してるね。
2017/05/01(月) 16:50:48.82ID:ujE6Bxy4H
なんでは明らかでしょ
それを知りたいから
739デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/01(月) 16:57:26.26ID:hDYaKlR40
そうだね
タイムスタンプはどうでもいいけど
アクセス権は元に戻ってほしい
2017/05/01(月) 17:01:09.54ID:ujE6Bxy4H
ownerとpermissionをごっちゃにしてるんすかね
741デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/01(月) 18:17:41.10ID:cTnhqS2C0
>>738
所有者を復元するという事の何を知りたいの?実装方法?手段が目的な人?
2017/05/01(月) 18:40:03.38ID:UnFVzn0bp
そんなことより次のネタ予想しようぜ
2017/05/01(月) 18:40:27.76ID:UGeh3nSfM
「どうしてそうしたいの?」とやたらに理由聞きたがる人が出てくるけど
彼らはなにがしたいんだろうか。
第三者が理由を聞きたがる理由がわからない
2017/05/01(月) 18:41:49.90ID:ujE6Bxy4H
>>741
何言ってるんでしょう、この人

誰も目的を聞かないというから、目的は明確でしょうと言ってるのに
2017/05/01(月) 18:42:03.79ID:tRarccr20
そんなことしても何の役にも立たないのになんでやりたがるんだ?
って言うのをちょっとオブラートに包んだだけだろw
746デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/01(月) 19:19:27.44ID:63wSkuUp0
北朝鮮に何でミサイル撃つんだって聞く方が判り易い
2017/05/02(火) 01:00:12.88ID:NO5OoAYe0
>>743
「〇〇の機能が欲しい」というのは、大抵「□□という差し迫ったシチュエーションで問題を解決したいから、〇〇の機能が欲しい」という形に言い直せて、
そして、「□□での問題解決するには、実は〇〇という機能でなく△△という機能を使ったほうがもっと良い」ということが往々にしてあるから。

というか、「〇〇の機能」の実装にあたって、実際には〇〇の機能をただ追加するだけじゃ済まなくて、既存の☆☆機能との整合性はどうするか、とかそういう部分も考えなくちゃいけないから、
仮に新機能を実装するとしても、「どうしてそうしたいの?」という問いは重要であろう

建築家が「トイレが10個ある家にして」と注文されたら、どうして10個必要なのか聞くでしょ。そして理由によって10個をどのように配置するか、トイレの内装なり便器なりを細かく決めていくでしょ。
それと同じことだよ。

自分にとっては自明だと思っているのかもしれないが、普通にどういう状況でその機能が欲しいかわからないから聞いているだけなんだけどな。

Gitはファイルシステムとかアーカイバ、バックアップツールとしてデザインされているわけじゃないから、それらの代替として使おうとしたら色々問題があって当たり前
それでもGitを使いたいんだとすれば、それらの用途にGitを使う意味を何か見出しているんだと思うんだけど、そこをどういう風に把握しているのかわからなければ解決策も考えられないよ
Git以外のもっと便利なツールを紹介できるかもしれないし。
Git含めどんなツールも銀の弾丸ではないんだからあらゆるものにケチつけようと思えばケチ付けられるわけで。だけどそれは生産的な行為だとは思えない。
748デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/02(火) 04:27:52.05ID:A1aerigX0
>>747
マジメかっ
749デフォルトの名無しさん (アウアウウー)
垢版 |
2017/05/02(火) 09:40:45.97ID:lmunJWcIa
>>747
gitが本気で便利なら3行でまとまるはず
2017/05/02(火) 09:50:02.99ID:Spp7QSKK0
> gitが本気で便利なら3行でまとまるはず
どういう理屈で?
2017/05/02(火) 10:13:57.00ID:icdrLzQNH
>>747
ファイルごとに履歴を先頭まで遡れば誰がaddしたのかわかるわけで、家にトイレ10個レベルの違和感わない
2017/05/02(火) 11:11:09.66ID:fJzwGtxI0
>>747
ケチをつけずに質問にだけ答えろよ
お前の方が口先ばかりで生産性無いぜ
753デフォルトの名無しさん (オッペケ)
垢版 |
2017/05/02(火) 12:16:53.78ID:zy/cUdw9r
教えたがりの屁理屈w
754デフォルトの名無しさん (スプッッ)
垢版 |
2017/05/02(火) 12:20:00.45ID:QzQj3NgLd
>>751
マージした内容は行単位で辿れるのに所有権はファイル単位なのは整合性が取らなくないか?
またgitのlogはファイルの履歴ではなくファイルの内容の履歴を追う
この機能ともファイルの所有権の管理はそぐわない
755デフォルトの名無しさん (スプッッ)
垢版 |
2017/05/02(火) 12:21:04.39ID:QzQj3NgLd
>>752
第三者が理由を知りたがるのは何故か?という質問に見事に答えてるだろ
756デフォルトの名無しさん (スプッッ)
垢版 |
2017/05/02(火) 12:22:22.79ID:QzQj3NgLd
>>749


2017/05/02(火) 12:56:47.50ID:icdrLzQNH
>>754
> またgitのlogはファイルの履歴ではなくファイルの内容の履歴を追う
git logでは"Author"が表示されるが?

> この機能ともファイルの所有権の管理はそぐわない
管理しようという話じゃない
念のため言っておくが、「ファイルの所有権」の定義の話をしたいわけでもないぞ

git commitの日付を復元したいとか、ファイルの最終更新日を復元したいとかいろいろ
人によって異なるだろうが、それは単にそれを知りたいからだ

なんで人がそうしたいのか、お前の好奇心を満たさなきゃらなないんだ?
2017/05/02(火) 13:45:19.47ID:QUjyp23BM
>>757
そのAuthorはファイルの所有者じゃないだろう
2017/05/02(火) 14:01:28.44ID:icdrLzQNH
>>758
えーと、git cloneしたら、ファイルの「所有者」は自分になるとかそういうこと言いたいんでしょうか
そういうつまんない議論したくないんですが
760デフォルトの名無しさん (ブーイモ)
垢版 |
2017/05/02(火) 14:57:07.98ID:ciC4yh5PM
>>759
git log で表示されるauthorはファイルのownerでは無くて
コミットした人のconfigで設定されていたauthorが表示されますよね?
2017/05/02(火) 14:59:04.67ID:fJzwGtxI0
>>759
ファイルの所有者の話から始まっているんですよ
口をはさむなら最初から読んでください
762デフォルトの名無しさん (ブーイモ)
垢版 |
2017/05/02(火) 15:05:45.32ID:ciC4yh5PM
>>761
おまえファイルの内容の履歴の意味がわかってないだろ
763デフォルトの名無しさん (スプッッ)
垢版 |
2017/05/02(火) 15:12:56.04ID:QzQj3NgLd
>>757
git blame
してごらん
各行毎にどのコミットに由来するかが表示される

gitにとってコミットが責任の単位なんだよ
2017/05/02(火) 18:08:53.38ID:8dDxRnsR0
>>339
重い
調べたらgitkrakenっていう別ソフトがあるのでこれから試してみる
https://www.gitkraken.com
2017/05/02(火) 21:23:12.72ID:1BL9yepd0
SourceTree2.0になって軽くなったんじゃなかったっけ
2017/05/03(水) 00:02:44.72ID:/FJiuNZS0
バージョン管理で重要なのはファイルの所有者じゃなくて
コミットした内容の所有者というか修正者である。

そのソースコードを誰にあげましたとかいらない。
誰が修正しましたかが重要。しかもメールアドレス付きでね。
重要ならば署名までつけられるしすごいことだよ。

という事で話は終わりじゃね?
767デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/03(水) 01:16:42.02ID:Bt9tKgiK0
masterとリリース用って分けるのが普通?
768デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/03(水) 01:40:20.24ID:jU3FK0a/0
>>767
運用によるgit flowとかgithub flowとかでググれ
2017/05/03(水) 01:47:58.83ID:R+sft0vk0
>>764
どんな塩梅? 日本語使える?
2017/05/03(水) 02:05:05.99ID:Bh8bh08M0
>>757
好奇心ではない、適切な解決策を見つけるために理由を聞いているのだ、と明確に書いたつもりなのだけども。
所有者を保存しておきたい理由が一般的なソースコードのバージョン管理の必要性からはわからず、なぜ保存したいのかわからなければ適切な解決策が提案できないとも書いているんだけども

目的の為に手段を考えるべきで、所有者の保存というのは手段にすぎない。そしてその手段は特にソースコードのバージョン管理を行うという観点からして素直に実装できるものではない。
その目的が「人によって異なる」時点で適切な設計を定義するのが難しくなるだろ。ツールの機能として実装するには、どんな人でも大抵同じ理由でその機能が欲しい、とならなければ細部まで設計できない。
2017/05/03(水) 05:12:21.76ID:B4kcC+3m0
筋が悪いことを延々と主張する人っているんだな
2017/05/03(水) 11:28:03.91ID:xkQWxFrsd
sidやuidのことなら、それはマルチユーザー環境やファイルサーバーなんかでアクセス制御に関連して備わっているもなので、趣旨の異なるgitで保持してもゴミ情報
単なる数字列を見て何ができるんだか
773デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/03(水) 14:11:26.51ID:eMP4zE8M0
guidは糞
2017/05/03(水) 14:32:23.88ID:/FJiuNZS0
>>766
で問題解決したようですね。

バージョン管理で重要なのはファイルの所有者じゃなくて
コミットした内容の所有者というか修正者である。
2017/05/04(木) 05:57:28.02ID:sUxNesMD0
rebaseが強力すぎて、昨日は1日中コミットコメントの修正やってたわ
2017/05/04(木) 08:19:48.19ID:Pg1JSwdjp
実に素晴らしいGWの使い方ですね
2017/05/04(木) 15:10:39.35ID:CGBB8kU5M
誰がコミットしたファイルか
なんて情報は開発中にしか使わないでしょ?
デプロイ時にはパーミッションや所有者情報のほうがずっと大事だし
それらがいつよ間にか黙って消えて無くなるのは辛いことだよ
2017/05/04(木) 15:26:38.42ID:pmL645Ea0
>>777
所有者とパーミッションは設定スクリプトを書けばいい
779デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/04(木) 15:27:35.91ID:TekYC6Iv0
Unixじゃパーミッションやグループやオーナはデプロイ時に設定するのが一般的だな
特にオーナとグループはデプロイするローカルな環境に依存していてパーミッションの効果に影響するから
ソース管理でファイルが保持している情報をそのままデプロイするとかありえん
2017/05/04(木) 15:41:40.21ID:CGBB8kU5M
>>779
そのままデプロイするとかありえんって……
いつの時代の人なんですかね
781デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/04(木) 15:58:20.15ID:TekYC6Iv0
>>780
開発するときにはお前自身は書き込み可能なオーナーとパーミッションになってないと行けないけど、
それがデプロイされた環境でそのまま書き込み可能な状態になってたらクビだよお前
2017/05/04(木) 15:59:46.62ID:pmL645Ea0
正論
2017/05/04(木) 18:41:08.70ID:WxX6+QH80
そういやどうして実行権限だけ保持できるようになってるんだろう
784デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/04(木) 19:07:37.28ID:622MjM8c0
実行できなくなったら困るからじゃね
2017/05/04(木) 19:17:18.51ID:F88t7MBG0
>>783
そう言う風に作ってるから
git update-index --chmod=(+|-)x
なので指定できるのは実行権限だけ
2017/05/06(土) 00:33:44.71ID:+I3PGsM20
ほんと半端なつくりだよな・・・
787デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/06(土) 01:19:34.30ID:ev+w1J/D0
またお前か・・・
2017/05/06(土) 03:29:05.15ID:BjeRux9pp
gitに代わる最強のソースコード管理システム作ってくれてもええんやで
2017/05/06(土) 10:10:06.09ID:TwsseMKW0
Git使い方入門
https://www.amazon.co.jp/dp/4863542178/

お前らが喧嘩している間にGit入門書の決定版が発売されていたな
790デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/06(土) 12:35:49.55ID:ojKA7hlp0
もう3年早く出版してほしかった
2017/05/08(月) 11:12:58.66ID:2v3rAFCf0
>>789
今更入門書なんかいらないよ
卒業編を持ってこい
2017/05/08(月) 15:22:01.83ID:zqCx33pkH
>>789
読み物としては面白い
793デフォルトの名無しさん (ラクッペ)
垢版 |
2017/05/14(日) 11:49:06.33ID:e2rBnMzFM
ファイルの属性が無くなるのは仕様?
setuidしてたやつが動かなくなっちまったぞ
794デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/14(日) 12:05:24.56ID:J/7Z9g0V0
そう仕様
2017/05/14(日) 14:00:37.74ID:c+cCg3z4a
2.13が出たのにお前ら冷たいな
2017/05/14(日) 18:40:23.92ID:F69OObPm0
俺スゲエ、って自慢したいだけのネタさがしで本当はだれもGitなんて興味ない
2017/05/14(日) 18:50:46.97ID:pZ8yqHc90
ということにしたいんだけど、どう?うまくいったかな?
2017/05/15(月) 09:09:53.97ID:ITGYMTaF0
>>794
デフォルトの仕様ってことはわかった
設定で回避したいんだけど、どうしたらいい?
2017/05/15(月) 09:21:16.12ID:Rg+9vKeM0
どう仕様
2017/05/15(月) 10:40:45.14ID:1a1vOse20
hook でスクリプトじゃないかなあ
2017/05/15(月) 16:50:11.42ID:oS2RU2PiM
タイムスタンプはコミット時間で補完出来たけど
setuidの情報とかどこにもないから自分で保存して設定する仕組み作るしかないな
2017/05/15(月) 17:17:42.93ID:Dn3Q0/XD0
setuidはデプロイするシステム側でつけるんじゃないの?
2017/05/15(月) 17:22:44.87ID:ITGYMTaF0
>>802
テスト環境では直接gitでモリモリしてたけど良くないのか?
めったにいじらないファイルだったから気づかなかった
804デフォルトの名無しさん (スッップ)
垢版 |
2017/05/15(月) 18:06:52.29ID:VXPutR+gd
>>803
setuidの目的から考えると、gitの情報から復元するのは危険だろうね
2017/05/15(月) 18:59:30.87ID:ejKo8zg4a
>>799
仕様もない
806デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/05/20(土) 18:46:22.14ID:NsW7IlhH0
レスがないとは殊勝な
2017/05/21(日) 09:03:49.16ID:lI2AjJAk0
Windows上にリモートリポジトリ置いて、別PCにローカルリポジトリ(リモートのクローン)を置いたときに、
リモートへのpushができなくて困っています。
pull、fetchはできたのでパス設定は誤ってないのと思うのですが。。もし対処が分かる方いましたら教えてください。

------------------------------------------------------------------------------------
remote: error: object directory (リモートリポジトリ)/objects does not exist; check .git/objects/info/alternates.
remote: fatal: unresolved deltas left after unpacking
error: unpack failed: unpack-objects abnormal exit
To (リモートリポジトリ)
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to '(リモートリポジトリ)'
------------------------------------------------------------------------------------
2017/05/21(日) 09:26:50.23ID:lI2AjJAk0
一部解決。
別PC上のgitをバージョン上げたら、TortoiseGitからのpushに成功しました。

が、VisualStudioからのpushができない。。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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