Git 20 (530レス)
1-

177: (ワッチョイ bf0f-dt5O) 2024/12/11(水)01:50 ID:Y83IEE6u0(1) AAS
このスレ痛いやつ多いのな
↑とか
178
(1): (ワッチョイ e77b-BDa8) 2024/12/11(水)08:49 ID:bZvW/lze0(1/4) AAS
>>175
> 変更履歴用ならどこがどう変わったのかを表示する機能がないことに疑問を持たないのだろうか。
それはdiffで十分だし、しかもGitの場合はdiffを内包してしまってる(俺はこれにも反対)

だから不満があるとするならバイナリか?(Excel等を含む)
勿論これは対応してないだけだし、
また、対応するにしても、Gitが直接差分を出す「モノリシック」ではなく、
「プラグイン」で各社が自社アプリ用の差分出力ツールを供給出来る形態にするのが正しい

VCSから各種diffを直接出力すべきと考えるのは間違いだと思うぜ

>>176
そうだとしてもLinux以外にないわけだが、

> カーネルに次々と新しいバグを追加する
これはポリシーというか戦略が違ってて、「今より少しでも改善するなら採用」だからじゃないかと
従来型の「最低限のクオリティに達するまではreject」へのアンチテーゼでもあるから
そして(文句あるかもしれんが)カーネル開発者は元々のエンジニアの質がそこそこ高かったからそれでも何とかなったものの、
同じ事をGitでやったからあの「ぼくがおもいついたすごいこまんど」の山になったのだと思う
交通整理すらやる気無かったわけだ

とはいえ、「使われなくなったコマンドは、いつしか動かなくなった事すら認識されなくなり、死んでいく」という、
Gitコマンド内でのライフゲームをやるつもりなら、ありなんだろうさ
厳選されてるように思えるunixコマンドだって、レイヤーが1つ違うだけで同じライフゲーム状態だし
179
(1): (ワッチョイ 2772-s3+3) 2024/12/11(水)09:57 ID:34XO7K6O0(1) AAS
お前よりAIのほうが賢いんじゃね?
画像リンク

180: (ワッチョイ 7fbb-rdwU) 2024/12/11(水)12:19 ID:+nAxu/ku0(1/3) AAS
git を始めとして最近のVCSは著者(author)とか承認者(commiter)とかの由来を管理するけど、所有者(owner)とか所属グループ(group)とかの現状は管理しない

管理の粒度もファイル単位ではなくて変更点単位

「バックアップ」という言葉の使い方次第だが次元の違うものを管理してるというのは最低限の事前知識
181: (ワッチョイ 67e6-s3+3) 2024/12/11(水)12:25 ID:JMogi+gN0(1/2) AAS
GitHubを容量無制限のファイルバックアップ置き場として紹介しているサイトもあるけどな
182
(2): (ワッチョイ 875c-QLAB) 2024/12/11(水)12:45 ID:kPp0f2Rs0(1/2) AAS
>>161
タイムスタンプがそうなっている理由はプログラマならわかるかと。

makeとかのビルドシステムがファイル更新をタイムスタンプで判定しているんだから、gitが書き換えるごとにタイムスタンプが新しくなるのはビルドシステムを考慮したら当然の話。
タイムスタンプを勝手に書き戻したら再現困難なバグになるから、採用は無いだろうね。
183
(1): (ワッチョイ 67e6-s3+3) 2024/12/11(水)13:21 ID:JMogi+gN0(2/2) AAS
自分もタイムスタンプは戻してほしい派
その手のビルドツールって、なんで「タイムスタンプが古くなってても更新扱い」にしてくれないの?
184
(1): (ワッチョイ 7fbb-rdwU) 2024/12/11(水)13:29 ID:+nAxu/ku0(2/3) AAS
1バイトも更新せずにタイムスタンプだけ更新したら、それも記録すんの?
そのタイムスタンプ更新の著作権は誰に所属するの?
コミッタはそれを確認して承認作業するの?
古いパッチの再利用したら日付が昔に戻るの?
ブランチ統合したらどっちの日付が採用されるの?

アホらし過ぎる議論
ファイルのバックアップは別に取れ
185: (ワッチョイ df3c-lhhN) 2024/12/11(水)17:38 ID:HXU8Fpor0(1) AAS
>>169
今話してるのは質問がGitをバックアップに使ってると勘違いしてる人たちだから無視していいよ
他の人は>>99でやりとりが終わってると分かってる
186
(1): (ワッチョイ e77b-BDa8) 2024/12/11(水)18:37 ID:bZvW/lze0(2/4) AAS
>>179
それは「現時点でもGitはバックアップツールとして十分使えます」と言ってるんだがお前はそれで良いのか?

>>182-183
つ make distclean

>>184
回答を期待してるわけではないだろうが、俺が今思いついた範囲なら、

1バイトも更新せずにタイムスタンプだけ更新したら、それも記録すんの?→古い日付のファイルに戻してからcommitしろ(或いは「内容が同一のファイルは非更新扱いにする」オプションをcommitコマンドに追加するからそれを使え)
そのタイムスタンプ更新の著作権は誰に所属するの?→上記なので関係なし
コミッタはそれを確認して承認作業するの?→同上
古いパッチの再利用したら日付が昔に戻るの?→パッチを当てた日になる、つまり戻らない
ブランチ統合したらどっちの日付が採用されるの?→マージ時に変更されたファイルはマージした日付になる

これで別段大して問題ない気がするが

まあ日付を保存する事について技術的問題はないと思うけど
Linusがわざわざ外したんだから、政治的な問題はあって、採用はされないんだろうけどさ
(全世界からメール等で連絡受けてたLinusは、テメエのローカルタイムなんて知るか!!!とブチ切れ、
タイプスタンプでの連絡が出来ないように作ったと予想)

が、多分根本は、形式主義者か現実主義者か、といったところか
形式主義者: GitはVCSであり、それ以外の使い方をしてはならない
現実主義者: 機能が揃ってればラベルがどうであれ使う
 つまりGitもバックアップツールとして使えるし、
 GitHubは容量無制限のファイル置き場だし、
 git clone GitHubのURL: が現状一番簡単なデプロイ方法であるので、Gitはデプロイツールでもある
 (ただし目的外流用だから色々機能が揃ってないが、それでも他ツールよりマシなら使うだけ)
187
(1): (ワッチョイ 875c-QLAB) 2024/12/11(水)19:28 ID:kPp0f2Rs0(2/2) AAS
>>186
開発者に「俺達の利便性のために、お前らはチェックアウトするごとに手動でcleanして一からビルドしろ」と言ったらさすがに傲慢かと。

gitはプログラム開発者がソースコード管理のために用意したツールだから、開発者にとって百害あって一利無しの機能が入ることは無いんじゃないんかね。
188
(1): (ワッチョイ 47dd-s3+3) 2024/12/11(水)20:38 ID:WFtEMDpk0(1) AAS
>>182
Subversionには、ファイルのタイムスタンプをコミット日時にする設定はあるけどな
もちろん、makeを使うような人には危険な機能だが、それなりの要望はあったのだろう
189
(1): (ワッチョイ e77b-BDa8) 2024/12/11(水)20:46 ID:bZvW/lze0(3/4) AAS
>>187
それはお前が傲慢すぎ

元々makeはインクリメンタルビルドの為のツールで、
Git以前からC界隈ではほぼ100%使われてたし、勿論Linusも使ってたはず
make clean; make distclean; は常識であり、知らない奴は死ねレベル

ただし通常はそもそも clean する必要がない
clean はだいたい rm *o だが、そもそも中間ファイル(*.o)は tar ボールには入ってないので、自分で make しない限り存在しない
だから「同一ディレクトリで『再度』makeしなおす」前に make clean であって、初回はやる必要がない
つまり「何度もビルドし直す」実際の開発者向けの機能であり
「ソースをダウンロードして一回ビルド成功したら終わり」のユーザーはどのみち clean なんてやる必要がないし、知らなくていい

これがGitの普及で毎回全部リビルドがデフォになっており、
君のように勘違いしてたり、あるいは makefile 内の clean が機能しなくなってる(メンテされてない)、という可能性はある
或いは、この辺の行き違いがLinuxで相当数発生し、『常に全部リビルド』するようにLinusが作った、という可能性もある
(Linus発言見てる限りは「タイムスタンプじゃなくてちゃんとコメント書けやボケ!」のように感じるが)

ただまあ、どのみちお前らのような、現状のGitに満足してる連中にはどうでもいい事だし、
俺ならタイプスタンプは戻すし、Gitにはコミットせずにフォークして勝手に作る
勿論気に入らなければ使うな、タイムスタンプ戻したければ勝手に使えだし

ただお前ら、繰り返すが
> それを思いついたやつは今までいない (126)
とか考えるのがとにかく傲慢すぎるんだよ
自分以外は超絶馬鹿としか思ってない奴しかこんな発言はできない
実際には、考えた上で、違う選択になってる
「タイムスタンプも保存した方がいいのでは」という提案を、これまで世界で誰も思いつかなかった、なんて事はあり得ない
Linus自身も最初から分かってて、敢えて落としてるんだよ
で、本来は、その落とした理由が分からないと地雷を踏むだけなので確認すべきなんだけども、
Git信者共はポジショントークを繰り返すだけでクソ使えねえ、
まあどのみちrejectされるのは分かり切ってるのでやるならフォークしかない、といったところ
190
(1): (ワッチョイ 7fbb-rdwU) 2024/12/11(水)21:17 ID:+nAxu/ku0(3/3) AAS
何も分かってないやつがいて草

タイムスタンプは過去には戻らない未来に進むだけ、という前提で多くのツールが設計されてる make もそう
この前提を壊さないように配慮することが大原則で git のみならず unix 系のツールは設計されてる
バックアップからの復元はこの前提を壊して過去に時間を戻す行為なので特別な時にのみ使うもの
191: (ワッチョイ e77b-BDa8) 2024/12/11(水)21:35 ID:bZvW/lze0(4/4) AAS
>>190
zipやtarは普通にタイムスタンプは保存されるだろ
その延長で考えるなら、保存された方が自然だし有用だ、というだけ

ただまあ、これも合意する必要はない
フォークしてどちらがウケるかで決するフォーク主義が正しいし、ユーザーは好きな方使えば済むだけ
(現実的にはcp -p と同様にオプションで切り替えるのが普通で、
逆に言えばオプションすら存在しないGitは何らかの「意図」をもってそうしてるとも言える
理由は今のところ不明なので思いつく人はよろしく)

まあ心配せずとも、Linuxカーネルにコミットしてくる連中で、make clean を知らない奴なんて一人もいないよ
(だから多分問題はここではない)
192: (ワッチョイ 7fbb-rdwU) 2024/12/12(木)00:21 ID:C7R5gozk0(1/2) AAS
git pull した後に make clean とか git 使ったことないのが丸わかりだな
何のための make だよ?
193: (ワッチョイ 4768-u/4x) 2024/12/12(木)01:11 ID:2Npzz1EV0(1) AAS
負け組のためのだろ
194
(1): (ワッチョイ 5f8e-QLAB) 2024/12/12(木)08:57 ID:yWChnlb80(1/2) AAS
>>189
「俺はタイムスタンプの管理をgitでやりたいから、お前らはチェックアウトするごとにmake dustclean しろ」と言ったら、温厚になったLinusでもさすがに罵倒するかと。

gitはLinusがlinuxのソースコードを管理するために作ったツール。今もメインユーザーはLinux開発者で想定利用シーンもLinux開発なんだから、「Linux開発者の足を引っ張る機能」を追加するのはディレクターの正気を疑うレベルですな。
195: (ワッチョイ 7fbb-rdwU) 2024/12/12(木)09:15 ID:C7R5gozk0(2/2) AAS
>>194
いや linux とか Linus とかもはや関係なく全プログラマー大爆笑案件だろ
git pull で同期したら日付が過去に戻りましたとか全員が git の使用やめるレベル
196
(1): (ワッチョイ 67e6-s3+3) 2024/12/12(木)09:16 ID:OOlmzVQX0(1) AAS
外部リンク:stackoverflow.com
PythonやPerlを使う人には、makeのためにタイムスタンプが失われるのはいい迷惑だと言われてるな

今さらリポジトリにメタデータを埋め込むのは難しいにしても、
gitconfigで>>188くらいさせてくれてもいいのにとは思う
197
(2): (ワッチョイ e7c8-iSwO) 2024/12/12(木)15:16 ID:d+ZuY6W00(1) AAS
>>196
当然だが既に同じことを考えてパッチしてた奴が居たか
> Linus' rationale of timestamps being harmful just because it "confuses make" is lame:
189に書いたようにこれはないと思ってたが、マジだったとは
makeで問題になる場合って、
makeした同じディレクトリでより古いバージョンでソースを上書きしてcleanせずにmakeした場合、
に限られるのでLinus以外はほぼやらねえし、Linusがmakeの使い方知らんわけねえし、ねえわと思ってたが、
自分専用ツールだからカスタマイズ済みの感じか
とはいえ謎の地雷があるわけではなさそうというのは分かった、ありがとう

普通に考えれば、保存した上で戻す際にオプションで選べるようにしておけばいいだけなのだがな
この辺Gitは無駄に押し付けがましいのが意識高い系と被るし、
だからこそ連中とも親和性が高く、このスレにもそういう奴が多いのだろうけど

用途は考え方の違いで、(俺がそういう使い方をするわけではないが)
cron に commit させとけば、VCSはバックアップツールとしても使えて、
偶に過去バージョンにパッチ当てる際は branch すればいいのだから、
一本線しか許されないバックアップツールよりはソースコードのバックアップには向いているというだけ
ただHgなら保存されるのか?なら俺はそれでもいいんだが
(料理の腕前で勝負してるのに、整理棚に必要以上にこだわっても本末転倒)
198: (ワッチョイ 27bb-s3+3) 2024/12/12(木)15:21 ID:JM/xCx8/0(1) AAS
料理の腕前で勝負してるつもりならさっさとWitBucketとやらを作れよ
199: (ブーイモ MM8b-dt5O) 2024/12/12(木)16:33 ID:d0NKDmelM(1) AAS
>>197
ChatGPTで3行に縮めて投稿しろ
200: (ワッチョイ 5f8e-QLAB) 2024/12/12(木)18:58 ID:yWChnlb80(2/2) AAS
>>197
>Linus以外はほぼやらねえし、

「gitはLinusがLinux開発で使うために作った」という大前提を忘れるのはアルツハイマー病の一種かしらん?
201
(1): (ワッチョイ 7f10-f5HH) 2024/12/14(土)10:34 ID:mefXJp+A0(1/2) AAS
Gitの使い方というかSourcetreeの使い方というか質問があります

とある1コミットに複数ファイルがあって複数個所に変更がまたがってて
別ブランチにそのコミットの1ファイルの1部分だけをマージしたいです
その場合はチェリーピックは使えないので1部分のHunkをステージングに移動して
コミットするという方法が素直なマージ方法でしょうか?
202
(1): (ワッチョイ 7fbb-rdwU) 2024/12/14(土)11:43 ID:kPFQFgKW0(1) AAS
>>201
採用元が push 後とか他人のコードだとそんな感じかな
私だと cherry-pick してから巻き戻し修正するけど、複数パッチなら rebase -i で edit を使う

採用元がローカルにしかない push 前なら元のコミットを分割しておくのが良い方法だろう
将来的に再利用するときにも別々に利用する可能性があるものは、今のうちに別パッチに分割しておくのが賢いと思う
203
(1): (ワッチョイ 7f10-f5HH) 2024/12/14(土)11:54 ID:mefXJp+A0(2/2) AAS
>>202
回答ありがとうございます
まさに他人がプッシュしたものを派生ブランチにも適用させようとしています
その中に特定ブランチの対応分も混ぜてしまっていたため
どう対応すべきか質問した次第です
コミット分割は癖にしておきたいと思います
204: (ワッチョイ 87f0-gWKG) 2024/12/14(土)14:22 ID:jFwYZGRF0(1) AAS
ろくに開発経験ないやつがgitの仕様はグダグダとか言ってるのまじで面白いな
205: (ワッチョイ dffd-thkz) 2024/12/14(土)19:07 ID:cLbKsfdN0(1) AAS
>>93の質問以降まともだったのは96、97、99、101、107くらいしかいなかった
7bは置いとくとしても100レスも使ってこの体たらくとは情けない
206
(1): (ワッチョイ 4a97-66FK) 2024/12/15(日)22:01 ID:D9xraIFr0(1) AAS
>>178
diffでわざわざ比較するというのは時間の無駄
1-
あと 324 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.019s