◎正当な理由による書き込みの削除について: 生島英之とみられる方へ:
Git 20 ->画像>1枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1707958209/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
detached HEAD で血の気が引いた。
元 hg 使いを殺しにきてるな。
もじら関連に関わるような変人以外にそんなの使ってる奴いるのか?
TortoiseGitって、メッセージは空っぽのままで注釈付きのタグを作ることはできないですか?
Git 2.46-rc0 Continues Preparations For Switching To SHA256 By Default WIth Git 3.0
https://www.phoronix.com/news/Git-2.46-rc0-Released すいません、質問です
とある組み込みLinuxのシステムをgit管理する事になりました
対象は/home/user1/の直下の3つのディレクトリです
この3つをディレクトリ構成を変えずに、同時にバージョン管理することは可能でしょうか?
その3ディレクトリ以外は管理対象外にするような.gitignoreを書くだけでは
>>17 homeのユーザーディレクトリを丸ごとリポジトリにしてしまってもいいのでしょうか?
>>18 だってuser1直下のディレクトリ構成変えるのが嫌なんでしょ
乱暴だとは思うけど割り切ってこうするしかないよ?
PCがブルスクになって再起動したら、.gitフォルダが全く認識されなくなったけど、これもう終わりかね
git initしてもダメだった
結局PCもgitも関係ないところのエラーだったんだろうな
今開発中の2.48は浜野氏がメンテナーをしていない模様
GitHubとかのパブリックリポジトリをクローンしてログを見てみると、
ブランチを作らずに複数人がmainにばんばんコミットしてるものも多いんだけど、
ブランチを作る作らないはどういう基準で分けてるんだろうか
>>36 ローカルにブランチ切ってるんじゃないの?
>>37 どうやったらmainをこんな一直線にできるんでしょうか?
ローカルのブランチをmainにマージするときに、リベースとか使ってるってことですか?
>>38 当然 rebase するだろう
git なんのために使うと思ってるんだ
fork して branch してその branch を fork 元の main に対して pull request
merge したら main に合流
じゃないの
>>41 直前にもう一回 pull / rebase してから pull request しろや
メンテナに余計な手間かけさせるな
>>36 がブランチ無いって言うから解説してみたんだが
gitでファイルを管理したいです
というのも、あるide上で削除したファイルは完全削除になり、ゴミ箱に移動されません
またリドゥも出来ません
だから定期的にgitに保存して、そこから復元という形になるみたいです
しかし、例えば10秒に1回ファイル削除をした場合10秒ごとにリポジトリに保存しなければいけないのでしょうか
自動化はできそうですが、凄まじく面倒です
何も難しくねーんだから自動化すれば良いだろ
凄まじく面倒なんて言い訳は頭が悪いことを自白しているようなもんだ
gitの用途間違えてるよ
高頻度で削除するようなファイルを復元したがるケースがまず不明
どのIDEでどんなプロジェクトをどう運用してるか説明したほうがいい
本当に実現したいことに対して手法が間違ってる気がする
Gitの使い方のルールが明文化されていない職場が増えた
職場でのルールってことでしょ
Git自体にルールはないよ
>>44 そんなに頻繁にファイル消すてどういうプロジェクトなんだろう?
削除せずに、ゴミ箱的なフォルダに移動するとか、ファイルをリネームするとかで
どうにかならないの?
git は履歴保管箱じゃねーぞ
変更点の採用/不採用や再利用や順番の入れ替えなどをする道具だぞ
履歴の保管はそのための単なる手段だぞ
ファイル保管の道具と勘違いしてるやつが多過ぎる、特に他の VCS から移ってきたやつ
>>51 彼はIDEとGitの二重管理がしたいらしいが、二重管理そのものが良くないと教えてやってよ。
>>52 それはGitではなく、GitHub、GitLabなどのGitのホスティングサービスのことだ。
チェックインチェックアウト型の方が合う職場の方が多いけどgit原理主義者がジャマをする
ファイルを弄ろうとした瞬間にダイアログが自動で開いて
お前は一体何のためにこのファイルを編集しようとしているんだ?
と意図を聞いてくるようなguiのgitクライアントやエディタってないの?
コミット時のコメントを先に書くようなの
やることを明確にしてから手を動かす癖をつけるには悪くないアイデアだと思う
しかし強制力がないと結局煩わしいだけで終わりそうだから、宣言した内容から逸れるような変更をAIが検知して電気ショックを与えるような仕組みとセットだな
基本的に git はコードを書いてから、それをどのように他人に見せるか考える仕組み
最初に目的を書くとか git ではありえない
他の VCS 使え、無理して git を使う必要ないぞ
ステージが何のためにあるのか分かんない奴、ステージの便利さが分かんない奴は他のを使った方が幸せだと思うぞ
そりゃ暴論だな
Git自体は開発ワークフローではなくソースコードを管理するツールだから、UNIX的ミニマリズムの帰結でそうなってるだけの話で、
開発ワークフローとして先にコミットメッセージを決めちゃいけないわけではない
そういうワークフローをサポートする周辺ツールを作ればいいだけのことで、それを妨げるものは何もない
GitにはSVNのneeds-lockに相当するものはない
開発のスループットを上げるためにロックの考えは省いて競合解決はなるべく機械に頼る
そのあたりの思想やポリシーはリーナスが語ってたはず
彼が自分のために作ったツールだからそのあたり色濃くコマンドに現れてる
だがフロントエンドの開発を妨げるものはなにもない
必要だと思ったやつが自分で作ればいい
Git自身の思想とは別ベクトルを向いているので特殊でマイナーな用途のうちに入るから巷で誰かが公開してくれている可能性は低いかもしれないな
git の思想合わないのなら git以外を使えば良いのになんで git にこだわるんだろ
git は汎用ニュートラルなツールじゃなくて思想性の強いクセがあるツール、その分はまったら手放せなくなるけど
料理で言ったらカレー粉レベル、カレー味にしたくない時に使うのはお勧めできない
>>67 ないよ、だから自分たちの手法/考えにあったやつを使うべき
有名だからといって git 向いてないやつが git 使うのは不幸になるだけ
git は素晴らしいツールだけど万人向けというわけではない
>>67 何にだって濃淡はあるだろ
あるなしの二択でしか考えられない1ビット脳かよ
>>69 濃淡といっても濃いやつかすごく濃いやつかの違い
薄いやつは存在しない
もちろん自分の思想にあってれば空気みたいに感じて薄いと思うかもだが、他の人にとっては猛毒という個人差
>>70 うん、だから
>>63 はGitはかなり濃い目の部類って言ってるんだよ
いやわかるんだけどさ、適材適所にならずにgitが一番、git使うのが正しい、gitも使えないような奴ぁ、みたいにいらぬ波風を仕事で起こす迷惑な原理主義者が実際多いのよ
たかがソースコードのバージョン管理に適材適所とか多様性とか要らん
くだらん自転車置き場の議論で時間を無駄にするだけだから問答無用でgit一択でいい
ゲーム開発で巨大なアセットを管理する必要があるように管理対象の性質によって他を選ぶのは仕方ないが、
些細なワークフローの問題で他の選択肢を検討するべきではない
>>73 git 使う理由を考えろ
お前みたいな変なのがいるから、git でロックしたいだの、事前にコミット・メッセージ入れたいだの的外れなこと言い出すやつが湧いくことになる
git 使うんなら git のワークフローになるし、他のワークフローにしたいのなら他の VCS 使うべき
(全部が一緒に見えるアホはどれ使っても駄目だが)
Gitのワークフローなんてものは無い
個人の小規模開発では、手元のフォルダ上でデフォルトブランチにコミットするだけの使い方も多い
GitHub使ったクローズドな組織での開発では単一のリモードリポジトリで作業する中央集権型のワークフローが普通だ
一方で、OSSではフォークして互いにpullし合うのが一般的だろう
素のGitにはレビューやコメントもなければCI/CDもなく、マージやデプロイを承認するような機能もない
それらはあくまでGitと直行するものとしてGitHubによって自然な形で実装されたものだ
GitはLinuxカーネル開発のワークフローを前提として設計されたものではあるがGitそれ自体はワークフロー中立であり、
多様な使い方を受容することがGitがこれだけ広く普及した大きな理由だ
svnはバイナリも差分で保存してくれることは覚えといて損はないぜ
脳死でgit一択なんてこたーない
>>76 よく読んでくれ
俺は管理対象の性質に応じて選択することは否定していない
>>75 もっと大きな部分を考えろ
分散して手元で開発
複数の人が同じファイルを並行して作業
ロックを取らずにマージ時に調整
ステージングでパッチを読みやすく整形
リベースでチェインを整形
個別ロックのかわりにブランチを使う
みたいなのも全部ワークフローだ
git 使ってると当たり前過ぎて空気になってるだけ、中央集権とかだけがワークフローじゃない
Q. バッティングするといやなのでロック取りたいんだが
A. ブランチ切れ、自分専用ブランチならバッティングしない
Q. 作業開始前に今からする作業の説明保存したいんだが
A. ブランチ切ってブランチの説明を追加しろ
だいたい git のワークフローに適した代替のやり方がある
個人ごとで保管すべきものが何で、全員で共有すべきものは何か? という根幹の考え方が VCS ごとに違っている
だからそういう話だろ?
なんか勘違いをしているようだが、質問者はあくまでクライアントの話をしている
自分の手元で自分以外誰も見ないし触らないブランチでやる分にはロックしようと自由だ
>>80 ロックは自由だ
LとR間違ってないか? 何のため誰のためのロックの話?
だから
>>57の通り、メッセージを先に書きたいだけでしょ
そもそもロックしたいとは言っていないが、実装するなら少なくとも手元のブランチに対する排他制御は必要だろうね
いやブランチじゃなくてリポジトリに対しての排他制御が必要か
コミット前だからどうせブランチは切り替えられないもんね
補足すると、自分で重複して同じクライアントを起動することによる競合を防ぐことを目的とした、同一PC上の同一のクライアント自身に対する排他制御な
ソースコードの履歴管理上の排他制御とリポジトリ内部の整合性を保証するための排他制御がごっちゃになってない?
なんでGitはおかしな原理主義者出てきやすいのだろう?
そりゃGitの〜を使えばできます、は事実ですだろう
でも無理してなんでもかんでもGitでやる必要ないよなあ
どうも原理主義者くんはこの用途はこっちのバージョン管理ツールが合ってる、と言われるとGitにはその機能がない、と責められているように聞こえるらしい
git 以前にプログラミング向いてないやつがいるな
「ローカルでエディットしてるファイルを排他したいだけなら VCS じゃなくてエディタのロックの仕事」
って言われたら顔真っ赤にして反論するんだろうか?
git一択と言ってる奴いて草
これが原理主義か怖いねえ😱
日本人はやたら正解があることにしたがるが、外国人は正解が複数存在するという考えだから発展する。
>>85 > なんでGitはおかしな原理主義者出てきやすいのだろう?
馬鹿がイキるのに丁度良い複雑さだから
まともな人はコードに忙しくツールなんて出来るだけ疎かにするのもあって
>>90 思い出した。
専用のスレッド作ってもらっていて、2022/11/20だ。あれから2年か。
>>93 実行権限以外は管理されない、git は保存ツールやバックアップツールでなくてコラボツールなので読み書き権限の管理は不要
Windows 使いとかで実行権限がうまくいかない場合は core.filemode=true 設定とか、--chmod とオプションとかを使うと良い
>>93 なんかバックアップと勘違いしてる人多いよね。
複数のPCで使う前提なのにパーミッション管理して何したいの?って思う。
>>93 されないね 600の設定ファイルとかでよく出るGitのあるあるなんだけど設計思想なんでしょうがない
他のVCSには出来るものもあるんでそっちを検討するか、毎回シェルスクリプトを叩くか、置けるならGitのフックを使うか
それこそドットファイルの管理なんかでマージとかはあんまり考慮しなく出来るなら、rsyncみたいな世代バックアップのツール使ってもいいかも
perforceは出来るけどまああれだしな
後はそれこそRCSくらいしか思い浮かばないけど他になんかあったっけ
>>97 昔は、
新しいのは考え方や目的が違う、ファイル単位で読み書き権限の管理とかしたかったら今まで通りRCSとかCVS使い続けろ
って言うのが常識だったんだが
>>96 >>97 なるほどありがとう
そういうことならスクリプトでやるかな
>>93 それはOSが管理しているのであって、ファイルそのものにそういう情報があるわけではない。
んなこと言ったらファイル名もいらないって話になっちゃうぞ。
ファイル名はinodeではなくデータだとかいうツッコミは無しな。それこそファイルシステムの実装の都合に過ぎないんだから。
Gitがパーミッションを扱わないのはLinuxカーネル開発のソース管理においてそれを必要としないからで、それ以上のこじつけは必要ない。
xlsxとかxmlとしてバージョン管理できないの?しなくて良いのかもしれんが
>>101 git 出てくる以前から svn とか他の分散型でも実行権限しか管理しないのが常識だったから linux kernel のせいにするのは間違い
>>101 プレーンテキストにこのファイルの説明書が付いているという発想はなかなか思いつかないぞw
>>101 プレーンテキストにこのファイルの説明書が付いているという発想はなかなか思いつかないぞw
Windowsだってファイルにアクセス制御情報があるのではない。
DOSがディスクオペレーションシステムだと知っていれば、ファイルを管理しているのはOSで、ファイルがOSに指示しているという発想が出てくるはずがない。
必要な機能が欠けている、という事でしかないのでは。
実行権限だけ管理するというのもチグハグだし。
>>101 > それ以上のこじつけは必要ない。
完全に同意。
Git信者はGit一神教徒だから、Gitは間違ってない、間違わない、という前提で話をするからおかしくなる。
本当に間違ってないのであれば、更新する必要がない。ある意味CやHTMLがこれに近い。
Gitはツギハギだらけなんだから、パーミッションも今後は保存されるようになる、それの方が便利だから、というだけでよいのでは。
>>108 逆に git しか使ったことないやつがこういう戯言言うよな
最近のメジャーな VCS は実行権限しか管理しないのが普通なのに git 特有の仕様だと思い込んでる。git 以前からなのに
しかし教科書ではきれいにブランチだのフィックスだのと理想的なバージョン
管理が語られるが、会社でそれなりの規模になってくるとユーザーもいろいろだし
MSオフィスファイルや画像やとファイルの種別も多いのでほんとカオス化するなあ
もうやだ
>>106 だからその理屈だとgitが実行権限やファイル名を扱えることを説明できないでしょ
Linuxでは実行権限はメタデータだし、ファイル名はファイルではなくディレクトリのデータだ
Windowsではファイル名はアクセス権限と同等のメタデータの一つだね
>>112 それはGitの話ではなく、Gitの使い方の話だぜ?
>>112 ファイル名がパス名なのはUNIXの話でLinux独自の考えじゃない
>>112 「メタデータ」の意味を取り違えていますけど?
このスレッドはLinuxにおけるGitのスレッドじゃねえのにな
>>112 不毛だと思うが続けるつもりならシンボリックリンクを突いた方がいいのでは?
Gitに整合性なんて無いし、
Linusには不要だったから付いてないが、一般人には必要だから質問されるって事にしかならないと思うが
必要ならそのツールを使えばいいだけ。
GITではそんな機能はないと言うだけのこと。
随分ひどいが質の低いのが回答者側に回ってきてるのは悪いことなのかそれとも良いバロメータなのか
昔から専門系の板は簡単そうに見える質問が来ると極端な知識マウントで自己重要感を補おうとする人が湧くよ
今風に言うと「完全に理解した」人々ってやつ
検索したら出てきたから使っている人いるんだね。
自尊心と何が違うのかは知らんし、どうでもいいけど
他人の作ったツールでマウント取ろうとしてる時点で頭おかしいけどな
せめて「ぼくのすごいそふとうぇあ」でやれよと
(この意味ではQiitaは正しい)
それはさておき、
・実行環境の全てを保存したい→パーミッションも全部保持して欲しい
・ソースコードの変遷が辿れればいい→パーミッションは全部755でいい
実行権限のあり/なしで動作が変わるシェルスクリプトなんて普通作らんし、
(Git以前かららしいが)実行権限だけ保存するのはどういう理由なん?
>>123 多分だけど古くからの unix 文化の影響
ファイル所有者の読み書きの権限は無制限、ファイル所有者の実行権限は個々のファイルごとによって違うという使い方をするのが普通だった
分散型だと他人とかグループとかを管理する必要はない(そもそも所有者とか所有グループを管理してないので他人と所有者の区別がない)
結論として「実行権限」だけが残った
>>124 つまりデフォの644→手動で755に変更の履歴を残すのが目的だったと
なら750とか400とか使って真面目に管理してる連中には機能が足りないのだろうね
機能が足りないのなら追加すればいいだけの話
そこでGitは間違ってない、今後ともパーミッションが保存される事はない、他VCSもそうだし、とか考えるのは頭おかしいと思うぜ
>>125 そもそもバックアップはないのでファイルの所有者とかグループとかを保存管理してない
・つまり644だろうと666だろうと600だろうと違いがない、後ろの2つの数字は意味がない
・開発において所有者自身の読み書きを禁止する意味はない
という考えなので所有者の実行ビットのみくらうしか汎用的なユースケースが存在しない
みんなが役に立つ具体的な使い方思いつけば拡張されるかもしれないが、それを思いついたやつは今までいないので現状があると理解しろ
>>126 > それを思いついたやつは今までいないので現状があると理解しろ
それはお前が知らないだけ
ソースコード管理者≠実行者なのは普通にある
例えばapache等のWebサーバーはnobodyやothers等の低権限で動かすのが一般的だ
この場合は少なくとも自分とapacheの権限は独立して記録出来てないと不便だろ
そもそも今回の質問が発生するのも、また、
> 600の設定ファイルとかでよく出るGitのあるあるなんだけど設計思想なんでしょうがない (
>>96)
あるあるになるのもみんなその機能を使いたいからだろ
> そもそもバックアップはないのでファイルの所有者とかグループとかを保存管理してない
バックアップ程度で大半の人には十分だし、実際、デプロイしたらいきなり使える方が便利だろ
これを言うとデプロイツールでもないと言い出すんだろうが、
いちいちパーミッションを設定するだけのスクリプトを書いたり、手動で走らせるのは全くの無駄だろ(
>>96-99参考)
Git信者にはGitは間違ってない!としか思えないのだろうが、
俺は単純にパーミッションも保存すればもっと便利になるからそうすればいいだけだと考える
まあこの点は平行線なのでもういいが
とにかく今できないのは事実としてもね
というかね、このスレのGit信者にはパヨクや意識高い系馬鹿と同じ類の勘違いを感じる
「Gitではパーミッションは保存されないのが正しいのだ!だからお前らもGitの正しい使い方を学べ!」ではなく、
大衆が望んでる機能だし、今からでもパーミッションを保存するように改善すれば終わる話だと思うのだけどな
>>127 もしそう思うなら具体的なユースケースをつけてコミットしろ
みんなの役に立つと思われば採用されるだろう
お前の役にしか立たんと思われればフォークして勝手にやれと言われるだけ
結果が全て、お前の妄想はいらない
git に限らずオープンソースというのは実際に手を動かして実物で利便性を証明したものの集大成
誰もやらないのは、やる価値がないから(コストに見合わないと思うから)
怠慢だと思うならお前がやって証明しろ
>>128-129 長期的には俺がフォークするかもだが、今はやらないよ
誰かがフォークしてパーミッションも保存するバージョンを作ったら、そっちを使うけど
(同じスタンスの奴も多いはず。そもそもGit以前のLinusも同様だし)
というかそこでムキになる理由が分からんのよ
お前がGitの基本設計をしたわけではないのだから、お前が間違った事にはならないし、
必要な機能なのだから、最終的には実装されるだろうし、なら付ければいいだけだろ
現実的には99のように自分でスクリプト等を『余分に』整備して我慢してる人が大半で、
いつか誰かがブチ切れて実装されるのを待ってるだけだろ
OSSなんてそんなに大した物でもないよ
(Gitに限らず、どれもこれも結構ポンコツ)
なお俺がGitにコミットする事はないぞ。やるなら必ずフォークする
理由はコマンドをほぼ全部リストラしたいから
「何で? 理由は?」ってお前が問うから
・unix の伝統的に必要性が低いから
・そのせいで今まで誰もやろとうとしなかったから
という今そうなってない理由を答えてやっただけ(理由を間違えてるなら指摘しろ
それがお前の需要を満たしてないと思うのならば、それは別問題、それはお前が変えろ
変えるのは自由、そっちは議論してない
>>131 お前らGit信者はOSSを勘違いしてて、
× OSSは自由に改変出来るので必要な機能は全て実装されている
○ OSSに実装されている機能は全て、
誰かがブチ切れて「こんなのやり続けるくらいなら俺が実装してやる!」となった結果であって、
当たり前だが不満は常に溜まった状態にあり、爆発ない限り何も改善しない
(不満があってブチ切れたとき、プロプライエタリでは使用を止めることしかできないが、
OSSなら自分で機能を付加するという選択肢もある、程度)
つまりGitに限らずOSSは完璧でもなく、足りない機能は普通にありまくりで、
Gitの場合はパーミッションがそうだ、というだけ
お前らがそこで、ムキー!!!ならお前が実装しろ!!!ってなるのも狂ってるよ
>>133 誰も git が完璧なんて言ってないが、今頃になって長文君論法は何故?
道具なので完璧である必要なんてそもそもない、自分が満足いく性能ならそれで良し
oss なんて情熱をもってそれを作る人がいるかとそれを使いたい人がいるかの論理積
存在しないのは作る人がいないか、使いたい人がいないかのどっちか
結果が全て、満足いかないなら、文句あったらお前が変えろの世界、それこそ気に要らなければ使わなくても良い
>>133 誰かが実装するまで不満は残ったままということだろ?
だから不満があるなら自分で実装すればいいと言われている
>>134 > 変えるのは自由、そっちは議論してない(131)
> 長文君論法は何故?(134)
それはお前がフォークしろ論法に逃げたから、俺はフォークしない理由を述べたまで
というか、元の話に戻すと、パーミッションが保存されない件について、
あるある質問者: 保存して欲しい、或いは保存されるのが当然だと思ってたのに…
俺: 機能の不備で、いつか追加されるだろ
Git信者: 保存されないのが仕様だし、正しい!文句あるならGitを使うな!
或いはフォークしろ!フォークもしないのに文句言うな!
であって、これはもう平行線だからいいと既に127で言ったろ
その後お前がフォークガー論法(128-129)で論点逸らししてきたから、
俺もちょっとつき合ってみたら、逆に俺が論点逸らしした風に装うのだからGit信者は頭おかしい
論点を逸らしたのはお前だぞ
(まあお前が議論慣れしてないだけかもしれんが)
とはいえこの話題についてはもう何も生産性無いし、やめでいいが
俺は 123 の最後にある「どういう理由?」に答えようとしただけで、それ以前の議論の回答はしてないぞ?
現状が気にいらないとう方向に話が逸れたのでそっちはコミットするなり勝手にしろといってるだけ
>大衆が望んでる機能
と言いながらそれを望んでいる人がどれくらいいるかというデータは示さない
「俺が望んでいるのだから皆望んでいるに決まってる!」と言ってるだけ
>>137 > それ以前の議論の回答はしてないぞ?
お前がそう思うのならそれでいいが、俺もお前の「パーミッションを保存しなかった理由の推定」には文句言ってないぞ
俺が突っ込んだのは、127で引用したとおり、
> それを思いついたやつは今までいない
なわけあるかボケ!であってね
というかむしろ、パーミッションも保存してくれると考える方が自然だ
既に言った通り、お前らはGitが正しいという前提で考えだすから話がおかしくなる
とはいえこの辺は本当に平行線なのでもういいよ
OSSなんてどれもマグマは溜まってる状態で、ある意味これが仕様だ
> 結果が全て(134)
これでいいよ
俺: いつか誰かが追加して、パーミッションも保存出来るようになるだろ
Git信者: Gitではパーミッションは保存されないのが正しいので、未来永劫この機能は付きません
で、どっちの予想が正しいか、結果で判断するのが正しい
そしてこれを現時点で結論づけるのは不可能なので、この話は終わりでいい
OSS なんて「仕様に文句言う暇があったら修正コード書け、コード書いてない時点で困ってない」と判断する修羅の世界
「その機能がない」=「今まではそれを入れる理由はなかった」なんだよ
未来は知らん、困ってるやつが頑張れ
>>139 この先ずっと実装されないままでも「俺は正しい」と言い続けるわけだ
>>140 × > 今まではそれを入れる理由はなかった
○ 我慢出来る範囲だったので我慢してた (130で言ったとおり)
なんだよ
というかお前のOSS最強信仰がどこから来るのか分からんが、
Gitに限らず何であれ、或いはプロプライエタリでも、
「ここもうちょっとなんとかならんかったんか」とは感じるものだと思うのだがな
ただまあ、中には、現状をひたすら受け入れるタイプも居て、君がそうだというだけなのかもしれんが
>>140 おっとすまん、見落とした
> OSS なんて「仕様に文句言う暇があったら修正コード書け
OSSは主語が大きすぎるので『Gitは』ということにして欲しいが、実際Gitではそうなのだろう
仕様を軽視しすぎだからあんなコマンドの山になる
とはいえ、これに関しては作った奴がそうなんだし、気に入らなければ使うなにしかならないが
>>142 「我慢出来る範囲」を超えたのなら実装すればいい
グダグダ言うだけで実装しない・できない奴ばかりならこの先もずっと変わらない
我慢できてる時点で困ってないんだよ
俺の git には(俺にしか役に立たない)パッチがいくつも当たってるけど、git に限らず OSS ってそういうもんだろ
他にも同じ問題で困っている人がいたら公開して共有するし、そうじゃなきゃ自分専用で使えばいい
>>145 > 我慢できてる時点で困ってないんだよ
なるほどそういう考え方か、全く同意はしないが
俺は逆に、93-99の流れの時点で駄目だと思うけどな(=困っていると判断する)
高い確率で、欲しい機能(または、あって当然と思ってる機能)が動かないから質問してるわけだし
手間を減らす為のツールなのに、手動で別スクリプト用意して管理が必要なのは、二度手間だし、アウトだよ
そして最初に仕様を練ってれば、つまり、
「本当にパーミッションは保存する必要ないのか?保存した場合に何か問題があるのか?」を熟慮してたら、回避出来た問題だという話さ
とはいえ、仕様を軽視する連中にはこの辺の話が全く通じないのもいつも通りではあるが
まあどこまで行っても平行線だし、合意する必要もないしで、もう終わりでいいよ
結果を待てばいい
>この話は終わりでいい
>もう終わりでいいよ
そう思うなら黙っていればいいのに
まだやってたんだ
なんでこんなことになってるんだ?
>>127 >バックアップ程度で大半の人には十分だし、実際、デプロイしたらいきなり使える方が便利だろ
だったらgitじゃなくてバックアップツールを使えばいいのでは?
誰もお前にgit使えなんて頼んでないし
パーミッションも記録するようになったらなったで今度は誰かがACLも入れてくれと言い出す
昔の状態を保存したい目的に使うのはバックアップツール、アーカイバとかでも良い
長文君といい今回といい、なんで git とかのバージョン・コントロール・ツールをバックアップと勘違いするやつが定期的に湧くんだろう?(同一人物が暴れてるだけ?)
このペンチでは釘が打てないと文句を言ってるレベルの無知さらけ出してるの気づいてないんだろか
>>154 そこが疑問になるのは、お前に一般化能力が全く足りないからだな
まあGit自体に一般化能力が皆無だから、Gitに不満がない奴等は一般化能力もかなり低めで、
この意味ではGitは一般化能力の低い連中のエコーチェンバーになってる
このスレもそう
並の一般化能力があれば、あの全く整理されてないコマンドの山を見れば発狂する、俺がそうだ
して本題だが、単純にバックアップツール/アーカイバとしても使えるからだ
例えばtgzして毎日保存して、必要ならコメントも付けて、必要ないファイルは除外して、重複してる部分は圧縮して、検索機能も付けて、…
とかやりだすとほぼVCSになる
鯖なしで単体アプリとして使えるVCSで一番目に付くのはGitになる
バックアップ=ブランチのない一本線コミット履歴、でしかないのでどのVCSも(一般人が期待する機能の)バックアップツール/アーカイバとしては使える
「別物」としてしか捉えられないのなら一般化能力が全く足りてない
(「勘違い」ではなく、分かってて「流用/転用」しようとしてるだけなのを、一般化能力が低すぎる故に理解出来ない)
Git信者風に言えば、「ぼくはいっぱんかのうりょくがかいむです」と言ってる事に気づいていないんだろうか、となる
ただなんつうか、この手の一々イヤミを言うのもお前らが嫌われてる理由だと思うんだけどさ
最後の文なんて意味不明な選民思想の露呈であって、しかも間違ってるしで、言わない方がましだよね
(まあリアルでは絶対に言わないがここは5chなので試しに言ってみる、というのならアリだが)
こいつの言ってるは「ペンチでも頑張ったら釘を打てるんだから、もっと釘打ち能力を強化しろ」ということだな
普通の人はペンチと金槌を使い分けるし、専門家なら用途ごとに複数のペンチや金槌を準備する
一つの道具で全部やろうとしてる時点でド素人だと気付けない病気かな?
言っていることはごもっともだが、一方で、ツール選定の際には使い慣れているものや既に運用されているものを優先するバイアスがあった方が効率的なのも事実だ
些細な課題に必要以上に固執してすぐに別のツールを使おうとするのも、それはそれで生産性を低下させる原因となる典型的な悪癖
もちろん上記のバイアスが強すぎるのも良くないけどね
双極性障害で、今が元気な期間で鬱に入ったら静かになるよ。
>>155 ブランチ使わねーとか、やっぱお前長文君だろ
開発どうなったんだ?
自分のスレに帰れ、完成まで戻って来んな
仮にパーミッション対応するにはどうしたらいいか、という生産的な議論はできんのか?
>>156 > 用途ごとに複数のペンチや金槌を準備する
ペンチや金槌ほど違いはないって事
ソフトウェア界隈でよく言われる、
「気に入らないからといってオレオレフレームワーク/ライブラリを作っても
どうせ9割は同じコードになるのだから、(=車輪の再開発でしかないので)
多少気に入らなくとも既存のフレームワーク/ライブラリを使え、その方が生産性が断然高い」が該当する
俺はGitを気に入らないが、かといって自分で作ったとしても9割は同じコードになるので、
わざわざ作り直すよりはそのまま使って、本来のアプリケーション開発に注力する方が全体的にマシ、ということ
コマンドが糞の山だが、基本コマンド以外は使わなければいいだけではあるので
その他てんこ盛りの機能も同様
まあ俺的にはタイプスタンプを保存して欲しいんですけどね
理由は一番分かりやすいから
でもLinusは何か知らんがこれは絶対に認めないんだろうしね
gitも再発明だろ
お前はひたすらやらない理由を考えるタイプ
>>160 Gitでやるなら
>>93-99 Gitを改造する気なら、commit時に何かしらのメタファイル(的なもの)を自動コミットしてしまって、
その中にパーミッションを記録しておき、戻すときに使えばいいだけ
まあ、やる気になればすぐ出来る問題だから、現時点で入ってないのは、
・本気で要らないと思ってる ← Git信者の予想
・まだブチ切れた奴が居ないだけ ← 俺の予想
・何かしらの理由で、政治的に拒否している ← Linusならあり得る
最後のは、例の発言
> マジで、Cを選択する理由が「何もなかった」としてもだ、C++プログラマー避けになるというだけで、Cを使う大義名分になる。
>
https://cpplover.blogspot.com/2013/05/linus-torvalsc.html なので、Git信者が喚き散らしてる「Gitをバックアップツールとして使わせない!!!」為に意図的にやってるってのは、
(半分ジョークだとしても、)Linusならあり得る
ファイルの中身の先頭にファイルそのものの属性情報を付けるという発想は、メインフレームなどの古い思想。
>>159 同意
長文君のスレ
日常の進捗履歴記録ツールWitBucket(仮称)検討中
http://2chb.net/r/tech/1668901194/ ごっみばけっつ君来てるのか
ばーじょん0.1でいいから早く成果物公開してや
長文君は問題外なので放っておくとして
unix 文化圏の KISS 原則というのは他の文化圏から来たやつには不思議でしょうがないんだろうな
Keep It Simple Stupid
「単純で馬鹿なままにしておけ = 余計なことはするな」
単純なものを組み合わせて何か複雑なものを作るのは簡単だけど、複雑なものを組み合わせるのは困難
お仕着せじゃなくて自分で工夫して何とかする人には元が単純であるほど良い
まあ使いやすくしたければ自分でツール作れば良いだけの話なのに何で作らないの?
必要なら作った方が効率がいいと思うんだけど。
元の質問者だけど、質問はただ出来るのかどうか聞いてただけなんだけどなあ
こうなって欲しいとかあるべきとか別に何とも思ってないんだが、なんで勝手に仮定してそんなに膨らませるんだろw
あとバックアップがどうのって言ってる人が最初の方からちらほらいるけど、バックアップの話ってどこから出してきたんだ?
誰もそんな話しとらんよね
Gitのことは嫌いでも、Linusのことは嫌いにならないでください!!
>>169 読んだら分かると思うけどこのスレには「git は初心者向けのバックアップ・ツールであるべき」というのが持論の変なやつが一人居着いていて定期的に湧くんだ
そして、ちょっとでもバックアップぽい使い方をしてるやつや初心者っぽい質問があると持論の補強に使おうとする
で、他の人がそれに反論したり予防するのが日常風景になってる
関係なければ軽く無視しても大丈夫だよ
>>167 GitはKISSとは真逆だけどな
>>169 手動でスクリプト書いてパーミッションを保存する気なのに、自分が使いたい機能と認識出来ないのは知障だろ
>>170 いやLinusの発言内容は大体同意だし、(163に挙げた物含めて)
ズバズバ言うところも割と俺は好きだけどな
もちろん会った事も話した事もないが
ただGitはなぁ…OSSの中でもここまで仕様がグダグダなのは存在しない
仕様を詰めるのは時間の無駄だ、として嫌う奴はいるが、大体そいつらはプログラミング初心者で、
Linusがこの辺理解出来無いとも思えないので、意図的に放置してる気もする
結果的にVCS界のmulticsになってるので、いつかunixが生まれる
ただまあ、使う分にはコマンドが多すぎても大して困らないんだよ、使わなければいいだけだから
しかしメンテするとなると、本来は全部のコマンドが正しく動く事をチェックしないといけないので、肥大化すると無理になってくる
Gitはこの辺、自動テストもする気無く、動かなければ動きませんね、文句があるならお前が直せ、でやってるように見える
また、勿論OSSなのでプロプライエタリと比べれば限界点は10~100倍上であり、
行けるところまで行ってしまえ、限界点のテストだ、という風にも取れる
この辺の思想が俺には合わないね、まあ他も多々あるが
だから、俺が参戦するとしたら、Gitではなく、unixを作る側だよ
そんなにGitが嫌なら使わなければいいのでは?
誰もお前にGit使えなんて言ってないでしょ
ゴミバケツ君また自分でVCS作る話してる。
前のはどうなったのか。
バージョン管理システムを変更履歴システムだと思い込んでいる人間は多いよなあ。
変更履歴用ならどこがどう変わったのかを表示する機能がないことに疑問を持たないのだろうか。
Linuxは開発者の質が低いんだよ
カーネルに次々と新しいバグを追加する
だからLinuxを採用するとカーネルを独自に直すという作業が必要になる
>>175 > 変更履歴用ならどこがどう変わったのかを表示する機能がないことに疑問を持たないのだろうか。
それはdiffで十分だし、しかもGitの場合はdiffを内包してしまってる(俺はこれにも反対)
だから不満があるとするならバイナリか?(Excel等を含む)
勿論これは対応してないだけだし、
また、対応するにしても、Gitが直接差分を出す「モノリシック」ではなく、
「プラグイン」で各社が自社アプリ用の差分出力ツールを供給出来る形態にするのが正しい
VCSから各種diffを直接出力すべきと考えるのは間違いだと思うぜ
>>176 そうだとしてもLinux以外にないわけだが、
> カーネルに次々と新しいバグを追加する
これはポリシーというか戦略が違ってて、「今より少しでも改善するなら採用」だからじゃないかと
従来型の「最低限のクオリティに達するまではreject」へのアンチテーゼでもあるから
そして(文句あるかもしれんが)カーネル開発者は元々のエンジニアの質がそこそこ高かったからそれでも何とかなったものの、
同じ事をGitでやったからあの「ぼくがおもいついたすごいこまんど」の山になったのだと思う
交通整理すらやる気無かったわけだ
とはいえ、「使われなくなったコマンドは、いつしか動かなくなった事すら認識されなくなり、死んでいく」という、
Gitコマンド内でのライフゲームをやるつもりなら、ありなんだろうさ
厳選されてるように思えるunixコマンドだって、レイヤーが1つ違うだけで同じライフゲーム状態だし
お前よりAIのほうが賢いんじゃね?
git を始めとして最近のVCSは著者(author)とか承認者(commiter)とかの由来を管理するけど、所有者(owner)とか所属グループ(group)とかの現状は管理しない
管理の粒度もファイル単位ではなくて変更点単位
「バックアップ」という言葉の使い方次第だが次元の違うものを管理してるというのは最低限の事前知識
GitHubを容量無制限のファイルバックアップ置き場として紹介しているサイトもあるけどな
>>161 タイムスタンプがそうなっている理由はプログラマならわかるかと。
makeとかのビルドシステムがファイル更新をタイムスタンプで判定しているんだから、gitが書き換えるごとにタイムスタンプが新しくなるのはビルドシステムを考慮したら当然の話。
タイムスタンプを勝手に書き戻したら再現困難なバグになるから、採用は無いだろうね。
自分もタイムスタンプは戻してほしい派
その手のビルドツールって、なんで「タイムスタンプが古くなってても更新扱い」にしてくれないの?
1バイトも更新せずにタイムスタンプだけ更新したら、それも記録すんの?
そのタイムスタンプ更新の著作権は誰に所属するの?
コミッタはそれを確認して承認作業するの?
古いパッチの再利用したら日付が昔に戻るの?
ブランチ統合したらどっちの日付が採用されるの?
アホらし過ぎる議論
ファイルのバックアップは別に取れ
>>169 今話してるのは質問がGitをバックアップに使ってると勘違いしてる人たちだから無視していいよ
他の人は
>>99でやりとりが終わってると分かってる
>>179 それは「現時点でもGitはバックアップツールとして十分使えます」と言ってるんだがお前はそれで良いのか?
>>182-183 つ make distclean
>>184 回答を期待してるわけではないだろうが、俺が今思いついた範囲なら、
1バイトも更新せずにタイムスタンプだけ更新したら、それも記録すんの?→古い日付のファイルに戻してからcommitしろ(或いは「内容が同一のファイルは非更新扱いにする」オプションをcommitコマンドに追加するからそれを使え)
そのタイムスタンプ更新の著作権は誰に所属するの?→上記なので関係なし
コミッタはそれを確認して承認作業するの?→同上
古いパッチの再利用したら日付が昔に戻るの?→パッチを当てた日になる、つまり戻らない
ブランチ統合したらどっちの日付が採用されるの?→マージ時に変更されたファイルはマージした日付になる
これで別段大して問題ない気がするが
まあ日付を保存する事について技術的問題はないと思うけど
Linusがわざわざ外したんだから、政治的な問題はあって、採用はされないんだろうけどさ
(全世界からメール等で連絡受けてたLinusは、テメエのローカルタイムなんて知るか!!!とブチ切れ、
タイプスタンプでの連絡が出来ないように作ったと予想)
が、多分根本は、形式主義者か現実主義者か、といったところか
形式主義者: GitはVCSであり、それ以外の使い方をしてはならない
現実主義者: 機能が揃ってればラベルがどうであれ使う
つまりGitもバックアップツールとして使えるし、
GitHubは容量無制限のファイル置き場だし、
git clone GitHubのURL: が現状一番簡単なデプロイ方法であるので、Gitはデプロイツールでもある
(ただし目的外流用だから色々機能が揃ってないが、それでも他ツールよりマシなら使うだけ)
>>186 開発者に「俺達の利便性のために、お前らはチェックアウトするごとに手動でcleanして一からビルドしろ」と言ったらさすがに傲慢かと。
gitはプログラム開発者がソースコード管理のために用意したツールだから、開発者にとって百害あって一利無しの機能が入ることは無いんじゃないんかね。
>>182 Subversionには、ファイルのタイムスタンプをコミット日時にする設定はあるけどな
もちろん、makeを使うような人には危険な機能だが、それなりの要望はあったのだろう
>>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されるのは分かり切ってるのでやるならフォークしかない、といったところ
何も分かってないやつがいて草
タイムスタンプは過去には戻らない未来に進むだけ、という前提で多くのツールが設計されてる make もそう
この前提を壊さないように配慮することが大原則で git のみならず unix 系のツールは設計されてる
バックアップからの復元はこの前提を壊して過去に時間を戻す行為なので特別な時にのみ使うもの
>>190 zipやtarは普通にタイムスタンプは保存されるだろ
その延長で考えるなら、保存された方が自然だし有用だ、というだけ
ただまあ、これも合意する必要はない
フォークしてどちらがウケるかで決するフォーク主義が正しいし、ユーザーは好きな方使えば済むだけ
(現実的にはcp -p と同様にオプションで切り替えるのが普通で、
逆に言えばオプションすら存在しないGitは何らかの「意図」をもってそうしてるとも言える
理由は今のところ不明なので思いつく人はよろしく)
まあ心配せずとも、Linuxカーネルにコミットしてくる連中で、make clean を知らない奴なんて一人もいないよ
(だから多分問題はここではない)
git pull した後に make clean とか git 使ったことないのが丸わかりだな
何のための make だよ?
>>189 「俺はタイムスタンプの管理をgitでやりたいから、お前らはチェックアウトするごとにmake dustclean しろ」と言ったら、温厚になったLinusでもさすがに罵倒するかと。
gitはLinusがlinuxのソースコードを管理するために作ったツール。今もメインユーザーはLinux開発者で想定利用シーンもLinux開発なんだから、「Linux開発者の足を引っ張る機能」を追加するのはディレクターの正気を疑うレベルですな。
>>194 いや linux とか Linus とかもはや関係なく全プログラマー大爆笑案件だろ
git pull で同期したら日付が過去に戻りましたとか全員が git の使用やめるレベル
https://stackoverflow.com/questions/1964470/whats-the-equivalent-of-subversions-use-commit-times-for-git PythonやPerlを使う人には、makeのためにタイムスタンプが失われるのはいい迷惑だと言われてるな
今さらリポジトリにメタデータを埋め込むのは難しいにしても、
gitconfigで
>>188くらいさせてくれてもいいのにとは思う
>>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なら保存されるのか?なら俺はそれでもいいんだが
(料理の腕前で勝負してるのに、整理棚に必要以上にこだわっても本末転倒)
料理の腕前で勝負してるつもりならさっさとWitBucketとやらを作れよ
>>197 >Linus以外はほぼやらねえし、
「gitはLinusがLinux開発で使うために作った」という大前提を忘れるのはアルツハイマー病の一種かしらん?
Gitの使い方というかSourcetreeの使い方というか質問があります
とある1コミットに複数ファイルがあって複数個所に変更がまたがってて
別ブランチにそのコミットの1ファイルの1部分だけをマージしたいです
その場合はチェリーピックは使えないので1部分のHunkをステージングに移動して
コミットするという方法が素直なマージ方法でしょうか?
>>201 採用元が push 後とか他人のコードだとそんな感じかな
私だと cherry-pick してから巻き戻し修正するけど、複数パッチなら rebase -i で edit を使う
採用元がローカルにしかない push 前なら元のコミットを分割しておくのが良い方法だろう
将来的に再利用するときにも別々に利用する可能性があるものは、今のうちに別パッチに分割しておくのが賢いと思う
>>202 回答ありがとうございます
まさに他人がプッシュしたものを派生ブランチにも適用させようとしています
その中に特定ブランチの対応分も混ぜてしまっていたため
どう対応すべきか質問した次第です
コミット分割は癖にしておきたいと思います
ろくに開発経験ないやつがgitの仕様はグダグダとか言ってるのまじで面白いな
>>93の質問以降まともだったのは96、97、99、101、107くらいしかいなかった
7bは置いとくとしても100レスも使ってこの体たらくとは情けない
>>178 diffでわざわざ比較するというのは時間の無駄
>>206 相手にすんな
バケツ君はマニュアル読めなくて git が外部 diff に対応してることすら見つけられずに俺の望む出力じゃないと散々暴れた過去がある、今もそう思い込んでるので
>>203 コミットの際にcherry-pickまで考慮するなんて不毛だからやめておいた方がいいよ
そんなことをしなければならないほど強くcherry-pickに依存したワークフローになっているならその方がよほど問題
不毛っていうのも程度問題でしょ
経験の浅いメンバーだと一つのコミットに複数のバグトラッカーのissueを混ぜこぜにすることがある
hot−fixブランチが必ずしも計画的に作られるとは限らないからcherry-pickで取り出したいことは時々起こる
cherry-pickに依存するのは不毛だと思うが、リモートへのコミットは機能単位・イシュー単位に整理した方がやり取り楽じゃない?
同じプロジェクト内に並行で製品(バージョン)を維持しているような場合には cherry-pick は多用するよ
特にブランチ切るまでもない単純な修正の場合とか
要はコミット1個だけのブランチの rebase/merge の簡略形なので不毛とか言うやつは単に経験が足りないだけ
せっかくbranch切ったのに、merge代わりにcherry-pickしたら後でトレース面倒にならん?
>>212 cherry-pick はブランチ切るまでもない修正用だよ
コミット1個ならどこから cherry-pick したか分かれば良いだけだし
将来どのコミットが急遽hotfixに採用されるか分からないからといってあらゆる事前の修正コミットをもしものためだけにブランチ分けするのもガチガチで作業効率が落ちる
程度問題と言った通り俺はcherry-pickを多用する気もないしフローとして禁止扱いも効率が悪いと思う
hotfixが必要ない現場なら必要になる機会は少ないだろうな
cherry-pick には複数の使いみちがあって別に全部の使い方しなければいけない訳ではないが色々知ってると便利
・最新版から過去リリースへのバックポート
・セキュリティなどの hotfix の適用
・テスト用の addhoc 修正版(正式なマージは今ではない
・ゴミ箱ブランチ等から拾ってコードの再利用(コードだけ拾ってコミットは再利用しない
など多数
「1つのコミットには1つの修正」という大原則を守ってさえいれば、cherry-pick に限らずあらゆる再利用や利用中止がやり易くなるといだけ
git の rebase と cherry-pick は同じ概念なので rebase とか使わない派閥のやつは cherry-pick も使わないだろうなあ
cherry-pick はブランチ切って rebase してブランチを消すを一発でやってくれるコマンド
正確には rebase の方が cherry-pick を繰り返した後にブランチ位置をそっちに切り替える機能というべきだけど
要はブランチを使うか使わないかの違い
すみません、チェリーピックに関して質問した者ですが
追加で質問よろしいでしょうか?
本流ブランチAから子ブランチBが作成されて
子ブランチBから一時的に孫ブランチCが作成されました
ブランチCで修正した一部コミットだけブランチBにチェリーピックしてマージして
他のコミットは無駄なのでブランチCがもはや不要となりました
孫ブランチCを削除してもブランチBにチェリーピックした内容は
削除される(元に戻される)ことはない認識で合っているでしょうか?
コミットの独立性が保たれているためチェリーピック元のブランチを
削除しても問題ないと認識しています
>>219 削除されないから大丈夫
まず第一に、残ったブランチやタグのいずれかから到達可能なコミットは生存し続ける
第二に、cherry-pickによって作られたコミットはマージと違って元のコミットとは別物の複製体になるので原本がどうなろうと知ったこっちゃない
>>221 ありがとうございます
Sourcetree独自の機能か分かりませんが
チェリーピック元のコミットIDをコメントに付与しているため
もう辿ることもないコミットならコメントから余計な情報は
省いた方がよさそうですね
>>222 それは git cherry-pick -x で付く情報だと思う
公開されないコミットへの参照は残さないほうがいいね
残ってても邪魔にはならないだろうけど cherry-pick 元がすぐ消える予定なら、付けないのが普通ですね
cherry pick
1. 都合の良いものだけを (恣意的に) 選び出す
2. 慎重に必要なものを選別する
2. 好きなもののみを摘み食いする
4. バーゲン品から掘り出しものを漁る
5. 木から熟したサクランボだけをもぎ取る
5が本来の使われ方、1の意味で使われることが多い
コミットする内容を複数に分けたい場合、必要な部分だけステージングすると読んだのですが、
この機能を使っても作業フォルダの内容は変化しないので、
一緒にコミットするべきだったところを入れ忘れてしまい、
プルしても正しく動かない状態のものを上げてしまっていたということがあります
この一発勝負みたいなステージングの機能をみんな使いこなしているのでしょうか?
>>228 一発勝負っていう感覚はおかしいでしょう
一度ステージングした後やコミットした後でプッシュするまでもいくらでも再確認とやり直しのチャンスがある
危うい操作をしたのに十分に確認していない内容をプッシュしてしまう習慣のほうがどちらかというと諸悪の根源だと思う
SVNだってローカルの変更を部分的にコミットしようと思えば同じようなリスクがあるので、ステージングという考え方自体のリスクではない
分割してコミットはビルドの通らないコミットを作ってしまうリスクは増すから不慣れで自信のないオペレーションになったときはstashやswitchを活用して疎通確認しておくとか、要らん変更と意図的に残した変更と漏れた変更を混同しないようにassume-unchangedやskip-worktreeなんかを活用してもいい
>>228 複数のコミットで一つの修正になるならrebase してまとめたら?
>>228 問に回答してなかった
ステージングの機能を使いこなしているかはNoです
差分確認からコミットまでの流れはGUIのほうが好きなのでステージングは全然活用できてない
>>229 git status とかを頻繁に打つくせをつけた方が良いぞ、それでコミットし忘れ防げる(ついでによく使うオプションは alias にするとさらに良いぞ)
あと正しく動かないコミットに分割するのは「必要な部分だけ」とは言わないぞ
>>228 もうでてるけど
いれないものはstashして動確してcommit
stagingの存在理由わかってくる
>>218 言うほど同じか?
rebaseを好む派閥がrebase使う最大のモチベーションはログの直線化
そういう神経質な連中がcherry-pickによる重複コミットの大量発生を許容するとは思えないのだが
やってることの内容は似てるけど用途が全然違うからなあ
かのPro Gitもリベースの章はベタ褒めでahhとかthe bliss of rebasingなどと顔もやや恍惚気味の御様子だが
チェリーピックとなると淡々とした説明で真顔だよ
>>236 目的じゃなくて動き(実装)の話
rebase で cherry-pick できるし
cherry-pick で rebase できる
どっちもコミットの再利用(付け先の変更)を目的とするコマンド
あと直線化にしか rebase 使わないと思ってるうちは git の実力が認識できてない
リポジトリを分けるか、モノでやるか
統合度合いが微妙な場合にものすごく悩む
そんなところで悩んでいる段階なら分けなくていいよ。最初から細かく分けようとするのは基本的に時間の無駄。
成功している組織はだいたいクソデカリポジトリなのも事実。それについては戦略としてモノレポが優れているというよりは結果的にそうなっただけだろうけど。
>>239 一般論にはメンバーで分けるとうまくいく事が多い
将来的に人が増えたり入れ替わっても同じ1つのグループで開発を続ける予定なら一緒にする、
対応するグループが分割されて片方だけに関わる人が出てきそう、もしくは不明なら別にしておく
「うまくいく」の定義によるかなあ
分かれている方が良いという前提のもとで失敗の可能性を下げるという意味では
>>241に同意するが、
個人的には不適切な分割による失敗は幾度も見たことがあるが、逆に一緒であることの直接的な実害にはあまり遭遇した経験がない
巨大なモノリスへと誘導されやすいみたいなアーキテクチャに対する影響は否定しないが、そのへんは日常的なコーディング作業というより
もっと大きな視点で恣意的に判断すべきことかと思う
そして、その判断を今すべきか、そもそも可能なのかは冷静に考えた方がいい
>>242 ・分かれてるものを一緒にするのはとても簡単だが、1つのものを分割するのはかなり手間がかかる
・単純なものどうしを組合わせるのは単純作業だが、複雑なものを組合わせるのは不可能な場合がある
という一般原則による、悩んだ時は原則に従うのがたいてい正しい
>>243 同様に、下記も言える
- 共通化されているものを個別化するのは簡単だが、個別化されているものを共通化するのは難しい
世の中そんなに単純じゃないんだわ
>>244 俺の書いた2つは、お前が書いた共通化の手間より断然難しいというのが一般的だと思うが、お前にとっては同レベルなんだろうなあ
まあ頑張れ
>>245 誤解させたようで申し訳ないが、単なるリポジトリの統合じゃなくてコードの共通化の話な
一般論として、集中管理は密結合を、分散管理は重複を招く
共通部分を介して密結合しているモジュール同士を切り離すには最悪共通部分をコピペすればよい
一方、分散管理され各所で個別化された重複を後から共通化する作業には、それほど自明な移行パスは存在しない
コードスタイルや設計の問題といえばそれだけだが、それはモノレポだって同じことだ
>>246 一般論だけどコードの共通化は難しくない
というのは必須ではないし時間の制限がないから
バラバラのまま結合して共通化できるところから時間をかけてゆっくり丁寧に共通部品に切り替えていけば良い
linux kernel とか部品の共通化に3年とか5年とかかけてゆっくりやってることも多い、共通化しないこともある
(手間だけの問題と技術的難易度の問題という本質的な部分の優先度を分けて考えると理解できると思うよ)
うーん、難しいと感じるかどうかはあなたの感性の問題だから、比較対象と根拠を示してね
>>248 感性の議論はしてないよ、お前がそう思ってるだけ
技術的にすぐに必要なものもと、条件によって無くてもすむし後回しにもできるものとを同次元で語るなって指摘なだけ
(後回しにして良いなら簡単、やらなくて済むのが一番簡単、という当たり前の指摘、感性の余地とかない)
>>249 読み返してみたけど
>>244のツッコミがまとも
お前は自分の意見が一般的と言い張ってるだけ
>>229-235 みなさんご意見どうもです
SVNを使っていた頃や、ステージングを使ってみる前は、
変更ファイルをいったんどこかに逃がして、作業フォルダを綺麗な状態に戻して、
今回コミットしたいところだけくっつけ直して、動作確認できたらそれらをすべてコミットして、
逃がしておいたものを元の場所に戻して作業再開、みたいな操作をしてました
結局プッシュする前にステージングし忘れなどを確認する必要があるとなると、
コミット時に確実に確認できる上記の方法もそんなに悪くはないってことですかね
>>251 それで良いんじゃないかな?
私だと2つに分けたのを両方先にコミットしておいて、両方別々にチェックアウトしてテストを走らせるけど
問題があれば巻き戻してやり直し
問題がなけば push
push 前ならローカルでいくらでもやり直しが効くのが git の利点なので個人的に分かりやすいやり方でやれば良い
慣れたらテストの自動化とか検討すると捗る
サル先生でGitの学習を始めました
そこで質問です!
下記コマンドの中に dewfr という記述が存在するのですが、これは何を意味するのでしょうか?
> git config --global core.editor "\"[使用するエディタのパス]\""dewfr
参照:
https://backlog.com/ja/git-tutorial/intro/06/ 先生が個人的に使っているエディタのファイル名なのでは?
直前がパス区切り文字で終わってるし
あ〜なるほど!謎が解けました!
ありがとうございます!
Git用GUIがなまじっか日本語化されていると、
求めているコマンドを探すときに面倒くさい
Git for Windows 2.47.1(2)Latest
Git Credential Managerの脆弱性で
Git for Windows 2.47.1、2.46.2、2.45.2の各バージョンで差し替え
(日本時間2025-01-15 03:11)
ローカル上の作業ブランチで複数回コミットして、まだマージやプッシュをしたくない状態のとき、
ここでPCやSSDが壊れたら痛いのでローカルの内容をバックアップしておきたいとなったら、
どうやるのが常套手段なんでしょうか
常套手段は知らんけど壊れることまで心配するならクラウドバックアップとRAIDじゃないの
手軽な手段ならpushとpush -fだな
-fで困る人いないでしょ
汚すことができないやむを得ない事情があるなら自由になる別のリモートを増やしてブランチをミラーリングしておく
>>265 ・ディスクをレイドとかにして耐障害性を上げる
・ディスク/ファイルシステムのバックアップを取る
・バックアップ用の別のリモート・リポジトリにプッシュする
・共用リポジトリに別のブランチ名でプッシュしておく
どれでも好きなのをどうぞ
全部やれば完璧
(最後のなら簡単、運用ルール的にかぶらないブランチ名の付け方決めとくだけでOK、個人名_ブランチ名 とか
>>266-269 参考になりました、ありがとうございます
.gitフォルダだけを圧縮して逃がしたりしていましたが、
自分しか使わない前提のブランチなら、リモートにプッシュしてしまってもよいものなのですね
>>270 チームでやってるならチームのルールを確認
>>270 git のブランチなんていくら push しても容量がそんなに増えるようなもんじゃないし、邪魔にもならないんで駄目って言われることはほぼないよ
フィルターしやすくしたり、名前かぶるの避けるためにブランチの命名規則だけは決めておくと良い
(方針によってはバックアップは別のリポジトリがあるからそっち使えって言われることはあるかもしれない
>>265 ローカルにスタッシュする or 専用ブランにコミットした上で、.git以下を適当にバックアップするんじゃないの?
リモートに個人的なブランチをpushするのは抵抗感があるなぁ。
>>273 >>270で書いたような、今自分がやっている方法と同じですね
Gitの使い方としてどうかと思っていたのですが、それも間違いではないのですか
仕事でやってるならそれは個人的な作業ではないのだから堂々とリモートにpushすればよい
OSSならそもそもforkしてるだろうからリモートは元々自分専用
better cvs として使ってます。本当にすみません。 ブランチとか良く使わないです
やっぱりVisual Source Safeが一番わかりやすくていいよね
Better CVSではないGitならではのやり方と言えるのなんて、
複数のリモートリポジトリ間でpullし合うような真に分散管理された伝統的なOSS開発スタイルくらいだろ
基本的に大半の人の使い方はBetter CVSの域を出ない
ローカルリポジトリがリモートリポジトリへの反映前のバッファとして使えて便利だな、という程度
>>282 もうちょっと上手に煽んないと乗れないぞ
そもそもこのスレに cvs 使ったことあるやつがどれだけいると思ってんだ
30年前のアプリ比較に出しても自分が年寄りと表明することにしか
まちもに cvs 使ってたやつなら、恥ずかしくこの書き込みできないんで、きちんと使ったことないのまでは分かるけど
VSSもかなりあとまで使っていたけどな
35歳以上なら知っていることが多い
いまでもVisualStudioのソースコード管理はVSSライクなのあるよね。
Gitも使えるけど。
開発の中心じゃないメンバーも使う仕様書管理とかだとそっちの方が
評判高いというか、Gitは使わないよなw
Gitを知ろう!昔のソース管理とGit
の絵を見るとGitって難しい事してるな、って思う。
逆に古いツールは複雑なマージ出来るんだっけ?と不安になる。
Gitはオープンソースのプロジェクトを分散管理するのが目的だろうから、
社内のソース管理とかに使うと、なんか前より面倒くさくなったなと感じる
>>292 git は world wide にユニークな名前で管理して無限(おおげさな表現)にスケールすることが利点の1つなので
少人数のプロジェクトだとこの利点は感じ難いのは仕方ない、あらゆる利点は逆からみれば欠点なわけだし
git の他の利点、例えばブランチを切ったり繋いだりするのが早くて操作も簡単
みたいなのに慣れてくると個人利用のみでも手放せなくなる
正直、ローカルリポジトリを持たずに直接GitHubにコミットできるオプションがあったら便利だと思う
クライアントとサーバーが等価なのがアーキテクチャとして美しいのはわかるけど、
安定したネットワーク環境とリモートへの反映が前提なら実用的にはあまり意味ないのよね
余計な手間が増えるだけだし、作業者マインドの人(情シスとか情シスとか)に理解させるのに苦労する
最近のGitHubはweb上で編集してプルリク投げまで完結できたよね?
あんまし使ったことないけど
会社ではプッシュばっかり使っててプルリクの概念がいまだによくわかってない
このブランチをプルしてマージしてください ってお願いするのがプルリクなんだよね?
会社でこれをやるなら、ソース管理者みたいな人を立ててその人に依頼すんの?
君のチームのワークフローに合わせればいい。Gitだからどうとかじゃなく。
考え方は簡単、他者の承認またはレビューを必要とするときに pull request を作る、承認したらマージする、これだけ。
例えばタスク毎にメイン開発者AとレビュワーBがアサインされていて、リリースにオーナーCの承認を必要とするなら、下記が考えられる。
開発タスクのクローズ : AがタスクのブランチからmainブランチへのPRを作成し、Bにレビューを依頼。BがPRを承認し、AまたはBがマージ。
リリース : 開発チームの誰かが main から production ブランチへのPRを作成し、Cがマージ。その後GitHub Actions等のCI/CDツールが本番環境へデプロイする。
上記はよくある流れではあるが、GitやGitHubだからこうするというわけではないことに留意せよ。
開発フローはそれらとは独立に決められるべきであり、それをGitHubの機能を使って実装するだけだ。
>>298 ワークフロー次第だが、もともと想定されてるのは
個人用公開リポジトリ ←push― 個人用ローカルリポジトリ ←commit― 作業ディレクトリ
という環境を全員が持ってる前提で
プルリクエストというのは、「俺の公開リポジトリに push したので、そこからお前のリポジトリに pull してくれ」という要求
これを責任者宛に出せば
チームリーダーとかリリース・マネージャーとかの責任者がチェックして問題なければ、それを彼の個人ローカル・リポジトリでマージする(その後に彼の公開リポジトリに push して公開する)
企業での開発においては共通のリポジトリを皆で触るのが一般的であり、”pull” requestは実際には同一リポジトリ内でのマージのみに使用する
forkはガバナンスを困難にし情報漏洩につながるリスクがあるため、そもそもorganizationまたはenterpriseのポリシーで一律禁止するのがベストプラクティス
GitLabだとマージリクエストって名前なんだけど、個人的にはこっちの名の方がしっくり来るんだよなあ
リクエストだから向こうが主語だよ
何いってんのさ
どちらも依頼だけど取り込む段階に着目するかマージする段階に着目するかの違いだよ
pull ってのは 「fetch して merge 」の省略形なので当然 merge もリクエストしてる
分散リポジトリなら先に merge の前に fetch してもらう必要があるので pull リクエストを出す
共用リポジトリとかなら fetch する必要がないので単なる merge リクエストを出す
この違いが分かって使い分けできないやつが git 使ってるの爆笑ものなんだが
ここは分かってないやつ多そうだな
企業内での開発の場合、pull(merge) requestは要請というよりレビューと承認を求める意味合いが強い。
結局マージを行うのも同じ人(別の人間かもしれないが基本的には同一の責任主体と見做せる)であることがほとんどだから。
その意味ではシンプルに review request
企業内での開発の場合、pull(merge) requestはコードレビューと承認を得ることを目的に作成され、その上でマージを誰が行うかは重要ではないんだよね。
というか多くのチームでは作成した本人がマージしている。
このへんの用語は実際初心者に教えてると理解しづらいようで、pullじゃなくてmergeにしたら解決というものでもない。
まあ、だからってもっと良い呼称は俺は思いつかないが。
>>305 じゃあなんでGitLabはプルリクエストじゃなくてマージリクエストなの?
GitLabユーザーはfetchなんてしないのかしら?
しない。したとしても極めて稀。
OSS開発者のためのソーシャルコーディングサービスとして開発されたGitHubと異なり、
GitLabは当初からエンタープライズでのクローズドな開発を前提としており、
>>301の通り基本的に共有リポジトリを使うから。
>>307 それはちょっと違う
本来は review とかが全部終わった完成したものについて出すのが merge/pull リクエスト
review する人と merge する人が一緒の時に手抜きで一回で済ますだけでワークフロー上は完全に別物
>>311 使ったことがあるとは思えん
pull requestに対するレビュー結果の追加とマージの実行は別の操作だぞ
>>309 >>311 github は分散リポジトリを念頭にサーバ上の統合作業の用語を選択した
gitlab は共用リポジトリを念頭にサーバ上の統合作業の用語を選択した
これは本来の git の意図とはズレてるのでリーナスが切れた(サーバ上では統合作業 merge/pull しない、それらは手元のローカル・リポジトリでやるのが git 本来の流儀)
git で pull request はもともと相手のローカル・リポジトリへの pull を要求するというそのままの意味(github は用語を変に流用しただけ、本来の使い方ではない
linux kernel だと subsystem maintainer とかが subsystem の開発リポジトリから完成した分をリーナスの個人リポジトリに取り込んでリリースに含めるよう最終的な要求するのが pull request の意味
コードのレビューとかはもっとずっと前に ML とかで多くの人が議論し尽くしてる、そういうのが全部終わって次のバージョンのリリースに含めて良くなったら pull request 出す
>>314 で、あんたは
>>298が会社でGitHubのpull requestを活用するにあたってLinuxカーネルと同様のMLベースのプロセスを導入すべきだと言いたいのか?
でないならその情報は質問者にとってたんなるのいずだ
>>316 ここは GitHub スレではなくて git スレだ
git 本来の用法と用語があるんだ
GitHub の勝手用語を前提にしていない
>>316 > あんたはGitHubのpull requestを活用するにあって
俺に聞いてる? 俺のアドバイスなら
git 本来の pull request は業務フローによって必要だったり不要だったりする、参考に知っておくと良い
Github の pull request は使う必要も学ぶ必要もないゴミ、そのまま忘れてしまって良い、周りで使おうとするやついたら全力で止めるレベル
fork して勝手に成長させて fork 側が立派に育ったら
pull request なんてしなくても勝手に pull してくれるのが理想
>>319 いつ、誰が、何のために、どこから、どこへ pull すべきか指定するのが pull request なんだが
超絶AIでも開発してタイミングや理由を説明するのか? 誰がはどうする? 人間が AI から命令を受け取るのか? 責任者不明のコミットができる GitHub状態なのか?
楽し過ぎるな。それやるくらいなら多分AIに全部のプログラム書かせた方が早いと思うぞ
git stashで、新規のファイルも一時退避したいのですが、デフォだと無視されるようですね
何か方法はないでしょうか
ま、新規ファイルはgitに未登録だから放置プレイせよ、ということなのかもしれませんが
なんとなくスッキリしないというか
git add -A してから git stash
-u
こんなとこ書き込む暇あったらググるかAIに聞け
2月寒いなあ、まだ冬型続くのかな?
みたいな質問するのは挨拶、話題作り、ネタ提供で雑談のきっかけにしたいだけなのに
「そんなのはググって気象庁のサイトを調べろ」とか言われちゃう感じだよねw
>>326 みんなの集まる会議の席上で天気の質問とか始めたら、「さっさと始めろ、他人の時間を無駄にするな」って怒られるだろ
個人の雑談と、多数が集まる場所での発言は違うんじゃないかな?
他人の時間を無駄にしないために自分で調べられることは調べた上で、分からない部分があったら質問するのが人としての礼儀
はたから見た感想
質問者の「ま、~というか」っていう余計なくだりを書かなければ余計な苦言も返されなかったかもと思った
>>327 このスレに多数の人が集まってるって言えるの?
GitはConflictの修正で強制的にVim使わせんのやめてほしいんだが
WindowsユーザーがVimなんて日常的に使ってるわけねーんだが想像力ねーのかよ馬鹿が
みんなしち面倒だから極力競合しないように気を使ってて競合修正すること自体も少ないから
たまに競合すると修正するのだけでも怠いのにそれに輪を加えてVim使わされるから調べ物が二倍になんだよハゲが
さっさと競合の修正をVSCodeのエディタでできるようにしろボケ
>>333 お前のって変更できないの?
何をつかってるんだろう
Vimの使い方を必死で調べる癖に、Gitの使い方は調べないのか
おかしいよな、やっぱり釣りかな
>>334 開発環境はVisual Studio 2022かVScodeなんだがGitはTerminalのPowerShellのCLIでコマンド入力して使ってんだわ
だからTerminalからbarnchをmergeしたときに競合が起きると強制的にVimになってただでさえ競合でマズっ!て動揺しとんのlにブチギレそうになるんよ
TerminalからGitを使って競合したときにVSCodeでDiffする機能がググってもみつからねーんだよ
まあ、ぐーぐるが蔓延ってからフリーソフトはダメになったよな
マイクロソフトを使ってるやつらが雪崩れ込んできてからさらに異質になってきた
ドキュメント読まない、考えない奴が増えたということでは?
この流れでフリーソフトがダメになったとか言い出すの謎
初心者の不満に優しい回答者が解決してあげただけで、不満はお門違いなもので必要な機能は完全な形で提供されてた
git は機能が多過ぎてマニュアル読んでもどこに書いてあるんだか見つけれないというのはあるんだと思う
けなしたりせずに最初から丁寧に質問すれば良いのに、質問者が悪い
個人的には
unix/linux屋の感性だとエディタとか特定のやつ強制されたら、もう宣戦布告扱いなんで絶対に変更できるようになってる
EDITOR環境変数とかに追従しないならチュートリアルの先頭あたりで説明がある
とういの感覚なんだけど Windows みたいにお仕着せに甘んじるのに慣れさせられた子羊ちゃんたちには厳しい世界に見えるんだろうか?
>>342 難しくてわからない質問されて見下された気がしてイラッとしたからとりあえず煽っとくまで読んだ
おかしな人を一人見ただけで最近の子は~とか言い出しちゃうのって老化現象なのでは
>>337 ターミナルも仕様がよくわからないのによく使うな
比較的、新しいものを使うなら古い方を知ったうえで使わないと
ここ老人ばかりだし老化現象ではと言われてもあんまり効かないよね
>>336 に礼くらいしろ。
感謝すらできないタダメシ寄生虫かよ。
礼を求めるのはムリだろー
素直に教えを請うのではなく怒り散らすことで回りが俺様を助けてくれることを期待する駄々っ子タイプなのは最初の発言からわかってる
今回の場合、Gitのダメなところをぶちまけて憂さ晴らししようとす来たら反論で恥かかされてさらに怒ってるまである
masterからbranch切ってコミットして、VSCodeにSyncronizeってボタンでたからそれ押したらmasterブランチで?に?pushされた
これってコマンドだとどういうコマンド使ったことになるの?
何か嫌だったからmasterブランチの方はpullしてrevertして、masterと新しく切ったbranchをpushしなおした
GitはCLIの方が圧倒的に使いやすいわ
GUIやとでけへんことが多すぎるし逆に面倒やからな
ニワカどもがSourcetreeとかGithub Desktopとかを初心者にすすめんのやめーや
最初が肝心なんやからどうせ教えるならしっかり手取り足取りCLIで教えたれ
コミット履歴見ながらあれこれやるときはcliはやってられんでしょ
サーバ側のログ見たけどエラーログしか吐いてなくて、アクセスログ的なログは無かった
>>356 why?
CLI しか使ったことないけど
>>355 コマンドはネット上に嘘が大量に書かれているからなあ
>>359 マジで?
困った時しか調べないので気付いてない。
>>358 マウスなら数手で済むところをハッシュ見て打ち込んでスクロールアウトしたから見直してとか非効率
何事も向き不向きがある
>>361 意味わからん
普通キーボードから手を離してマウスに手を持っていく暇があれば、その時間にコマンド打ち終わって実行結果の確認まで終わって次の作業始めれるけど?
CLI使うかエディタのショートカット使うかの2択だろ、マウスの出る幕はない
>>362 それいうならおれはトラックポイント使ってるから持ち替えるなんて無駄はとっくの昔に排除してるっての
おれはCLIでも使える
環境変えた時に困るからな
で比較した上で言ってる
>>363 何が言いたいか分からん、俺は無能なのでGUIで十分って言ってるの?
「CLIだとやってられない」の根拠をまるで示せてないけど?
command のオプションとか使いこなせてないだろうことは何となく察せられる。例えば履歴見る時に git log に -G とか --grep とか使ったことある? この違いって即答できる?
いやGitは明らかにGUIよりCLIの方が使いやすいんやがwww
いやちゃうなCLIが使いやすいんやなくてGUIがどれもクソすぎるんや
唯一マシなGitKrakenはクソ高いサブスクやしな
CLI派はステージする行を取捨選択したいときどうするの?
煽りたいわけじゃなくて興味がある
なお俺は普段VSCodeとlazygitを使っていて込み入った操作のときだけCLI使っている
>>366 git add -e でエディタで選択
git add -i でCLIメニューで選択
個人的には前者を多用してる
マウスに一切持ち替えないCLI過激派の人ってハッシュは目視確認して手で打ってるの?
HEAD~~とかHEAD~4とかでだいたい済むから手打ちするにしても稀な感じなのかな
過激派じゃないからやったことないけど、マウス使わずにCLI単体で目的のハッシュ検索→コピー→ペースト出来んじゃないの?
CLI で hash値を入れることなんてまずないだろ
直近のは HEAD やブランチ名からたどるし、古いのはタグ打ってたり、検索条件で特定する
どうしても hash値で特定したい時は先頭の4文字とか打つだけでいけるので全部入れる必要はないよ、そんな機会はめったにないが
あとやろうと思えばCLIでもエディタ操作でマウス以上に高速にコピペできるけど
GUIでポトペタばっかしとる奴らの前提が空で覚えるの前提なん草
そもそもTerminalもGitbashもインテリセンス効くことを知らんの無知すぎてクソワロタ
自分がやっていることを説明しない、説明できないタイプは、コマンドに逃げる傾向があるんだよな。
>>372 というより、そうする必要があるかどうか次第だな
>>367からも分かる通り、メクラコミット中心ならCLIで十分、コミット内容の細かな編集が多いならCLIの範疇だけでは難しい
>>373 難しくないだろ git add -e で完璧制御できる
パッチをそのまま目視できて編集できるんだから、もっとも確実
どんな細かい変更でも自由、なんらら一行に複数の変更がある場合に一部だけとか、実際にソースにない変更も可能
エディタ使ったらそれもうCLIじゃないでしょ
TUIではあるけど、それを広義のCLIと認めるならlazygitやtigのような実質GUIと変わらんようなTUIクライアントもCLIになってしまうがそれでよいか
Gitを使っておきながら、他人にはわからないコマンドだけの手順を書くやつは必ずいるしな
>>375 こんなの暴論だろ
どうやってコード書くんだよ
コーディングとは違ってステージ時のパッチ編集はGitのために行う操作なんだから、GUIクライアントとの比較の文脈ではGitの操作の一部と見做すべきでしょ
git guiはCLIか?git add -eでVSCodeを開くのはCLIか?
エディタを呼び出した時点でもはや純粋にCLIと呼べない以上、程度問題でしかないってことだよ
>>378 CLI といにはもともとがスクリプト書いたり、エディターから呼び出すパーツを想定してあって、毎回直接打たないといけないって意味じゃないぞ、あくまでも git にアクセスするインターフェイスの種類
自分用にカスタマイズして使うのは当然
そう。そしてGUIクライアントも同様にCLIを呼び出すインターフェースに過ぎない。
だから変な差別意識持たずに仲良くしような。
>>380 インターフェイスというのは「呼び出し側が理解して制御してる部分」と「制御していないブラックボクスとして扱う部分」の境界のことだ
UI ならユーザとアプリの境界、その動作が内部でどのコマンドに展開されるか想定してばスクリプトやエディタから呼んでもCLI
一方でボタン押すだけで中でどのコマンドに変わるのか全然理解できてなければCLIではない
ユーザーが制御できてるか簡易に見分ける方法は「自由に変更できるか」だ
呼び出すコマンドを理解する必要があって自由に変更できるならボタンからだろうショートカットからだろうとCLIでいい
自由に扱えないならそれはインターフェイスの向こう側だ
正直そんな事どうでもいいから
>>354教えてほしいです
>>370 それ都合のいいようにCLIの不利なケースを排除してるだけだろ
お前みたいなやつは死ぬほど見てきた
CLIで曲芸してるだけ
適材適所で使うってだけの話を受け入れられない
>>384 そもそもCLIで使う前提でコミットログ書くし、ブランチ切るし、タグ打つし、git のUIは最初からそういう設計になってつんだよ
全部のハッシュ打たなくて確定できるまでの文字打てばすむのもそう
git は CLI を使うプログラマによって設計開発発展してきた履歴があるので CLI で困ることはない
「CLIではやってられない」とか言い出すのはそいつが未熟で git に慣れてないだけの妄想
まあ全員が git に慣れてる必要はないので口を閉じて「馬鹿でも使えるものは馬鹿しか使わない」という世界に閉じこもってろ
>>385 マウスの持ち替え気にするくせにハッシュを目視で確認して打ち込む非効率さは目をつぶる
インタフェースやビジュアライズの大切さを無視するエンジニアとは仕事したくないね
ちなデバッガももしかしてCLIかい?w
>>385 君の意見を否定するつもりはないが、事実としてGitの公式ディストリビューションにはGUIが付属しているし、git gui コマンドも存在するし、公式サイトで非常に目立つ形で非公式のGUIクライアントを紹介している
こんなところでヘイト撒いてる暇があったら削除するようリクエストしてきた方がいいぞ
CUIって自分の操作の履歴辿れるけど
GUIは何やったか覚えてないとか
意図しない変化があったときに今何した?ってなるのが嫌
>>354 の感じてる「なんか嫌」も
>>388 と同じ理由だと思う
>>387 別にGUI使っちゃ駄目とは一言もいってないぞ、GUI使いたいやつだけ勝手に使ってれば良い、それで苦労しようが失敗しようが知ったこっちゃない
「CLIではやってられない」という虚言を否定してるだけ、俺はCLIで十分
>>386 キーボードで16進数4文字打つのが非効率なの? マウス操作の方が早いの?
俺とは違う技術で生きてるみたいだな
デバッガやプロファイラは自作スクリプト経由のことが多いな、スクリプトなしで簡易にやるならエディタのマクロ
>>391 タイピングの問題でなく目視でハッシュを確認ってのが非人間的で非効率って言ってんの
そういう受け取り方をするってことはやっぱりUI/UXの視点が欠如してるんだよお前は
でデバッガをスクリプトで使うとは恐れ入った
全く別世界に生きてるのは同意
>>392 良く分からんが目が悪いの?
普通はタグとか検索結果からの相対指定で使うんだよ
何らかで間違ってタグを消したとかごく稀にどうしてもハッシュ値で指定したい時に、年に1回くらい目視確認で4桁の数字打つだけだよ
簡単なんだけどなあ
チーム開発だと、かなり前の特定のコミットをrevertしたりcherry-pickしたりは全然珍しくないけどなあ
仕事でチーム作業してたらハッシュは4桁では足りないからやっぱ手打ちはヤダな
バグトラッカーやクラウドのツールと交互に使うからマウスに持ち替えずにキーボードだけであらゆるGit操作を駆使!スゴイ腕前!とはならないかなあ
やっぱり達人は5chもcurlで書き込んでんのかな
>>394 そもそもそういうのはref検索とかで指定しない?
ログを目視しながらハッシュ値を探したりしないと思うんだが
ハッシュ値で指定することなんてめっにないんだから気にする時点で何か効率の悪いことしてる気がする
GUIやCUIの原理主義者じゃない限り
どっちでも使いやすいところで使い分ければ済む話だろ
ただ、GUIに関しては、CUIのコマンドオプションの何を行うコマンドかが分かる程度に表記してほしい
英語表記でも微妙、日本語ならばなおさら困惑する
できればCUIのコマンドオプションを併記してほしい
ハッシュ値指定しない人は多分GitHub使ったことないんだと思う
>>400 ChangeLogに以下の説明があり、Git3.0にむけてbreaking changeがある模様
* Following the procedure we established to introduce breaking
changes for Git 3.0, allow an early opt-in for removing support of
$GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure
remotes.
>>356 gitk 見ながら CLI 操作ってのが個人的には最強
複数ファイル名を入力するときはGUIでポチポチ選択したい
10日で開発したL・トーバルズ氏も想定外?--「Git」誕生から20年、定番VCSの軌跡とその影響
ps://japan.zdnet.com/article/35231917/
このスレッドはLinux開発のGitの世界を語りだす気持ち悪い人間がいるから困る
最新版で行ったバグ修正の部分だけを旧バージョンにも適用したい場合、チェリーピックを行うことになりますか?
その場合、ログの樹形図には、このコミットを持ってきたよという線は作られずに、別々の作業という表現になってしまいますか?
>>410 それであってるよ
直接 cherry-pick せずにバグ修正だけ入ったブランチを作ってそっちをマージという形にするやり方も一応あるけど大した違いはない
系統樹にはならないのでコミットログにどこから cherry-pick したかを残しておく(変なオプション使わなければ勝手に残るよ)
>>411 ありがとうございます
旧バージョンのこういうメンテナンスは、チェリーピックを使っていくことになるのですね
>>412 親子関係にない(できない)間でのパッチの流用は cherry-pick でやるのが基本
git のコードの移動は(特殊なの除くと)merge, rebase, cherry-pick の3つだけ
逆に言うと cherry-pick は最重要3役のひとつ
rebaseってcherry-pickの繰り返しと同じじゃねーの?
>>414 似てるけど違うよ、オプションにもよるけど
●rebase は今いるブランチを移動させる
○cherry-pick はよそのブランチからコピーしてくる
コピーとムーブの違い、方向も逆なので注意
あと cherry-pick も範囲指定で複数一度にコピーできるよ
>>415 rebaseしても元のコミットは残ってるからmoveじゃないし
>>416 何言ってるわからん
ブランチを移動させたらもとのブランチはなくなる(ブランチに所属しなくなったコミットは後からガベコレで消される)
もちろん別の名前でブランチが残っていればそっちは移動してないのでコミットは消されない
>>417 gitにコミットのmoveなんて概念ないでしょってこと
>>418 概念はある
実装が移動先にコピーして後から削除になってるだけ(主に undo 用にしばらく残してる
mergeもcherry-pickもrebaseも普通に新しいコミットを作る
そのコミットの作り方がユースケースに応じて3種類あるってだけのこと
>>419 だからハッシュ番号変わるんだからmoveじゃないって
自分でも元が残ってるって言ってんじゃん
その理解大丈夫?
>>422 コンピュータ技術ではコピーして元のを消すのもムーブいうんだよ IDとかアドレスが変わってもムーブって呼ぶの
知らなかったの? 勉強になって良かったな
円錐を横から見た人が三角だといい下から見た人が丸だというような構図ですね
人は争いをやめられないので滅ぼすしかないですね
>>423 そもそもコピーじゃないからな
コミットの内容は元とは完全に別物であり、差分だけが再現されている
勉強になって良かったな
>>425 幼稚園児か?
完全一致じゃないとコピーじゃないとか言いだしたらファイルコピーとかも所有者とか日付とかいろいろ変わるのコピーじゃなくなるぞ
git のは日付とか作者は変わらないのでまだ保存性高いぞ
cherry-pick と rebase が一緒なんて恥ずかしいこと言ったの話をそらしてごまかしたいんだろうけど無理がありすぎる
cherry-pick は元のが消えない、rebase は元のが消える、方向も逆、べつもの、あきらめろ
>>426 分かって言ってるのかどうか知らないけど、日付が変わるとかのレベルじゃなく、そもそも差分箇所以外は原理上全くの別物よ
変更内容のムーブというならまだしもコミットのムーブは流石に意味不明
>>427 誤魔化すな rebase と cherry-pick は別物、元が消える(ムーブ)のと、消えない(コピー)の違い
ここで言ってるのは元が消えるかどうか、完全一致とかの話題ではない
>>429 もしかして誤魔化してるじゃなくて本当に分かってないの? マジ?
0┳A━B
┗X━Y
を
0━A━B━X━Y
にする時に使うのが rebase
0┳A━B━X━Y
┗X━Y
にする時に使うのが cherry-pick
基本中の基本
いやどう考えてもそのレベルの話は全員わかってるやろ
この一連のやり取りに足りないのは知識でもIQでもなくEQ
お前ら小学生からリベースしろ
>>430 rebaseはcherry-pickで新しいコミットが作られてそっちに単なるポインタであるブランチが移動したのと同等
コミット消すとか移動とかいう動作は含まれない
どこからも参照されなくなったらいずれgcで消えるってだけ
英語が下手でコミットメッセージを書くのが苦手だったんだけど、AIで自動化したら快適になったぜ
>>435 そうなるともう、ログなんか書かなくていいんじゃないのとなってくるな
>>434 cherry-pick と rebase は別物って納得したんだな
rebase の内部動作の話するんなら
1. 分岐点を自動で探し出す
2. 分岐点からヘッドまでを対象の場所へ cherry-pick する
3. 元の場所のブランチ名を消す
4. 新しい場所にブランチ名をつける
5. ガベコレで古いブランチのコミットが消える
これを cherry-pick を繰り返すのと同じだと主張してる時点で何も分かってない
>>439 移動してるだろ 432 見たら一目瞭然
コレが基本概念
内部実装の話しして誤魔化そうとしてても、お前が間抜けなこと言った時事は消えない
>>435 英語で直感的にヤバい時のメッセージに気付く訓練もいるから、AIは使えばいいけど読み書きの練習はしておけよ、と思った。
とりあえずDt80は一度公式読んできなよ
たかが間違って覚えてたところで誰も煽りやしないよ
あと描いてたツリーで、XだのYだのをリベースなりチェリーピックなりしたやつはXダッシュとかYダッシュとかにしよう
そこだけ流石に同じ文字じゃ読んでてちょっと気持ち悪すぎる
>>442 今でも「rebase は cherry-pick を繰り返しただけ」と主張してるの?
そんな覚え違いしてるのお前だけだろ、この通りの文言があったらポインタ示してみろ
どっかの変なサイトが誤訳してるのなら知らんが rebase は cherry-pick してるだけじゃないことはお前も完全に理解できてるだろ
>>444 どう訳したらそう誤解するんだ? 別物だというのは文章から明らかだろう
エスパーしてみると
違うからこそ basically ってわざわざ明確に書かれてるに、もしかして basically て単語知らなかったとか?
native のつかうbasically は「基本部分では、だいたいにおいて」みたいなニュアンスで、本当に同じ時には使わない
「だいたい同じ」を「同じ」って覚えてたんじゃないの?
方向の違いとかコピーとムーブの違いが「同じ」と「だいたい同じ」の違いというわけか。
>>449 あー、どう訳したか説明しないとこ見るとエスパーが図星なのか
公式が初心者向けに「ほぼ同じです、でもこういう点が違います。詳しい説明はこちらって」って書いてるのの最初のとこだけ見て「ほぼ」も見ないで、後に続く説明もリンク先の詳細も無視して同じって言い張ってただけか
それはお前の読解力が足りてないだけ、公式のせいじゃないぞ
>>450 訳というかそもそもそのドキュメントは色んな言語版が用意されてて日本語のものもあるよ
訳が気になるなら読んでみよう
>>451 誤魔化してないで「お前が」同じだと主張する部分を説明してみろ
少なくともリンク先の英語の初心者向けの紹介には書いてないぞ
本当に同じならお前が cherry-pick で rebase 実装してみろ、そうすればみんな納得するだろう、技術者なら実際にやれば同じか別物か分かるだろう
git のソースコード読んだことないやつには想像もつかんだろうが rebase はかなり複雑なことをやってる、初心者向けのページすらまともに読み解けないお前には最初の1歩目の分岐点を探し出す作業ですら絶対に無理と予言しよう
そこで何か違うか端的に説明できたらよかったねおじいちゃん
何がmoveしてんですかぁ?
commitじゃなくてbranchのことですかぁ?
じゃcopyってどうゆうことですかぁ?
>>453 話逸らさずに同じとういうことを証明してみろ
細かい事いえば山程違いがあるけど、違うというのは 432 で素人にも一目瞭然なのに覆せるわけないだろう
間違えた恥ずかしい事実はごまかせないぞ
違いがあるというなら、あなたがコミットのコピー/ムーブと呼ぶものはどちらも実際には全く異なるコミットを作り出すでしょう
そういうのをダブスタという
>>432 XY両方ではなく、XやYのみを取り込むのがcherry-pickというイメージだが
>>458 普通の範囲指定が効くので
その図なら git cherry-pick ..Y みたいに指定すれば X と Y の両方 cherry-pick できるよ
会話が噛み合わないコントみたいなスレで草
みんな文意文脈にももっと気を配ろうぜ
「エクスプローラー」の「Git」統合などが実現へ ~Microsoftが開発者向け新機能
ps://forest.watch.impress.co.jp/docs/news/2015419.html
エクスプローラーなんて、Windows7のときに使わなくなったな
MSアカウントにログインしないとExoplorer使えないとか
もうWindows要らんな
わざわざExplorerからコミットとかプッシュする奴おるんかw
OSのSystem領域も含めて全部がリモートリポジトリの運用かな。
>>465 申し訳ありません、今でもTortoiseGitでやってます
Windowsだと、手取り足取り指示してあげないと自分で何もできない「開発者」をExcel方眼紙の手順書で「プログラミング」してあげるような仕事も多いから、
そういう場合に「開発者」の手元にいちいちGitクライアントを導入させるという頭悪い手順を記載する必要がなくなるなら便利かもしれない
オススメのgitクライアント教えて
source treeはなんかuiの一つ一つがデカくて肌に合わなかった
うちではSourceTreeというやつを使ってるよ
わかばちゃんの中の人
ps://x.com/llminatoll/status/1935310637196095988?t=KJizsM3DHuYlJSyTCzcZcg&s=19
VSCodeの拡張機能で提供されてる Git Graphが 使いやすいね
あれいいよね、見やすい
ハッシュ手打ちの人がんばってw
CUI でもハッシュを手打ちすることなんてほぼないだろ
ブランチもタグも検索も使ってないんだろうか?
>>481 んー
でも、他のGitクライアントも似たもんじゃないの?
似たような、がどの辺を指してるかにもよる。
rebaseかstash簡単にしたい、tag打ちたい、ブランチ作りたいならだいたいどれでも出来る。
ただ現場で初心者多くて教育面倒だし日本語じゃなきゃだめとかいうなら、SourceTreeか
非公式多言語版GitHub Desktopしかないと思う。
>>485 で、ベストは?
英語でも有料でも、なんでもいいので
interactiveなrebaseをサポートできてないやつ多いでしょ
基本は好きなの使えばいいよ。
対面レビューで追加コミット後に「レビューOKだからコミットひとつにまとめといて」って言われたり
「ウチは協力会社に外資いるから日本語コメントだめなんだ、英語にしといて」って言われない限り
rebase(やsquash)やamend使うこともないだろうし。
いや rebase -i も --amend も使いまくりだろ
何なら一番多く使うコマンドまでありえる
一発で完璧な記録できて後は触らないみたいな超人じゃなきゃ、普通に多用するだろ
といっても元のコミットがある程度ちゃんと作られてることが前提じゃない?
単に作業のチェックポイントとして気軽にコミットしてると、いざコードレビュー前に整理しようとしたときには元のコミットを無理に再利用するより
resetして作り直した方が早いことが個人的には多い
書いてて思ったけど、元のコミットがすでに整理されている上で修正を入れる状況としては、コードレビューの中での修正があるね
もしチームのポリシーとして瑣末な指摘反映をログに残さないことにしているなら、レビュー後マージ前にrebase -iするのは便利かもしれない
そっちじゃなくて手元で色々作り散らかしたコミット履歴を綺麗に読み易く整理してから、レビューに出す。
順番入れ替えたり、コミットメッセージを分かり易くしたり、不要な履歴を消したり、コミットを意味に合わせて分割したり、統合したり
その整理に活躍するコマンドが rebase -i、慣れると手放せない
読み易く整理されてれば他人の時間の節約になる、試行錯誤とかタイポ修正とかの痕跡を他人に見せて時間を奪わなくてすむ
そんなの方法を議論する以前にもうAIにやらせたらいいんじゃないかという気もするが、
AIにやらせるならやっぱり一連のgitコマンドを直接生成させるのがいいのかなあ
コマンドだと人間が実行前にレビューするのは辛いものがあるから、diff入りのコミットログみたいな形式で生成させて、resetした上でそれを反映するのがいいと思うんだけど
>>492 AI に期待し杉
今のAIはしょせん賢い検索エンジンに過ぎない
学習したことの最も多数派の意見をそれらしく繋ぎ合わせてるに過ぎない
素人が玄人の作業を真似るのには使えるけど、玄人の創造的作業の代替は無理
>>491 プロトタイプであれやこれやするなら、さらにブランチ作って動くようになったら新しいブランチに
Squash and Mergeして、そっちのブランチをレビュー対象にした方が楽なんじゃ?
>>494 いやだから、色々なブランチに順不同で入ってるやつの共通部分を括りだして独立したコミットにしたり、一つのコミットを内容に合わせて複数に分割したり、ばらばらのを分かり易く統合したり
やるべきこっとはいっぱいあるだろ
merge も squash も amend も全部 rebase -i を使ってやる、rebase -i を何だと思ってるんだ?
amendやsquashを一般人が簡単にやりたいならGitHub Desktopの履歴のとこから出来るけど
使用説明が一切ないんだよなあ。圧倒的なドキュメント不足。
>>495 アトミックに細かくコミットする人ならrebase -iでの整理は容易だろうけど、分割が多い場合は面倒臭すぎるでしょ
resetしてやり直した方が早いわ
>>497 意味分からん
「細かくコミット」と「分割が多い」は同じじゃないの? お前の用語での違いは何?
コミットを統合したり分割したりするのも rebase -i から始めるのに?
いくらでも変えられるのに何が問題なの?
「細かくコミット」がバックアップ保証のつもり(で修正が動くかどうかも分からん)なら、
都度commitだけしといてpushは待っとけばいいんじゃないかなと思ったり。
当たり前だろ
動作確認できてないものpushすんなよ
>>500 どこに push するか次第だよな
共有リポジトリや公開リポジトリに push しちゃ駄目だろうけど個人のバックアップ・リポジトリとかに push しとくのは自由
リポジトリやブランチを好きなだけ作れて高速に同期できるのが git の利点なんで限られた少数のリポジトリしか使わないのはもったいない
GitHubでのチーム開発だと普通に共有リポジトリにpushするけどな。
ただしpush先はいわゆるfeatureブランチなど、そのタスク専用のブランチ。
draft pull requestを作っておいて他人から容易に目に見えるようにするとなお良い。
むしろ手元で長いこと留めてあいつ何やってんだろと思ったら突然クソデカpull request投げてくるような奴は嫌われるよ。まあ開発に限った話ではないが。
>>502 その辺はチームの方針次第だね
リポジトリで分けるのかブランチで分けるのか、個人専用かチーム用か、機能ごとか開発単位ごとか、公開範囲やレビューの手順や粒度をどうするか
マージやプルはとにかく、レビューは機能単位で小分けにやった方が良いとは思う(個人の意見
>>503 本題からは逸れるんだが、企業での開発で個人リポジトリにforkする運用ってなんかメリットあるのかな?
自分はこれまで共有リポジトリ運用しか見たことがない
なお、新卒がいきなりforkして怒られてるのは何度か見た
forkして複数の共有リポジトリを使うのは複数の会社がいてそれぞれガバナンスが違うケースなんかで珍しくないけど
>>504 github みたいに fork って呼ぶから混乱するんじゃないかな? オープンソースじゃないから単なる clone だろ
開発用の clone はいくつあっても良い、個人用でもデスクトップとノートPCとサーバと複数の場所にリポジトリもってて定期的に同期させたりしながら、移動中とか自宅とか会議中(笑)に開発したりできる
もちろん会社の情報統制や社外秘情報の漏出防止のためにコピー禁止とか部屋外に持ち出し禁止とか決まりあれば従わないと駄目だが
雑にpushするブランチを作ってあるので
ホイホイプッシュしてる
初心者なんですが、
branch1とbranch2があって、
branch1にcheckout後に、>git merge branch2 と、
branch2にcheckout後に、>git merge branch1 って、
結果は同じ?
>>509 ソースコードの内容は同じになる
ログは違う形になる
ログはどのようにソースを扱ってきたかの履歴書や歴史書のようなものなので複雑で大規模なプロジェクトほど価値が出る
>>510 あ、
今やってみましたが、
mergeコマンド実行するときの自分がいるブランチのほうが、引き続き残るって感じですかね?
>>511 ブランチ自体はどちらも残る
自分がいる方のブランチはマージ結果を指す形で歴史が一方進む
そうじゃない方のブランチはありのまま残る
「自分が今いるブランチに指定したブランチの「内容」を混ぜ(merge)する」というのがコマンドの意味
当然
・今いるブランチは書き換わってコミットが進む
・指定したブランチには変化なし
>>512 あ、
自分がいたほうじゃない方のブランチは、
branch3とかにつなげられますね…
>>513 ですね
わからない理由は、日本語のまともな解説が無いからですね…
海外の解説で、ようやく理解できました…
頭悪い人って自分が理解できないのを説明する人のせいにしがちだよね
説明が悪いならなんでお前以外の人は理解できてるのかと
能力不足故に検索の仕方や聞き方が下手で自らが望む解説に効率的にアクセスできない
ダニングクルーガー効果のような認知バイアス
元から他責的、依存的なせいで残り少しの努力を怠り多方面で理解不足に陥りがち
この中のどれかか、複合要因ではないかな
>>518 それは、
運良くいい説明を見れたからでしょ
お前には無理そうだが
大丈夫だよ
プログラム書いたらビッとコミットしてギュッとプッシュしてギャンよ
初心者の質問ですが、
Linux(サーバー的なもの)に、GitHubのレポジトリをクローンして来て、
それをWindowsパソコンからSSH接続して、
Gitの履歴の図(Gitグラフ?)って見る方法ありますか?
>>524 sshで git log --graph で履歴取ってきて、mermaid変換してmarkdown埋め込みにすればいいんじゃね?
>>526 あると信じて検索すれば報われますよというありがたい情報だぞ
https://forest.watch.impress.co.jp/docs/news/2056148.html 次のバージョンからgit svnが廃止されると書いてあるけど、
これはSubversionからの変換もできなくなるということでしょうか
Git for Windowsの次回メジャーリリースでの話をしてるならそうだよ
旧バージョンや本家を使うとか、svn2gitだとか別VCS経由とか手作業での移行だとかは出来るでしょう
もうシンプルに使われてる機能だけをブラッシュアップすればいい思う。
互換性とか古いものをメンテし続けるのは大変だよ。
いまだに新規プロジェクトでSubversionからっていうのはもう洗脳されてるから放置で良いし
Subversionから変換する気があるならもうとっくにやってるだろうし
Windowsユーザーだと、業務でSVNを使わざるを得ないがGitコマンド経由で使うことで辛うじて自己の尊厳を保っていた人もいそうだな
電車止まりそう
令和なのにまだSVNで消耗してる人いるんだ
絶滅危惧種かな
>>535 Gitって、開発速度は遅くなるよね
コードレビューとか丁寧にやると遅くなるよね…
>>538 規模(参加人数、開発期間、コードサイズ)次第。大きくなれば git 使った方が早い
>>538 gitだからコードレビューが必要って認識?
アホじゃね?
SVNと比較しての話なら、Gitはコミットやブランチの操作が遥かに軽量だからこそ、
チームが必要以上に面倒なワークフローを作り込みがちな面があることは否定できないな
非機能要件でちゃんとバージョン管理しろと書かれているからという理由だけでVCS使ってるような典型的な業務系でSVN使い続けてるようなとこだと、
レビュー済みまたはリリース済みのコードをコミットするだけみたいな運用は珍しくないからな
そういった意味で、VCSの運用という点だけ見ればGitの方が複雑になる傾向があるとは思う
>>539 まあ、
大規模だと、ちゃんと管理が必要ですね…
>>538 御社はコードレビューまともにやらんのですか?
lud20251027184758このスレへの固定リンク: http://5chb.net/r/tech/1707958209/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像
↓「Git 20 ->画像>1枚 」を見た人も見ています:
・矢沢永吉 Part290
・フォトキナ2020中止
・MEGWIN TVを語るスレ207
・株。と雑談(狼)1250
・株。と雑談(狼)1260
・株。と雑談(狼)1210
・Girls2応援スレpart10
・ホワイトデーオフ2019
・東京オートサロン 2025
・PIGGS Part.44🐷
・R-TYPE FINAL2 STAGE9.0
・PIGGS Part.42🐷
・R-TYPE FINAL2 STAGE2.0
・Dead by daylight Part204
・Dead by daylight Part302
・アトリエオンラインpart20
・Dead by daylight Part240
・Dead by daylight Part209
・Abemaトーナメント2025part6
・キングオブコント2023 part1
・10/23(日) 第77回菊花賞(GI) part11
・キングオブコント2021 part9
・キングオブコント2024 Part4
・キングオブコント2021 part8
・Gran Turismo 7 反省会 part200
・キングオブコント2023 part6
・キングオブコント2022 part3
・【ハナエ禁止】わ→すた part20
・キングオブコント2020 part24
・キングオブコント2021 part52
・キングオブコント2020 part29
・キングオブコント2021 part34
・キングオブコント2024 Part13
・NARUTO ナルト恋愛・雑談2098
・キングオブコント2024 Part12
・4/19(日) 第80回 皐月賞(GI) part 2
・キングオブコント2022 part16
・キングオブコント2017 part9
・キングオブコント2023 part27
・キングオブコント2023 part32
・キングオブコント2022 part14
・キングオブコント2021 part25
・キングオブコント2021 part37
・キングオブコント2020 part15
・Stage for Cinderella Part20
・キングオブコント2021 part51
・10/17(日) 第26回 秋華賞(GI) part4
・キングオブコント2021 part42
・【MobA】vainglory★tier220
・北海道日本ハムFIGHTERS 1290
・キングオブコント2022 part28
・ABEMAトーナメント2024 Part29
・【GamingD】釈迦 ID無しpart3002
・【速報】台風20号(ネサット) 消滅
・【PC】原神 / Genshin part201
・ABEMAトーナメント2024 Part26
・【PC】原神 / Genshin part209
・キングオブコント2017 part12
・ABEMAトーナメント2024 Part14
・【PC】原神 / Genshin part208
・キングオブコント 2024 part18
・第2回AbemaTVトーナメント Part10
・2019MotoGP 第8戦オランダGP Lap1
・10/21(日) 第79回 菊花賞(GT)part2
・【SUZUKI】新型 GSX250R part6
01:15:17 up 14 days, 16:37, 2 users, load average: 33.03, 20.66, 19.30
in 6.2449991703033 sec
@[email protected] on 110615
|