[過去ログ]
Git 18 (1002レス)
Git 18 http://mevius.5ch.net/test/read.cgi/tech/1650651945/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
844: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 11:40:31.33 ID:zDjINlW+0 >>842 index-stageを理解してないおまえにはわからないかもしれないけど、 DBへ登録されるのはwork tree上のファイル丸ごとでない場合もあるし、 逆にDBからwork treeへ展開されるのもファイルの中の一部分の場合があるから、 そんな単純にはいかない http://mevius.5ch.net/test/read.cgi/tech/1650651945/844
845: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 11:40:56.02 ID:zDjINlW+0 >>842 Windowsはアプリを実行する上でコード署名が必須でないから問題にならないだけ http://mevius.5ch.net/test/read.cgi/tech/1650651945/845
846: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 11:41:36.89 ID:zDjINlW+0 >>843 gitのマージを全然理解できてないからブランチを復活させたいとか思ってしまうんだな 普段の運用でスクリプトを使ってブランチを復活させたいとか思う羽目になることはあまりない ブランチがDBにおけるindexみたいなものとか、後から追加できる?みたいな疑問が生じるあたり、ブランチが何なのか全然わかってない reflogの偽造が必要という発想もかなりズレてるし、>>814 をみるとコミットの履歴がどういうものなのか理解できていないのだろう http://mevius.5ch.net/test/read.cgi/tech/1650651945/846
849: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 13:19:32.87 ID:zDjINlW+0 >>847 実際仕事すればわかるが add -Aで綺麗なコミットを作れるように整備されてるリポジトリはあまり無い デバッグしながらコミットしていくときは add -p を使うことがとても多い http://mevius.5ch.net/test/read.cgi/tech/1650651945/849
850: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 13:20:48.95 ID:zDjINlW+0 >>848 https://www.infoq.com/jp/news/2019/07/macos-ditches-bash-for-zsh/ http://mevius.5ch.net/test/read.cgi/tech/1650651945/850
886: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 18:33:50.55 ID:zDjINlW+0 >>877 分散バージョン管理ではですね、リポジトリのコピーがばらばらに複数存在することが前提なので、 あるひとつのリポジトリのコミット履歴が A<-B<-C で、他のリポジトリではこれが A<-C になっているという状況は不味いんですよ なのでGitではそれができないようにデータ構造が設計されています http://mevius.5ch.net/test/read.cgi/tech/1650651945/886
902: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 19:21:59.71 ID:zDjINlW+0 >>898 まあもう面倒臭くなってきたので全部説明しちゃうが 結果的に親のhashが自分のhashに含まれることになるのだけど、実際には親のhashは自分のコミットオブジェクトに含まれている その自分のコミットオブジェクトから計算して求めるのが自分のhash 親の祖先に変更があれば自分のコミットオブジェクトの作り直しになってhashも計算し直すことになりそれはもう自分ではない ブランチの実体はコミットオブジェクトのハッシュひとつだけ それで事足りる ず〜〜〜と思っているんだがどう考えてもお前のブランチへの理解はオカシイ 内部的な構造の話ではなくてユーザとして使う上でも問題があるような酷い理解に見える だから >>815 みたいな謎発言がでてくる DBのINDEXみたいなもの?とかの謎解釈で突き進まれてもついていけない http://mevius.5ch.net/test/read.cgi/tech/1650651945/902
905: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 20:45:45.41 ID:zDjINlW+0 >>903 reflogのhashは、HEADが変わるような操作をしたときに、その操作の結果のHEADのhashを追記していくだけのログだよ このログがその後のgitの動作に影響を与えることはない HEAD@{0}が常に最新の操作に対応したhashに更新される だからたとえばmasterとfirstという二つのブランチを交互にcheckoutすればこんな感じになる $ git reflog 0956cde (HEAD -> first) HEAD@{0}: checkout: moving from master to first be7e7d7 (master) HEAD@{1}: checkout: moving from first to master 0956cde (HEAD -> first) HEAD@{2}: checkout: moving from master to first be7e7d7 (master) HEAD@{3}: checkout: moving from first to master 0956cde (HEAD -> first) HEAD@{4}: checkout: moving from master to first be7e7d7 (master) HEAD@{5}: checkout: moving from first to master 最後にcheckout firstしたので HEAD -> first になってる http://mevius.5ch.net/test/read.cgi/tech/1650651945/905
909: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 21:15:14.62 ID:zDjINlW+0 >>906 そのリポジトリがどういう構造になっているかわけわからん git show-branch してみろ http://mevius.5ch.net/test/read.cgi/tech/1650651945/909
916: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 22:05:21.84 ID:zDjINlW+0 >>911-915 これ全部FFマージやってるから結果的にdevelopブランチとmasterブランチが同じものになるぞ http://mevius.5ch.net/test/read.cgi/tech/1650651945/916
917: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 22:09:56.21 ID:zDjINlW+0 mergeを全部merge --no-ffにするとマージした構造がわかるようになるし、最後にdevelopとmasterが別のものになる どっちのマージにするかは現場の運用しだい http://mevius.5ch.net/test/read.cgi/tech/1650651945/917
918: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 22:10:47.10 ID:zDjINlW+0 git log --graph --branches --oneline とかするとわかりやすい http://mevius.5ch.net/test/read.cgi/tech/1650651945/918
920: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 22:22:33.37 ID:zDjINlW+0 HEAD~1と@{1}は全然関係無いよ? HEAD~1は今のHEADの一番目の親のhash 親が複数いるときにはHEAD^1とかHEAD^2とかで指定する @{1}はひとつ前の操作によってHEADになったhashだから、どういう操作したかで変わり、リポジトリの構造とは関係無い http://mevius.5ch.net/test/read.cgi/tech/1650651945/920
921: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 22:30:34.81 ID:zDjINlW+0 >>914 で説明すると、 @{0}は最後のコミットで、FFマージした結果masterとdevelopがこのhash=1a804d9になった @{1}はgit commit -m 'initial'の結果できた最初のコミット(最後のマージ操作の前のmaster)で、最後にこれにdevelopをマージするためcheckoutしたらこれになってる http://mevius.5ch.net/test/read.cgi/tech/1650651945/921
923: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 22:40:04.85 ID:zDjINlW+0 最終的にお前のリポジトリは git merge develop でこうなっているはずだ $ git log --graph --branches --oneline * 1a804d9 impl5 (HEAD -> master, develop) * xxxxxxx impl4 * xxxxxxx impl3 * xxxxxxx impl2 * xxxxxxx impl1 * xxxxxxx impl0 * b0325fc initial 最後のひとつ前の git switch master をやったときにはこうなっていたはず * 1a804d9 impl5 (develop) * xxxxxxx impl4 * xxxxxxx impl3 * xxxxxxx impl2 * xxxxxxx impl1 * xxxxxxx impl0 * b0325fc initial (HEAD -> master) だから HEAD@{0} = 1a804d9 で、HEAD@{1} = b0325fc http://mevius.5ch.net/test/read.cgi/tech/1650651945/923
925: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 22:50:12.27 ID:zDjINlW+0 >>922 masterブランチをdevelopブランチにマージする方法が git switch masterとgit merge developの連続実行だけではないし、 HEAD@{n}は適当なタイミングでGCされるから、 HEAD@{n}をそんな用途に使う奴はいない http://mevius.5ch.net/test/read.cgi/tech/1650651945/925
926: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 22:52:10.49 ID:zDjINlW+0 >>924 commit履歴がどこにあるか説明するのに使いたいから、git log --graph --branches --oneline してくれ http://mevius.5ch.net/test/read.cgi/tech/1650651945/926
927: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 22:54:11.54 ID:zDjINlW+0 @はcommit履歴じゃなくて、reflogの履歴 http://mevius.5ch.net/test/read.cgi/tech/1650651945/927
929: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 23:01:41.48 ID:zDjINlW+0 @{n}はカレントブランチのreflog履歴になるはず reflog履歴はブランチ毎に存在するので master@{n}とdevelop@{n}は違うハッシュになってるはず git reflog masterとgit reflog developで比べてみればわかる http://mevius.5ch.net/test/read.cgi/tech/1650651945/929
932: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [] 2022/11/05(土) 23:09:25.37 ID:zDjINlW+0 >>928 impl5のコミットオブジェクトの hash = 1a804d9 impl5のコミットオブジェクトの中には親のコミットオブジェクトimpl4の hash = ba4e962 が格納されている impl4のコミットオブジェクトの hash = ba4e962 impl4のコミットオブジェクトの中には親のコミットオブジェクトimpl3の hash = a32e11d が格納されている impl3のコミットオブジェクトの hash = a32e11d impl3のコミットオブジェクトの中には親のコミットオブジェクトimpl2の hash = 8d9924f が格納されている impl2のコミットオブジェクトの hash = 8d9924f impl2のコミットオブジェクトの中には親のコミットオブジェクトimpl1の hash = 0f78740 が格納されている impl1のコミットオブジェクトの hash = 0f78740 impl1のコミットオブジェクトの中には親のコミットオブジェクトimpl0の hash = 47792a3 が格納されている impl0のコミットオブジェクトの hash = 47792a3 impl0のコミットオブジェクトの中には親のコミットオブジェクトinitialの hash = b0325fc が格納されている initialのコミットオブジェクトの hash = b0325fc initialのコミットオブジェクトはルートなので親のコミットオブジェクトが存在しない つまり impl5のコミットオブジェクトの hash = 1a804d9 からたどっていけば、コミット履歴が全部わかる 親が複数存在する場合には複数の親のhashを格納する http://mevius.5ch.net/test/read.cgi/tech/1650651945/932
933: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 23:11:25.45 ID:zDjINlW+0 >>930 ¥で表示されるとちょっと見にくいが、慣れれば見やすい http://mevius.5ch.net/test/read.cgi/tech/1650651945/933
934: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 23:14:09.84 ID:zDjINlW+0 >>931 逆だ。コミットのつながりはコミットオブジェクトの中にしかない >>932 みたいにね それを説明してるのが >>902 http://mevius.5ch.net/test/read.cgi/tech/1650651945/934
935: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 23:16:52.31 ID:zDjINlW+0 >>930は最後のdevelopのマージが --no-ff になってないな 最後のも --no-ff にするともっと面白いぞ http://mevius.5ch.net/test/read.cgi/tech/1650651945/935
938: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 23:23:27.84 ID:zDjINlW+0 >>936 FFマージしたらその情報は消滅するな --no-ff で全部マージすれば複数親のハッシュをもってるコミットオブジェクトの1番目だけたどればいける ^1 だけみていくね git log にはそれをやるオプションがあるはず >>930をそのオプションで表示すればこんな風に表示されるはず $ git log --graph --branches --oneline --オプション忘れた探せ * a5aaf72 (HEAD -> master, develop) Merge branch 'feature5' into develop * 324df68 Merge branch 'feature4' into develop * 68ed20a Merge branch 'feature3' into develop * 608e5d7 Merge branch 'feature2' into develop * 3924eae Merge branch 'feature1' into develop * 7db4424 Merge branch 'feature0' into develop * ec041f9 initial http://mevius.5ch.net/test/read.cgi/tech/1650651945/938
939: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 23:26:10.78 ID:zDjINlW+0 >>937 だとこう表示されるはず $ git log --graph --branches --oneline --オプション忘れた探せ * 2fb59f1 (HEAD -> master) Merge branch 'develop' * 832f464 initial http://mevius.5ch.net/test/read.cgi/tech/1650651945/939
941: デフォルトの名無しさん (ワッチョイ 09e4-chQ5) [sage] 2022/11/05(土) 23:41:19.40 ID:zDjINlW+0 >>939がそう表示されるのは、--no-ff マージの手順が何か普通とちがうからかもしれん >>939みたいに表示させるマージの手順もあるはずだから工夫してみるんだな http://mevius.5ch.net/test/read.cgi/tech/1650651945/941
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.033s