[過去ログ]
Git 18 (1002レス)
Git 18 http://mevius.5ch.net/test/read.cgi/tech/1650651945/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
903: デフォルトの名無しさん (ワッチョイ 617b-8+ss) [sage] 2022/11/05(土) 20:06:13.91 ID:646uiMLL0 >>902 前半の内容は知ってるし、そのつもりで898を書いてる。 それはtutorial2に書いてあったから。 そこのhash値も混ぜてるかどうかは関知してなかっただけ。 ちなみにtutorlal2には「ここのhash値とは違うから、各自のhash値をコピペしてね」 と書いてあるが、実際は同じhash値が生成される。 だからどこまで混ぜ込んでるのかよくわからなった。 名前と時間も混ぜ込んでるぜ!と書いてあるが、どう見てもそうじゃない。 ただまあ、親ハッシュは混ぜ込んでるのは理解した。 > ブランチの実体はコミットオブジェクトのハッシュひとつだけ それは俺の最初の理解、「点」なんだよ。815の通り。エントリポイントだけ、というわけだろ。 ただそれだと、オブジェクトツリーは辿れるが、 master @{1}で「master branch上の」一つ前、という経路情報に変換することが出来ない。 つまり、HEAD~! != @{1} とするには、何らかの情報が何処かに必要なんだよ。 そして今のところ、reflogしかないので、そこを動的に辿ってるのか?みたいなことになってる。 だから「reflogを偽造」(843)なんて話になる。 言い換えると、エントリポイントからだと、親は辿れるが、 親が複数現れたとき(マージ)に、どちらから来たのか分からないのと、 fast-forwardマージでオブジェクトは一本道でもbranch上では飛ばしている場合に、その情報がないんだよ。 これはどこに格納されてるんだ? http://mevius.5ch.net/test/read.cgi/tech/1650651945/903
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
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.053s