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
2デフォルトの名無しさん
垢版 |
2020/09/02(水) 15:09:20.95ID:PicHUi2j
O2
2020/09/02(水) 18:54:18.21ID:q1M0IzqK
OZ
2020/09/04(金) 10:46:20.73ID:b8MHX2E0
git revert ハッシュ
で打ち消しコミットが作られるけど
コミットではなく編集までにとどめるにはどうしたらいいの?
いったんコミットまでやっちゃってresetするしかない?
2020/09/04(金) 11:48:28.31ID:PFscGLUJ
git revert -n
2020/09/06(日) 16:41:02.82ID:hhCQ57iw
5/8にzoom の sun lin という人が簡単なパッチを投げる。
=> レビュアーに指摘を受ける
=> 何度もパッチを投げる
=> 何度もレビュアーに指摘を受ける
7/12に17回目のパッチを投げる。
17回目のパッチもHamano氏に指摘を受ける
=> その後sun linさんはパッチを投稿せず

9/3 HAMANO氏がどうなってんの?メールを投げる。
cooking in git.git には  Expecting a reroll. と書かれる。

https://public-inbox.org/git/pull.781.v16.git.git.1594544903477.gitgitgadget@gmail.com/T/#t

MLを見ていると簡単に採用されるパッチもあるし、何度もやり直しさせられて
20回以上作り直してやっと採用されるパッチもあるし、いろいろ大変ですな。
2020/09/06(日) 17:49:42.77ID:rO2fthBs
仕事は別として個人プロジェクトのやつは
パッチはそれなりにOKだったらマージすることにしてる

自分でやったほうが早いし、継続的に参加するわけでもない
簡単なパッチ提供者にプロジェクトの方針とか伝えるのは
面倒だしお互いに苦労するだけで実りがない
2020/09/12(土) 11:52:10.62ID:nNCBAW3g
>>6
Hamano氏が「圧」したら、sun lin 氏からパッチの返信が来た。
cooking in git.git は Will merge to 'next'. に変更されて
次の次( 2.30? )でマージされそう。
2020/09/15(火) 23:57:55.06ID:KM/f9j4m
Java 15が出たけどその少し前に開発のリポジトリがMercurialからGitに移行してた
https://mail.openjdk.java.net/pipermail/jdk-dev/2020-September/004694.html
https://github.com/openjdk/jdk
2020/09/18(金) 11:51:44.27ID:2dY2/FG1
チェリーピックをした際に、コミットログに 元ネタのコミットハッシュを書きたいんだけど
どうやって書けばよいですか?
2020/09/18(金) 12:02:20.16ID:R3OAeliQ
コメントに書けばいいんじゃね?
2020/09/18(金) 12:09:32.19ID:6ayRehP4
-n でコミットしないで置いとかれるから、手動でコミットする。
後からamendなりrebase -iする方がやりやすいかもしれない。
2020/09/18(金) 15:49:50.54ID:aUp7Wv4J
業務で使うコマンドをすべて教えてください
2020/09/18(金) 16:41:52.54ID:RdxSqYLS
porcelain全部です

わたしがよく使うのはinit、clone、add、add -u、status -sb、commit -q --no-verbose、commit --amend、commit --fixup、checkout、checkout -b、diff、diff --cached、merge --no-ff、merge --squash、reset、reset --cached、rm --cached、tag、tag -d、push、push -u、push --tags、push --delete、pull、branch -d、branch -D、rebase --onto、rebase -i --autosquash、cherry-pick、clean -dxn、clean -dxf、あとはgitk --allです。

gitrevisionsの知識は必須です。
2020/09/18(金) 17:24:01.05ID:aUp7Wv4J
>>14
ありがとうございます
それ全部覚えて兄貴の隣の席で仕事ができるようになりたいです
2020/09/18(金) 17:29:51.11ID:pL5OD7xJ
アーッ
2020/09/18(金) 17:36:12.07ID:MFVq5ubL
全部亀さんにまかしてるからコマンドわからん
2020/09/18(金) 17:57:28.42ID:EEUgY/GV
>>17
じゃあ黙ってて
19デフォルトの名無しさん
垢版 |
2020/10/02(金) 18:04:15.70ID:tsHxEmjC
https://github.com/yuto-te/msword-test
ms wordのファイルが管理できると聞いて試したけど

git clone https://github.com/yuto-te/msword-test
cd msword-test
git wdiff test.docx

git: 'wdiff' はgitコマンドではありません。 'git --help'を参照してください

で動かない
となって
2020/10/02(金) 19:14:43.54ID:AtQnXyyi
そのレポジトリのaliasにwdiffの設定書いてあるみたいだけど。
2020/10/02(金) 19:15:01.95ID:AtQnXyyi
そのレポジトリのREADMEに。
2020/10/03(土) 09:07:07.46ID:UxGtK8U5
cloneやpushなどでリモートホストとファイルやり取りする際にファイルの同一性はどのように担保しているのでしょうか?
例えばブラウザでファイルダウンロードしたときにたまにファイルが壊れていることがあったりしますが
gitでそういったことは起きないのでしょうか?
23デフォルトの名無しさん
垢版 |
2020/10/03(土) 09:30:56.19ID:F7oAx4CC
message digest
2020/10/04(日) 08:12:16.77ID:5wda0t4r
ありがとうございます
ファイル等gitオブジェクトはSHA-1で格納されているらしいということまではわかったのですが
受信時にこれを使ってベリファイしてるんでしょうか
2020/10/04(日) 10:48:37.02ID:3uxVqkZ8
SHAで格納とかいう時点でエラーチェックについて全くわかっていない。
チェクサムかパリティビットから勉強しろ。
2020/10/04(日) 12:42:13.02ID:nJe3tBQ/
横だけど、同一性のためのチェックはSHA-1で、ってことでしょ。
2020/10/04(日) 13:06:56.18ID:q15OM1O2
いまファイルを編集中でコミットしたくないんですけど
別件で修正依頼が来たのでそれの修正をしてそれだけコミットし、編集してた状態に戻すまでのコマンドを1から教えてください
2020/10/04(日) 13:21:30.23ID:eUP8i5sY
git stashしとけば?
2020/10/04(日) 13:26:43.51ID:5wda0t4r
>>25
すみません書き方が悪かったです
SHAハッシュ値をフォルダ名とかファイル名にして格納してるという意味でした
詳しそうなのでgitが同一性の確認をどのように行っているのかご教示いただけませんか
2020/10/04(日) 13:37:46.47ID:So0YsnAr
>27
git stash save
他の作業
git stash apply

でもなコミットを忌避する理由は無い。
gitはコミットを編集できるから作業はとにかくブランチでやってバンバンコミットしてamendとかrebaseとかsquashとかresetする方が良い。
stashだって無名のブランチみたいなものだぞ。
31デフォルトの名無しさん
垢版 |
2020/10/04(日) 13:52:04.81ID:jSKQ3Llr
横からだけど
master で作業中
git stash save
他の作業 (branch B を造ったとして)
git stash apply
ここで master に戻るんじゃなくて B の続きでってどうするの?
2020/10/04(日) 13:59:36.00ID:HtAk7si2
>>29
SHAハッシュ値をフォルダ名とかファイル名にして格納するのだから、格納するときにチェックすればいいだろ
実際にチェックするタイミングは臨機応変だよ
新規ファイルをコミットするときにはそのファイルのハッシュ値でフォルダ名やファイル名決めるのだから自然と一致するし
ファイルを上流からfetchしてきたときはファイルと一緒にハッシュも一緒にダウンロードするだろうからそこでチェックできる
git fsck みたいなコマンドで手動で強制的にチェックすることもできる
2020/10/04(日) 14:07:50.26ID:HtAk7si2
>>31
stashのapplyやpopは、saveしたブランチでなくてもできるよ
必要ならマージしてくれるし、当然コンフリクトもする
2020/10/04(日) 14:15:56.74ID:q15OM1O2
stashですねありがとうございます
2020/10/04(日) 14:29:25.50ID:nJe3tBQ/
>>29
どのプロトコル使っても整合性チェックすると思う。もしかしたらGit Internalに書いてあるかもしれないけど、どうしてそれを思ったの?webブラウザ使ってるときにデータが欠けてるか気になる?
2020/10/04(日) 15:28:09.43ID:5wda0t4r
>>32
ありがとうございます参考になりました

>>35
本来の用途と違いますが簡易的なファイルバックアップ目的で使えるかなと思いまして
これだけ使われていてデータ化け等のトラブルを聞いたことがないので
何らかの同一性をチェックする仕組みがあることは予想できましたが具体的に仕組みを知っておきたかったのです
2020/10/04(日) 15:36:37.25ID:5wda0t4r
あとは自分でソースコード読んで調べます
お世話になりました
2020/10/04(日) 19:47:03.49ID:So0YsnAr
いやだからSHA-1が何か知っていれば十分。
gitのソースなんか常識的なことしかやってない。
2020/10/04(日) 22:04:42.04ID:WqOXUMr5
そもそも差分で保持していることすら理解できてなさそう
2020/10/04(日) 22:31:26.82ID:FgyAeY9b
くすくすwww
差分で保持してないのにwww
2020/10/04(日) 22:32:10.07ID:8xouqNX0
差分で保持?Subversionあたりと勘違いしてそう
2020/10/05(月) 11:01:00.98ID:R+LPJQHy
バイナリ弄くって中身を直接改竄したらどこで気付けるの?
githubにプッシュする段階で弾かれる?
2020/10/05(月) 15:29:49.38ID:kPCKvS0E
簡単に試してみると
status チェックしない
checkout チェックしない
diff チェックしない
clone チェックしない!
pull チェックする
fsck 当然チェックする
2020/10/05(月) 21:05:37.85ID:OHtuwbKT
すまん、SVNと勘違いしてた
スナップショットだったな
2020/10/05(月) 21:41:45.15ID:LYJbfvxo
ウソつけ。知らんかったんだろ。無知
2020/10/06(火) 04:17:10.72ID:puwXjnsl
無知の血
2020/10/06(火) 07:28:16.44ID:PK5YmJhg
>>43
チェックしたかどうやって調べたんですか?
2020/10/06(火) 08:57:57.90ID:BpxuehLI
>>47
status
エラーが出ない。改竄されて無いかのような結果を返す
checkout
エラーが出ない。改竄されたファイルをcheckoutできる
diff
エラーが出ない。改竄されたファイルとの差分が表示される
clone
エラーが出ない。改竄された状態のままクローンされる
2020/10/06(火) 10:05:38.72ID:d7vEF+ck
Git v2.29.0-rc0
2020/10/06(火) 22:52:44.68ID:PK5YmJhg
>>48
cloneでチェックしないのは驚き。
pullするまでわからないの?
pullとfsckはどんなエラーが出るんです?
pushはさすがにチェックするよな?リモートレポジトリ壊れちゃうぞ

ちなみにblobを改ざんしたんだよね?
treeやcommitと整合取れなくてエラーが出るってことなのかね?エラーはどこで検知されるんだろう。
2020/10/06(火) 23:05:14.47ID:X5ZmpUrM
>>50
blobのオブジェクトの中身を改竄
ファイル名のハッシュ値と中身が一致しない旨のエラーが出る
clone も pull も同じファイルシステム上で試して、pullだけエラーになった
ネットからのcloneならもしかしてエラーが出るかもね
2020/10/08(木) 12:02:31.68ID:j+llKJ1y
gitのコマンドで、ファイル毎のコミットハッシュを一括で取得するようなコマンドはありますか?
53デフォルトの名無しさん
垢版 |
2020/10/08(木) 12:30:19.52ID:6clXcWBV
git status
git log
2020/10/08(木) 14:21:22.99ID:OZqBP6fN
git rev-list ブランチ名 -- ファイル名
2020/10/10(土) 02:00:17.61ID:8jOg16nE
Git v2.29.0-rc1
2020/10/10(土) 12:26:46.20ID:8jOg16nE
Git v2.26でプロトコルバージョン2がデフォルト

Git v2.27でプロトコルバージョン2が非デフォルトに

Git v2.29でプロトコルバージョン2が再度デフォルトになる予定
2020/10/11(日) 14:13:58.25ID:x9hId16M
プロトコルバージョンが2になるとなにがよくなるんでしょうか?
2020/10/11(日) 17:40:18.92ID:da5/ZQBA
おそらくGitHub特有の相談になるんだけどここでいいかな?

全体としては公開リポジトリなんだけど
ある理由(ライセンス制限、期日まで非公開にしておきたいデータ等)により
特定のファイル(secret.txt)もしくはディレクトリ(SecretFiles/)のみ非公開にしたい。

・【必須】バージョン管理はしたい

・全体と非公開ファイルは一体であり、非公開ファイル単体では意味をなさない
・開発中は公開/非公開を意識したくない

こういうとき、どういう方法を取ることが多いでしょうか
2020/10/11(日) 17:53:58.19ID:S22AJs2K
>>58
非公開のファイルは別リポジトリに分離してgit submoduleで参照するのはどうだろう
2020/10/11(日) 21:09:04.26ID:da5/ZQBA
ありがとう
ただ、(必須条件ではないとはいえ)この2つが気になってる

> ・全体と非公開ファイルは一体であり、非公開ファイル単体では意味をなさない
> ・開発中は公開/非公開を意識したくない
61デフォルトの名無しさん
垢版 |
2020/10/12(月) 09:46:45.59ID:941JO02h
submodule に ++
2020/10/12(月) 11:49:56.98ID:ApaV09Eo
英語のフォーラムとかも漁ってみたけど
「submodule、ただしお前さんの開発のフローに合致するかどうかは知らん」
って感じみたいね

下手すると1ファイルだけのリポジトリとか
作る羽目になりそうだけど仕方ないか…

リポジトリ本体とサブモジュールでコミットの足並みをそろえたり
本体のコミット履歴にサブモジュールのそれを流し込んだり出来るものなのかしら?
2020/10/12(月) 12:54:08.38ID:y+TJqPrh
全部非公開にすればいいだけじゃん
2020/10/12(月) 16:03:23.63ID:GBBJSb2v
そもそも足並み揃えなきゃいけない理由がわからない
2つのリポジトリから取ってくるじゃダメなのか
65デフォルトの名無しさん
垢版 |
2020/10/12(月) 16:48:06.10ID:941JO02h
足並み揃ってることが大事なら
sub の方にバージョン番号も入れておいて
main の方は sub のバージョンが正しいかどうか確認して動作する構成にしたら医院で内科医
2020/10/13(火) 15:53:28.21ID:zm2TVnZX
>>64
ライブラリなり単独プロダクトなり論理的に分割できるものではなく
本来であれば他ファイルと一緒に管理するべきものって前提ね

具体的な方法はともかく
本リポジトリのコミットAのタイミングで、サブ内のファイルBが更新された
というのが追えるのが望ましいかなと

>>65
あー、なるほど
バージョン番号というよりはコミットハッシュのほうが良いかもしらん
やったことないけど多分自動化出来るだろうし
2020/10/15(木) 17:38:16.60ID:RP+ZsziE
Yahooとかamazonみたいな巨大なサイトって1つのリポジトリでWebサイトのソースコードを管理しているのでしょうか?
68デフォルトの名無しさん
垢版 |
2020/10/16(金) 09:51:57.07ID:jRO02CLT
GAFA: Google Apple Facebook Amazon

Yahoo Microsoft Twitter Mercari LINE
2020/10/16(金) 09:56:14.58ID:/oPP6urL
googleはgitじゃないけど1つのリポジトリで全てを管理してるんだよな
2020/10/16(金) 10:40:11.28ID:sTwFaRRk
googleの巨大リポジトリはgitを改造して作ってるんだろ。
っていうか、そのためにHamano氏が雇われてると予想してるんたが。
2020/10/20(火) 09:00:10.89ID:0w6H4pKm
Git v2.29.0
2020/10/22(木) 18:03:28.49ID:h6SgBXMb
lan内、複数人、全部windowsマシンの環境で、vssからgitにしようとしてまっす
結局、gitサーバーって必要なの不要なの
bareレポジトリを共有フォルダにすればいいだけでっすか
2020/10/22(木) 18:09:00.63ID:0JejC+sC
認証とLFS使わないならそれでOK
74デフォルトの名無しさん
垢版 |
2020/10/22(木) 18:34:07.73ID:vPWH9GQz
local で運用したいなら
git と ssh のみで ok
2020/10/22(木) 18:47:15.24ID:1w9ntcAE
共有しないならローカルだけでgitを使うのもいいよ。

文書作成とかローカルgit重宝するんだけど、あんまり流行らないよね。
2020/10/22(木) 22:44:35.80ID:u1CdkM8r
コードレビューしないなら別にホスティングいらないんじゃね
2020/10/22(木) 23:45:51.43ID:qmwOK+gO
文書ならSubversionの方が使いやすい
Gitはサブディレクトリをチェックアウトできないのが致命的
2020/10/22(木) 23:58:01.66ID:u1CdkM8r
>>77
何を言ってるんだ?
2020/10/23(金) 00:09:06.10ID:cH47mZYH
自然文書じゃマージしようないし、Gitの設計は根本的に当てはまらなくなるな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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