X



Git 18

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 9ce4-E6ke)
垢版 |
2022/04/23(土) 03:25:45.27ID:HOOXt/T30
ソースコード管理を行う分散型バージョン管理システム、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 16©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1502726047/
Git 17
https://mevius.5ch.net/test/read.cgi/tech/1599016710/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0449デフォルトの名無しさん (ワッチョイ 027c-5Ix7)
垢版 |
2022/08/13(土) 20:04:36.06ID:WN46//k40
個人レベルだからこそ簡単に導入出来るgitを使う
別にリモートにpushやらしなくても所々コミットしておけば戻るのも簡単だし
便利だと思うのだけどね
ただバイナリ(excelのファイル)みたいなのには使わないが
0452デフォルトの名無しさん (ワッチョイ 2e14-n238)
垢版 |
2022/08/14(日) 13:58:00.56ID:eEFpmmgP0
>>448
数万行のコードなんて覚えてられない
どうせおまえがやってるのは100行以下のサンプルコードだけだろw
0454デフォルトの名無しさん (ワッチョイ 2e14-n238)
垢版 |
2022/08/14(日) 15:48:56.36ID:eEFpmmgP0
>>453
たった数万行に驚いてるのか?
0455デフォルトの名無しさん (アウアウウー Saa5-oUG4)
垢版 |
2022/08/14(日) 16:47:19.54ID:psUND9lqa
そもそも描いたこと無いからイキれるんだな
0458デフォルトの名無しさん (ワッチョイ 468c-8lLW)
垢版 |
2022/08/15(月) 20:22:20.12ID:1icmhpVn0
リモートリポジトリが要らないというのは革命的だと個人的には思うけど、あんまりそういう話は出てこないよね。

リモートリポジトリ無しってgit登場時点で普通の話だったっけ?
0461デフォルトの名無しさん (ブーイモ MMb6-Hx7L)
垢版 |
2022/08/15(月) 23:18:53.39ID:f21eh4iaM
Gitの開発経緯を考えるとリモートリポジトリの存在はむしろ超大前提で、ローカルだけで使えるのは副産物みたいなもんでしょ
まあリモートと言ってもGithubみたいな中央集権型ではなくて、無数のリモートリポジトリがあってパッチを送り合うような開発スタイルが本来のGitの姿
0462デフォルトの名無しさん (ワッチョイ e1e4-Gxju)
垢版 |
2022/08/16(火) 01:17:15.07ID:yNxxslbt0
https://ezoeryou.github.io/blog/article/2015-04-08-linus-git-interview.html
gitの10周年を記念したLinus Torvalsへのインタビューの翻訳

> しかし、BitKeeperがやってきてからというもの、ソース管理に対する見方が変わったね。
> BitKeeperは大抵のことを正しく行っていた。
> レポジトリのローカルコピーがあることと、分散マージはでかかった。
0463デフォルトの名無しさん (ワッチョイ ed33-5Ix7)
垢版 |
2022/08/16(火) 23:52:04.96ID:zXGOFEoi0
>>448
gitに限らんけど、VCSって個人レベルでも機能追加とバグ修正並行して進める時は楽だ
0464デフォルトの名無しさん (アウアウウー Saa5-oUG4)
垢版 |
2022/08/18(木) 11:54:41.84ID:p/limWqpa
gitとgithubの区別がついてないんだろ
0465デフォルトの名無しさん (ワッチョイ 1f5f-SiT/)
垢版 |
2022/08/25(木) 00:47:44.66ID:x22ro4Sl0
初歩的な質問になるけれど…
異なるローカルブランチ「debug」と「genbug」が存在する。
両方のブランチに全く等しい「iam.txt」と「whoyou.txt」いうテキストファイルがあって、
どちらのテキストファイルも両ブランチの最新コミット内に存在するものとする。
「Iam.txt]の中身は"I am a dog."

「debug」ブランチで【rm whoyou.txt】と打って「whoyou.txt」を削除し、「Iam.txt」の中身を"I am a cat."に変更してステージングをしないまま、
【git checkout genbug】 と打って「genbug」ブランチに切り替え、ワークツリーを確認してみると、「Iam.txt」の中身は"I am a cat."に変更されているのに、
「whoyou.txt」は削除されていない(というより復活している)。
これはなぜなのだろうか?(whoyou.txtをgitリポジトリから消したいならrmコマンドではなくgit rm --cachedを使うべきなのはわかる)

いまいち、git checkoutをしたときのワークツリーの挙動が掴めない
0466デフォルトの名無しさん (ワッチョイ 9fe4-oOo3)
垢版 |
2022/08/25(木) 02:38:58.44ID:W0zamWK80
「git checkout ブランチ」するとき、

checkout前のブランチにおけるワークツリー上でのファイルの編集や削除は、
checkout前のブランチにコミットされているそのファイルとcheckout後のブランチにコミットされているそのファイルが等しい場合、
checkout後のブランチにそのまま引き継がれる

つまりIam.txtが変更されているのは正しいが、whoyou.txtが復活するのは何か操作を勘違いしていると思う

ちなみに、
checkout前のブランチとcheckout後のブランチにコミットされているファイルが等しく無い場合、
checkoutすることでcheckout後のブランチにコミットされているファイルへ置き換わるが、
checkout前のブランチにおいてワークツリー上でそのファイルを編集や削除していると、
checkoutが失敗する
0467デフォルトの名無しさん (ワッチョイ 9fe4-oOo3)
垢版 |
2022/08/25(木) 02:40:02.58ID:W0zamWK80
$ git status -sb
## debug
$ ls
iam.txt whoyou.txt
$ cat iam.txt
I am a dog.
$ echo "I am a cat." > iam.txt
$ rm whoyou.txt
$ git status -sb
## debug
M iam.txt
D whoyou.txt
$ ls
iam.txt
$ cat iam.txt
I am a cat.
$ git checkout genbug
M iam.txt
D whoyou.txt
Switched to branch 'genbug'
$ git status -sb
## genbug
M iam.txt
D whoyou.txt
$ ls
iam.txt
$ cat iam.txt
I am a cat.
0468デフォルトの名無しさん (ワッチョイ 1f5f-SiT/)
垢版 |
2022/08/25(木) 10:19:53.57ID:x22ro4Sl0
>>466-467
whoyou.txtが復活するのは勘違いしていたみたい すまん
「checkout前のブランチにおけるワークツリー上でのファイルの編集や削除は、
checkout前のブランチにコミットされているそのファイルとcheckout後のブランチにコミットされているそのファイルが等しい場合、
checkout後のブランチにそのまま引き継がれる」
こんな仕様があったのか。知らなかった。ありがとう。

ワークツリー上で行った操作をなかったことにしたい場合「git checkout .」で良いと思うんだけど
ワークツリー上で行ったgit操作履歴(というかローカルリポジトリへのコミット内容との差分)を確認する方法ってないのかな
0469デフォルトの名無しさん (ワッチョイ 9fe4-hHkJ)
垢版 |
2022/08/25(木) 11:07:47.22ID:W0zamWK80
>>468
ワークツリーでの操作に関しては履歴は残らない
カレントブランチにコミット済みとワークツリーとの差分については、上でもやってるけどgit statusや、git diffでもできる

git diff # 差分の内容を表示
git diff --name-status # 差分があるファイル名とそのステータスを各1行で表示
git status # 差分があるファイル名を含めたワークツリーの状況を詳しめに表示
git status -s # 差分があるファイル名とそのステータスを各1行で表示
git status -sb # ブランチ名を表示した下にgit status -sと同じものを表示
0471デフォルトの名無しさん (ワッチョイ 9fe4-hHkJ)
垢版 |
2022/08/25(木) 11:14:51.48ID:W0zamWK80
git status -vは-v無しと同じかな?
毎回git statusやると表示がうっとおしいので、git status -sbの方をシェル関数でgstに定義して良く使ってる
git status -vはmergeやrebaseが失敗したときに見る
0475デフォルトの名無しさん (ワッチョイ 82ad-p8/s)
垢版 |
2022/08/27(土) 07:34:04.59ID:cMY+Cqk70
エモいかどうかは知らんけど、ターミナルの方が便利
0477デフォルトの名無しさん (ワッチョイ 82ad-p8/s)
垢版 |
2022/08/30(火) 23:04:23.35ID:F66FctjD0
まあ、プログラマーくらいしか使わんかも
事務の人とか使ってるんかな?
0478デフォルトの名無しさん (ワッチョイ 4d33-yNcK)
垢版 |
2022/08/31(水) 08:44:21.38ID:hYROypry0
ファイル名で管理していて最新版がどれかわからんっていうネタはよく見るけど、最新版を追うためだけにVCSを導入するところは少ないでしょ
0481デフォルトの名無しさん (アウアウウー Sa85-Q92Q)
垢版 |
2022/08/31(水) 15:08:11.70ID:83s/Qhp/a
タイムスタンプω
パソコン初心者かよωωω=2πf
0483デフォルトの名無しさん (ワッチョイ 4d33-yNcK)
垢版 |
2022/08/31(水) 16:40:45.15ID:hYROypry0
あと、扱うファイル形式的にも難しそう

>>482
どういうこと?昔はタイムスタンプで何か言ってくる人がいたの?
0486デフォルトの名無しさん (ワッチョイ 5fc8-Iguz)
垢版 |
2022/09/03(土) 12:08:05.86ID:gEPymsC80
https://github.com/zhlynn/zsign
これをビルドするのにMSYS2を入れて、git clone git@github.com:witwall/mman-win32とやったら、git@github.com: Permission denied (publickey).になっちゃったんですけど、githubのアカウントがないとダメなんでしょうか?
0487デフォルトの名無しさん (アウアウウー Sa8b-Ro21)
垢版 |
2022/09/03(土) 12:50:36.25ID:91ZlUxrsa
git clone github.com:witwall/mman-win32
0490デフォルトの名無しさん (ワッチョイ 675f-9TNW)
垢版 |
2022/09/04(日) 18:01:40.46ID:F3wqdiHv0
情報系卒ではじめて業務でgit触ったんだけど、これbranch newFunc -u みたいな感じで
origin/newFuncみたいなの脳死で追跡するように設定しちゃってもいい?
このコマンド一度打っておけば。そのブランチにpushするときいちいちoriginって入れなくてもよくなる
くらいの認識でしかないんだけども
0491デフォルトの名無しさん (ワッチョイ 675f-9TNW)
垢版 |
2022/09/04(日) 18:03:08.45ID:F3wqdiHv0
日本語下手すぎたから書き直します
情報系卒の1年目で、最近はじめて業務でgit触ったんだけど、これ「git branch newFunc -u」で
origin/newFuncをup-streamに設定しちゃってもいい?
このコマンド一度打っておけば、そのブランチにpushするときいちいちoriginって入れなくてもよくなる(originが省略できる)
くらいの認識でしかないんだけども
0498デフォルトの名無しさん (ワッチョイ 4790-d2Vm)
垢版 |
2022/09/05(月) 16:50:12.49ID:dKgf+YLO0
ローカルブランチのソースコード中の
コメントアウトしてある説明とかの修整って
気付いたときに、いちいちコミットしてる?
それともstashとかにまとめといて後で一気にやる?
0503デフォルトの名無しさん (ワッチョイ ad97-UGq3)
垢版 |
2022/09/10(土) 14:36:31.13ID:4Ftb5IZI0
>>491
originしかないような状況ならまず困らないからOK
2つ以上のリモートリポジトリにpush/pullしたくなったら、ユースケースでデフォルトに設定するかその都度考えて打った方がいいか考えればok
0504デフォルトの名無しさん (オイコラミネオ MMb5-mw2C)
垢版 |
2022/09/10(土) 17:37:58.38ID:EVlNSVx0M
.gitattributesで.rcファイルをUTF-16LE-BOMに指定してから、git cloneした時にエラーが発生するようになりました
書き方が間違ってるのでしょうか?
>error: failed to encode 'resource.rc' from UTF-8 to UTF-16LE-BOM

.editorconfig
------------------
root = true

[*]
end_of_line = crlf
charset = utf-8
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
insert_final_newline = false

[*.rc]
charset = utf-16
------------------

.gitattributes
------------------
*.rc working-tree-encoding=UTF-16LE-BOM eol=CRLF
0511デフォルトの名無しさん (ワッチョイ a95f-Mjbb)
垢版 |
2022/09/10(土) 20:25:06.14ID:1BX46xrY0
とあるブランチで開発を進めていて、pushまで完了していつでもブランチ切り替えできる状態ではあるけど
新しくブランチ切ったからそこで作業してと言われた瞬間パニックになる ブランチ切り替えすると作業フォルダの中身変わるの緊張するわ
0512デフォルトの名無しさん (ブーイモ MM81-f1GR)
垢版 |
2022/09/10(土) 20:40:06.16ID:amn8zzJ5M
慣れないうちはコミットログやブランチ同士の関係をグラフ表示できるGitクライアントに頼ったほうがいいよ
ミスっても所詮は手元だけだから、適宜リモートにプッシュしてさえいれば操作は大胆にやればいい
ただしプッシュ前のチェックだけは入念に
0516デフォルトの名無しさん (ワッチョイ 6aad-nSDm)
垢版 |
2022/09/11(日) 08:17:11.62ID:p8irpA6n0
>>510
頭が良い悪いは関係なくて、単に慣れの問題だと思うよ
心配しなくても、そのうち慣れる
0523デフォルトの名無しさん (ワッチョイ 136e-r4yT)
垢版 |
2022/09/27(火) 03:57:55.82ID:x8Dmf6Id0
c:\gittest\server\proj01
c:\gittest\client\proj01

というフォルダ作って上から下にcloneはできて下のフォルダで完結する操作はできたんだけど
下から上にpushしようとすると失敗する

To c:\gittest\server\proj01
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'c:\gittest\server\proj01'

こういう学習のためのテスト環境ってローカル同士じゃダメなんですか?
0527デフォルトの名無しさん (ワッチョイ 527c-tX/F)
垢版 |
2022/09/27(火) 11:33:58.99ID:vJTIC1iI0
そもそもどこからcloneしてきたのか不明だし、こういう質問する奴って情報が不足し過ぎてるような
githubとかにあるようなのをcloneしてpushして失敗しましたとかなら草だがw
0528デフォルトの名無しさん (ワッチョイ 7fe4-Nf8B)
垢版 |
2022/09/27(火) 13:09:21.05ID:+d371Z/C0
別にどこからcloneしてきたとか関係ないよ
デフォルト設定だとbareでないレポジトリへpushできないことがあるのは仕様
bareにするとかdenyCurrentBranchは危ないよとかググれば日本語の情報もいっぱいある
0530デフォルトの名無しさん (ワッチョイ 136e-r4yT)
垢版 |
2022/09/28(水) 11:25:13.07ID:bhRVKQK10
server側をベアで作り直したらうまくいきました
ありがとうございます

なぜ入門書はここら辺を説明してくれずに
まずGitHubのアカウントを作ります。とか言い出してしまうのか
0531デフォルトの名無しさん (ワッチョイ 7fe4-Nf8B)
垢版 |
2022/09/28(水) 11:44:27.73ID:MP/YhhuJ0
選び方が悪いね
そういう方向性の入門書ならプロジェクトリーダー濱野氏の入門Gitだ
5章「2か所で使う」でバックアップリポジトリをbareで作って云々を解説してる
githubには一切触れていない(と思う)
git clone /pub/repositories/~ みたいなローカルマシン内でのcloneを解説してる本は他にあるのかな
0532デフォルトの名無しさん (ワッチョイ ff55-vqPj)
垢版 |
2022/10/01(土) 10:02:20.72ID:DVLayUHe0
Gitをインストールした記憶がないのに、なぜかインストール済みでした。
Git Bashを起動すると、プロンプトが変だし、フォントが小さいし、色付けもされません。
プロンプトは「~>」です。

これはどういうことでしょうか?
0534デフォルトの名無しさん (ワッチョイ c31d-755I)
垢版 |
2022/10/02(日) 17:48:34.37ID:6kxI91N30
コミットメッセージについてです
テキストエディタを使って複数行書く方法と、コマンドライン上で1行書く方法が
あるみたいですが、基本的にはどっちを使うべきなんでしょうか?
0535デフォルトの名無しさん (ブーイモ MMff-HD9v)
垢版 |
2022/10/02(日) 18:05:40.19ID:dk1cJbbAM
仕事や既存OSSならチームのルールがあるだろうから先輩に聞け
個人ならどっちでも自分が楽な方でいい
ぶっちゃけコミットメッセージなんか誰も見ないから実際どうでもいいし、
そのうちチームに入ってから空気読めばいいだけの話なんで学習中の身のうちから意識して鍛えておかなければならないほど大した話ではない
0538534 (ワッチョイ c31d-755I)
垢版 |
2022/10/02(日) 19:05:01.56ID:6kxI91N30
>>537
そうなんですね
インプレスの本ではVSCodeを使いなさいと書いてあったのでそうしました
0539デフォルトの名無しさん (ワッチョイ cfbb-fxWw)
垢版 |
2022/10/02(日) 19:10:39.82ID:uPDZdRB50
コミットメッセージちゃんと書けるやつが本物のプログラマ。書けないやつはゴミグラマー。
自分で試行錯誤しているローカルリポジトリはコマンドラインで適当に入れても良いけど、他人に見せるやつはエディタで丁寧に時間をかけて書く。
コードを書いている時間よりコミットメッセージ書いている時間の方が長いくらいで普通。
0541デフォルトの名無しさん (ブーイモ MMff-HD9v)
垢版 |
2022/10/02(日) 19:28:14.51ID:Sn8H/WH4M
>>539
まあチーム次第だから君が間違っていると言うつもりはないが、一般的に言って流石にコーディングより時間をかけるのは時間の無駄
コミットメッセージは見つけづらくて無駄だから、そんな時間があったらドキュメントでも書いてくれ
0542デフォルトの名無しさん (ワッチョイ 435f-pIDl)
垢版 |
2022/10/02(日) 20:42:06.76ID:t7yq2oGI0
https://git-scm.com/docs/SubmittingPatches#describe-changes
> The log message that explains your changes is just as important as the changes themselves. Your code may be clearly written with in-code comment to sufficiently explain how it works with the surrounding code, but those who need to fix or enhance your code in the future will need to know why your code does what it does, for a few reasons:
...
0547デフォルトの名無しさん (スッップ Sd1f-HD9v)
垢版 |
2022/10/02(日) 23:56:46.78ID:Yp4OiWZtd
今時Tortoiseはないでしょ
GitはSVNなんかと違ってフォルダベースじゃないからファイルエクスプローラ上で操作するのは非合理で、
SourceTreeのようなワーキングツリーの差分をフラットに扱うクライアントのほうが圧倒的に使いやすい
普通に開発を進める分にはVSCodeやVS等のエディタ付属のGit機能で十分だしな
■ このスレッドは過去ログ倉庫に格納されています

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