Git 17

■ このスレッドは過去ログ倉庫に格納されています
2020/09/02(水) 12:18:30.39ID:XN0SxNMq
ソースコード管理を行う分散型バージョン管理システム、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 15
http://mevius.2ch.net/test/read.cgi/tech/1486239735/
Git 16©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1502726047/
-
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
2020/12/16(水) 17:56:04.09ID:mj49aMLx
>>353
ローカルをディレクトリごとバックアップしときゃいい
2020/12/17(木) 08:05:46.99ID:61mx8GyZ
>>353
暗号化ストレージにリモートリポジトリ作ったら?

git-secretとかgit-cryptもあるみたいだな。使ったことないけど。
2020/12/19(土) 18:19:57.30ID:///qzbaH
ついにトークンになるのか
遅い
2020/12/19(土) 18:37:10.93ID:FXefMsJV
トオル君?
2020/12/19(土) 20:23:49.34ID:JSwgNTOX
あたしの彼氏、今日の俺は今日だけのワンタイムトークン!とか
携帯を勝手に覗き見てトークンチェック!とか言ってくる…
もぅマヂ無理。
2020/12/19(土) 21:22:51.82ID:Q3lUmbae
githubのスレでやれ
2020/12/20(日) 09:27:35.42ID:e/uuvQSS
Git v2.30.0-rc1
361デフォルトの名無しさん
垢版 |
2020/12/20(日) 09:54:39.04ID:fJFvmm9G
GitHubがGit操作時のパスワード認証を廃止、今後はトークンによる認証が必須に
https://gigazine.net/news/20201219-github-token-git-operations/
2020/12/20(日) 10:42:03.68ID:KAYvYNrC
githubのスレでやれ
2020/12/20(日) 14:51:44.47ID:h+k5X02K
GitHubってパスワード使えたのか? SSH認証だけだと思っていた。
2020/12/20(日) 20:23:32.93ID:vVtHms2k
みんな SSH でやってるでしょ
ほとんどの人が影響なし
2020/12/21(月) 20:01:18.48ID:igZjZViM
前いたとこはみんな https でやってて credentil.helper でパスワード保存してたな
これも使えなくなるのかな
2020/12/21(月) 20:06:15.80ID:D8/t+Wt8
まあ確かに会社のPCに秘密鍵置いておくと
取られる可能性はあるからな
そのPC固有のトークンのほうが安全か
もちろん俺は秘密鍵にパスコードかけてるけど
2020/12/22(火) 13:33:02.25ID:RKM5Yi1/
>>358
ネカマキモwwwwww
2020/12/24(木) 08:43:34.70ID:EahE3vDH
2段階認証あるある:
割とでかいコードをチェックアウトするためにコマンドを走らせたままにして後で見たら、
認証が期限切れになっててチェックアウトが全部失敗していた。
面倒な世の中になった。
2020/12/24(木) 09:05:56.22ID:Lnk/IQtv
そんな話初めて聞いた
2020/12/24(木) 09:15:10.65ID:Z5M4Fv1j
git の話ではないな
2020/12/24(木) 10:16:03.46ID:cbU3fp1Q
Git v2.30.0-rc2
2020/12/24(木) 11:50:57.53ID:KLhNBo44
作り話やろ?w
認証は最初に1回やるだけなんだから
2020/12/24(木) 19:38:22.47ID:pdRNZMox
あ確かに、gitの話というよりsshの話か
2020/12/24(木) 21:19:58.32ID:zHK1POmy
sshは2段階認証かからないのでは
2020/12/26(土) 08:52:45.60ID:LWCoNPDe
OTPを使うやつね
376デフォルトの名無しさん
垢版 |
2020/12/26(土) 20:26:02.66ID:z44Zq0Yv
なぱきゃとわんちゃい
みたいな名前の奴いたな
2020/12/27(日) 03:54:40.69ID:ig+Dm/J9
gitとgoogleToDoがリンクしたらいいなーと思っている
思うだけ
2020/12/27(日) 07:18:20.86ID:3wE25Ze9
>>376
あああの渡辺満里奈と結婚した...

自分は今でも人に物を頼むときについ「タノムサク」と口走りそうになることがある。
2020/12/29(火) 12:27:28.18ID:kMuxVeIu
Git v2.30.0
2020/12/30(水) 17:18:57.85ID:m/y18WaF
macではgitconfigのPAGERに何を指定したらいいのでしょうか?
macにlessが入ってなくて
381デフォルトの名無しさん
垢版 |
2021/01/03(日) 15:29:55.66ID:VGPDd1I6
.gitignoreの拡張子って何ですか?
2021/01/03(日) 17:37:10.04ID:uWkBjJnT
gitignore
383デフォルトの名無しさん
垢版 |
2021/01/03(日) 17:49:29.18ID:j0Gq6j/F
.gitignore.gitignoreってこと?
2021/01/03(日) 21:32:50.27ID:37FlK6+Q
.の右側の名前が拡張子だけど
こんな質問するようなカスがGit使うのかよ
2021/01/03(日) 23:39:20.45ID:EZ344wHF
ドットファイルはLinux系の命名ルールで、Windows系以外では拡張子にあまり意味がない
.gitignoreの拡張子はgitignoreであるとも言えるし、拡張子はないとも捉えられる
ドットファイルの拡張子は何かという質問自体にほとんど意味がない
どのように扱われるかはツールやコマンド次第
386デフォルトの名無しさん
垢版 |
2021/01/04(月) 00:13:59.55ID:sJY8blrR
>>385
ありがとうございました

>>382-384
もうちょっと分かりやすく質問したほうが良かったですね
ごめんなさい
387デフォルトの名無しさん
垢版 |
2021/01/05(火) 12:02:54.07ID:G8BimKKu
windowsのexoplorerで拡張子表示しない設定がデフォだが
.gitignoreの様ないわゆるドットファイルは全部表示されなくなるのか
2021/01/05(火) 12:28:54.57ID:aNkjNIb3
試してみればいいだろ。どうせWindowsを叩くネタ探ししてるだけだろうけどなw
2021/01/05(火) 13:11:13.60ID:QCk77nSD
>>387
表示しないのは登録されている拡張子だけでは?
2021/01/06(水) 20:55:16.68ID:Td/kVwus
>>39
コミットはスナップショットであり差分ではない
https://github.blog/jp/2021-01-06-commits-are-snapshots-not-diffs/
2021/01/07(木) 00:39:52.75ID:EvYoYllB
もう許してやれよ
2021/01/07(木) 01:43:50.25ID:aTKj6syu
絶対に許せない
絶対にだ
2021/01/07(木) 02:19:08.21ID:KFrRp0zM
ゆるしてやったらどうや
2021/01/07(木) 04:30:00.53ID:34A7D4US
俺は許す。だが第二、第三の許さいないやつが登場するかもしれないがな!
2021/01/07(木) 04:30:26.54ID:34A7D4US
俺は許さへんけどなー
2021/01/07(木) 04:32:14.62ID:Rwr+/vV9
1000年恨み続けるぞ
2021/01/07(木) 04:35:29.84ID:6iGXQ2ZO
俺も許さへんけどなー
2021/01/07(木) 04:44:30.28ID:USu0TVaW
許すまじ>>39
2021/01/07(木) 08:44:09.61ID:ZQrukJD2
まあ使う分にはコミットがスナップショットでも差分でもどっちでもいいけどな

しかし、>>390でgitが過去のバージョン管理に比べて動作が速いのが納得できた
頭のいいやつの考えることは凄いわ
2021/01/07(木) 16:00:26.65ID:EQlW7mXe
まじめな話 git のコミットは思想的にはパッチセットだけどな。
古い rcs系はスナップショットとして管理して内部的には差分として保存。
gitは逆でパッチとして管理し内部的にはスナップショットとして保存。
この辺が技術的に面白いところだけど、混乱したりバカな記事書いたりするやつが多い。
2021/01/07(木) 21:43:05.24ID:fS2hw6z7
どういう意味?
〜で管理して…で保存、の前後が何を言ってるのかわからない
管理と保存の違いを詳しく教えてくれ
2021/01/07(木) 22:15:20.16ID:CAJlIzxl
はてブコメントを見てると勘違いしてる人が結構いるのがわかる
2021/01/08(金) 17:55:34.84ID:8WBrrTq7
gitがリビジョンを差分で管理してるみたいな勘違いは何年たっても減らないな
これとかもそうで、はてブとかでボロクソに言われて逆ギレしてるし
https://qiita.com/kaityo256/items/81e7951a1ca2706955a4
2021/01/08(金) 18:04:44.51ID:KooE4RYV
まあ確かに二重性はよく言われるところではあるよね
https://www.thirtythreeforty.net/posts/2020/01/the-wave-particle-duality-of-git-commits/
2021/01/08(金) 18:12:28.13ID:PqQGKODL
>>401
内部的にはスナップショットで持ってるけど、管理の単位(コマンドの操作対象)はパッチセット(差分集合)ってこと。
前者と後者の区別できないやつ(前者だけ主張するやつと後者だけ主張するやつと両方いる)が変な誤解が湧く原因。
stash とか例外はあるけど、内部実装の議論しないんなら git ではスナップショットとか忘れて良い。一方で内部実装からむならスナップショットが特徴。
2021/01/08(金) 18:33:01.34ID:0rHRhM/J
gitのコミットがスナップショットであるって基本原理を理解しておかないと、コミット間の差分比較が速いとか、リポジトリが肥大化するとか、svnの部分チェックアウトとか、gitの長所短所の理由を理解できない
2021/01/08(金) 19:26:51.55ID:PqQGKODL
長所の「理由」とか知ってる必要ある?
普通に使うだけなら理由は知らなくても結果の特徴だけ知ってれば十分。
ガソリンの燃焼の仕組み知らなくても車は運転できる。
技術者なら知っとけ損はないから、とは思うけど使う上で必須ではない。
それより内部実装と管理対象の混同の方が問題。嘘主張するくらいなら内部実装は忘れてもらった方が。
2021/01/08(金) 19:39:39.15ID:qqFAZEK4
管理の単位ってなんのことか知らんけど、git diffするにしたって、Git内部のどこかに差分ファイルがあってそれを表示してるんじゃなくて、スナップショット間でその都度差分作ってる
だからSubversionと違って、任意のコミット間、任意のブランチ間の差分も素早く作れる
逆にこのせいでSubversionに劣る機能もある
2021/01/08(金) 19:44:00.94ID:R5EtqfcI
そんでSubversionに劣る機能って?
2021/01/08(金) 20:44:22.53ID:gSC2W/4L
コミット毎にスナップショットを保存というのは、データサイズはやっぱりでかくなるん?
そのへんのトレードオフは割り切ってる感じなんかな?
2021/01/08(金) 20:50:30.68ID:gSC2W/4L
連レスごめん

個人用のメモとかのリポジトリでも、あんまり頻繁にコミットするのはデータ量増えてくだけだからよくなくて、
1日ごとの記録をまとめてコミットしたりとかの方がいいのかな

「コミットはドラクエのセーブみたいなもんだ」ってのを最初に見たから、なんか「こまめにセーブ」しちゃうんよね
プライベートリポジトリで
2021/01/08(金) 21:15:39.42ID:/3odlZSD
> 「コミットはドラクエのセーブみたいなもんだ」ってのを最初に見たから
それが本なら捨てたほうがいいレベル

バージョン管理というのは「バージョン」を管理するためのもの
バージョンというのは機能の違い

このバージョンで追加された機能、修正された機能はなんですか?
という質問に答えられないようなコミットは作ってはいけない
2021/01/08(金) 21:17:00.17ID:/3odlZSD
ここでいってるバージョンっていうのは1.0.0みたいな
公開用バージョンじゃなくて1コミット=1内部バージョンっていう意味な
リビジョンとも言う
2021/01/08(金) 21:19:32.15ID:/3odlZSD
困ってないのにデータ容量とか速度を気にするやつは
素人の証拠だろうな
2021/01/08(金) 21:20:19.55ID:gSC2W/4L
うん、パブリックな作業だとそうなんだろうけど、
プライベートで作業してるメモとかのリポジトリの話ね
2021/01/08(金) 21:23:23.78ID:iWK9k6TE
ローカルのメモフォルダはcronで自動コミット
2021/01/08(金) 21:33:17.87ID:gSC2W/4L
ちょっとググったら、コンセプトレベルだとスナップショットで保存してるという事になってるけど、
実際にデータストレージに格納する際は、普通にデルタで管理してるみたいね

https://stackoverflow.com/questions/8198105/how-does-git-store-files
2021/01/09(土) 00:02:47.37ID:W79PuS1T
>>410
内部で圧縮だとか重複排除だとのかの機能が働いてるのでテキストなら全く気にすんな。
変更箇所が小さいということは他のスナップショットとの間での重複が大きいので、その分圧縮がよく効いて結局小さくなる。

逆にいうと重複排除や圧縮の効かない画像や音声などのバイナリは小さくならないのでディスクを食いまくる。
2021/01/09(土) 04:27:19.29ID:OcYH4afG
肥大化するのは、Gitがブランチ作りまくって運用するって思想なのもある
DLLとかアセットを大量に扱いやすいゲーム開発でSubversionが好まれやすいのは、Subversionがバイナリーもデルタで管理するから
2021/01/09(土) 07:29:37.17ID:tLHsNmBf
ブランチ作りまくるのは、ブランチ作ったほうがいいから
gitだからブランチを作るのではない
作りたいから作るのだ

作りたいのにsubversionは面倒だから
作るのが億劫になる
2021/01/09(土) 09:07:49.24ID:HR4R//in
上にもあるけど、blob/tree/commitの違いを意識しないでスナップショット/差分の議論をしているから混乱するのかなと思った。
それと"パッチ"と"スナップショットでないもの"(=同じ内容を重複保存しない)も混ぜてるのも混乱の元だと思う
2021/01/09(土) 09:10:26.81ID:HR4R//in
gitはスナップショットと言っていいと思う。
blobは厳密にスナップショット。
tree, commitもスナップショット。ただし、すでに保存されているblob, treeがあるときはハードリンクする。

これでどうだ。
2021/01/09(土) 10:24:45.44ID:iPsMunau
とても分かりやすい
2021/01/09(土) 10:36:06.13ID:iPsMunau
BLOBが完全にスナップショットってことは
平均100バイトのソースを通算100万回変更してコピーが作られたとしても所詮100MB単位なので問題なしとして
100MBの神Excelを1000回コミットすると100GB肥大化しちゃう?
2021/01/09(土) 11:02:31.02ID:HMKT/ruy
GitのホスティングサービスってGitHubとかBacklogとかどこも1ファイル100MBまでとか全体で2GBまでとかに制限してるか、または推奨してる
Gitとしては巨大なリポジトリは分割して複数のリポジトリで管理するのを良しとしてる
2021/01/09(土) 11:06:21.25ID:HMKT/ruy
ただ、GoogleとかFacebookとかApache Foundationとか巨大なシングルリポジトリでソース管理してるとこも多くて、そういうとこじゃGitは使えない
2021/01/09(土) 11:20:38.94ID:VJN4kPsf
Androidはrepoという、沢山のgitレポジトリを集めたようなやつになってるよね。
でルートの.repoというディレクトリの下が結構でかくなる。何十GBとか。
2021/01/09(土) 13:01:58.11ID:GDFdV6+U
>>425
それgitの制限の話なの?
ホスティングサービスとしての容量制限じゃないの?
2021/01/09(土) 13:31:10.98ID:HMKT/ruy
それくらいがリポジトリ分割の目安ってこと
GitHubとかBitbucketとかたいていのプロジェクトで使うし
2021/01/09(土) 13:34:00.22ID:HMKT/ruy
Apacheはこんなことしてるし
https://svn.apache.org/viewvc/
2021/01/09(土) 13:54:10.37ID:GDFdV6+U
>>429
いや説明になってないけど
技術的にgitの限界というなら知りたいとこだが
2021/01/09(土) 13:58:13.20ID:HMKT/ruy
お前アホだろ
2021/01/09(土) 14:39:15.02ID:GDFdV6+U
説明できずに逆ギレとはテンプレみたいな奴だな
2021/01/09(土) 17:15:51.87ID:hICARDFL
バージョン管理システムはソースコードを管理するためのもので
差分見たり、ファイルの一部分を取り入れたりできなければ意味がない

100MBとかソースコード(テキスト形式)ではありえないようなサイズは
Git LFSを使ってファイルとして管理するのが推奨されてる
2021/01/10(日) 02:02:28.87ID:sWDDTlTI
>>417 >>422
このレベルの理解でドヤる奴が多いので混乱する

だいたい >>422 の理解でいいのだけど、
Packfile という仕組みで blob はスナップショットから別のblobとの差分へ変換される
この仕組みはコミット時に動くのではなくて、適当なタイミングで非同期的に行われる

ほぼ公式のこれ読んどけ
https://git-scm.com/book/ja/v2/Git%E3%81%AE%E5%86%85%E5%81%B4-Packfile
2021/01/10(日) 02:10:27.13ID:sWDDTlTI
>>422 のハードリンクというのは違うか、同じハッシュを参照するだけ
2021/01/10(日) 11:31:03.72ID:YtDhIn2G
>>435
コミット(というかインデックスファイル作るときなのでadd)したときにはスナップショットが作られる(記事内のlooseオブジェクト)けど、
gcで差分に変換される(=packfile)ってことか。勉強になるわ。
差分はどういうフォーマットなの?たぶんdiffではないよね?

あとハードリンクってのは概念的な類似(inode)から口走っちゃったけど、>>436のつもりです。ブランチと同じようにハッシュ向けるだけ。
438デフォルトの名無しさん
垢版 |
2021/01/10(日) 16:45:12.51ID:LeXF6f76
>>416だと保存しないとトリガーが発動しないから保存を忘れてしまえば効果が無いな
2021/01/13(水) 21:53:18.46ID:5+4LZxHe
一番最初のコミットしたファイルにパスワードが含まれるファイルがあるので
パスワードを空にしてそのコミットを修正する方法を教えてください
そのファイルは2回目以降にもぼちぼち編集してますが
パスワードの行は変更しておりません
2021/01/13(水) 21:55:13.38ID:CyYDkVRJ
やっちまったな
2021/01/14(木) 00:17:47.56ID:iLKd+C5M
>>439
BFG Repo-Cleanerを--replace-textオプションで実行
2021/01/16(土) 07:59:32.68ID:WJOhPj8J
Git って今、SHA-1 と SHA-256 どっち使ってるの?
2021/01/28(木) 07:56:37.51ID:acOoD31W
git switch と git branch があったら、git checkout ってもう使い所ないですか?
2021/01/29(金) 17:38:30.84ID:W6HglRhM
自分のHTMLやcssの履歴を残したいのでgitを使い始めたのですが、

コミット(B)した後に、1ファイルの1行だけ修正してからコミット(A)してしまって
前々回のコミット(B)に取り込んで、コミット(A)を消す事はできるのでしょうか?

コミット(B)をrebaseをしてintaractiveを選んだのですが、コミット(A)は消えず
変化もありませんでした、Visual Studio Codeを使用しています
2021/01/29(金) 20:11:30.08ID:1cLC2MqD
>>444
--> B --> A を
--> B'(B+A) にしたいってことですね。
interactiveを使おうとしているということはコマンドラインは使えますね。

git reset --soft @^ && git commit --amend です。
Aの先に既にコミットしている場合や、作業領域がダーティの場合は、このコマンドではダメなので言ってください。

慣れてないなら、コマンド実行前に git rev-parse @ で表示される文字列をメモっておいてください。
2021/01/30(土) 01:49:46.04ID:Z9V3r2RM
gitとgithubが似たような仕組みって昨日知ったわ
ありがとう
2021/01/30(土) 03:16:40.27ID:wITmTCC/
>>445
rebase用にファイルを用意してみたのですが、
rebaseテスト> git reset --soft @^ && git commit --amend
&&は前のコマンドが成功したら次のコマンドを実行するとは思いますが、

発生場所 行:1 文字:21
+ git reset --soft @^ && git commit --amend
トークン '&&' は、このバージョンでは有効なステートメント区切りではありません。
&&は対応していないようです。

前のコマンドだけ入力してもエラーでした。
rebaseテスト> git reset --soft @^
fatal: ambiguous argument 'g': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
2021/01/30(土) 10:49:06.16ID:T6Q7OQGL
最後のエラーが謎い…環境を教えて下さい。
・gitのバージョン
・コマンドラインを実行しているシェル(bashではない?)

git reset --soft HEAD^
これはどうなります?
2021/01/30(土) 17:01:38.99ID:wITmTCC/
>>448
Visual Studio Codeで動くpower shellだと思います
> git --version
git version 2.24.1.windows.2
でした。

> git reset --soft HEAD^
変化がありました!

自分のレスを引用していますが
>>コミット(B)した後に、1ファイルの1行だけ修正してからコミット(A)してしまって
コミット(A)が消えて、直前に戻ったという感じです。
コミットのアンドゥと言ったところでしょうか。

そのままもう1度同じコマンドを打つと、内容を保持したままコミット(B)が消えたので
そこでコミット(B')みたいな形ではやりたいことはできました。
VSCodeのResrt to Previous Commit -> --soft を押しても同じ結果になりました

2回soft resetをしてからコミットするという感じで目的は達成できそうですが
最初の目的であるrebaseが動かなかったのは何か条件があるのかな・・
2021/01/30(土) 20:10:04.60ID:zAPZPJfA
目的は果たせたようでよかったです。
powershellは分からないですが、たぶん@と^は使わないほうがいいんだろうと思います。
2021/01/31(日) 22:20:13.70ID:/8udhYNB
皆さんってGUIのGitツールって使います?
使っているとしたらオススメとかってありますか?
2021/01/31(日) 22:32:34.38ID:BL5bBvd/
GUI使うのはIDEのgit連携機能くらいですかね
Visual Studioとか
2021/02/01(月) 00:11:14.51ID:d6MK+BJR
SourceTree使ってるけど、バージョンアップで時々変なバグ入れてくるのでおすすめしない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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