Git 16©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ソースコード管理を行う分散型バージョン管理システム、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 14
http://echo.2ch.net/test/read.cgi/tech/1457412803/
Git 15
http://mevius.2ch.net/test/read.cgi/tech/1486239735/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured >>450
別に30年分の履歴を全部覚えておく必要もないだろ 設定ファイルの中にパスワードが入っていてどうしても別ファイルに分離できない
なにかやり方が無いか探したら、フィルタを作る方法があるようだな
http://blog.davydovanton.com/2015/11/14/ignore-file-lines-in-git/ >>456
最後の一文
公式リリースノートでGit 2.18の全機能一覧を読んでください。 バージョン管理ツール「Git」は一体どういうものなのか?
https://gigazine.net/news/20180904-git-version-control-system/
なんでgigazineがgitなんか解説してんの?
ライトなIT系ニュースサイトのお前には力不足だろうに 訂正
どうでもいいコンピュータ関連の話題紹介サイトのお前には力不足だろうに 違うな
ナードが好きそうな話題紹介サイトのお前には力不足だろうに GIGAZINE以上の内容が書けて拡散できるお前がやれば? >>461
あの程度のgitの説明なら、誰でもかけるだろうなw
でもそんなのすでにたくさんあるからやる必要がない。 あ、ファイルダウンロード中だったw
しばらくしてからIPアドレス変更するよ 結局IPアドレス変更するの忘れた。
日付が変わると同時に変えるとしよう 自分より立場が上で途中から加わった人が”タイムスタンプが変わるのとファイルがロックできないとから使い物” <意訳>にならん。
GITからZIP管理にしようと言い出した。
どう説得したらいい? マージ最強
ロックはクソ
タイムスタンプはビルドシステムがファイルの変更に反応するのに必要 Git LFSのロックとか
ロックのあるSVNにしようじゃなくてzipかよ ホントにzip強制されるようなら転職不可避だな。
git以外でもろくでもない判断が下されるに違いない。 これやってトラブっても何も責任もてんがw
1. gitのメリットを言ってもらう
zipのメリットなら色々屁理屈言ってきそうなので
gitのメリットを言えないなら、それは無知であることを自覚させられる
2. gitのメリットの話と、人間の問題を切り分けて考えてもらう
gitのメリットがわからないのか、わかった上でそれを使う人間の技術力が低いから使えない
という話なのか、どちらかなのかはっきりさせる 3. 学習コストが云々言われたら、学習による開発効率向上による
コスト削減と比較してみたのかを聞いてみる。
コストコスト言うやつほど、"比較"をしてない。
コストは何をしてもかかるものなので、コストがかかる
っていうのは何の意味も持たない タイムスタンプは記録されているものを反映させればいいだけだから
zipなんかよりも完璧に管理できますって言えるな。
もちろん開発中はタイムスタンプを更新しないと不具合が発生するので
絶対にやらないこと。あくまで馬鹿向けのためのできると示すため 上司の上司に言って無能上司を更迭するしかない。
あるいは逃げるか。 どうぞどうぞでいいんじゃね?
メリットを享受する人間に実行してもらうのが吉。
俺はそれでもgitを使い続けるし、zipにしろって言われても無視する。(誰も困らないし。 >>481
要するに最終的にお前が会社を辞めるという結論でしょ? 468です。
みんなありがとう
その人には、自分の修正だけやってもらってGITでの管理は私がマージ&コミットすることになりました。本人は、VSS(ソースセーフ)にしたいらしい。 【このハゲ―、麦だろ】 TPPに米と毛が駆逐される <農林10号> 頭髪すら枯らせるモンサント
http://rosie.5ch.net/test/read.cgi/liveplus/1536286354/l50
ピザデブ、ピザハゲ、ピザ糖尿。 VSSか
Window10ではもう動かないんじゃなかったっけ http://medaka.5ch.net/test/read.cgi/prog/1531667040/
の39〜48あたり
VSSは遅いだけではなく破損するって時点で致命的
共有フォルダに毛が生えた程度のものと考えると良い
マージはあるみたいだが基本的に結果を確かめられないので博打になる ブランチあったらどうやってロックするんだ?
プログラミングではしばしば複数のファイルを編集する必要があるが
どのファイルを編集するのか全て作業前に把握して
全部ロック掛けるってのもむり
あ、このファイルも編集しないと
って思ったらもうロックされてたり
互いに同じファイルをロックしようとして作業が止まったらどうするんだ
相手が作業終わるまでサボる?
何ロックしてやがんだ!と文句を言いに行く?
ロックしたまま忘れたらどうする?
ロック無理やり解除して横取り? >>487
そもそも、ロックなどされない!
各人はリポジトリから、最新のファイルをダウンロードして、
自分の(ローカル)PC 内で、更新・保存するだけ
つまり、Git は、他のVSS と違って、一旦ローカルPC に、更新・保存しておく段階がある。
そして、切りの良い所で、それをリポジトリにアップロードする
そのアップロードは他人にも報告されるから、
アップロードされた最新のファイルを、ダウンロードし直せばよい VCS = Version Control System
VSS = Microsoft Visual SourceSafe Girのマージでロジックが変わってしまうパターンってなんかある?
VSSロックは官公庁の開発では割とアリだなと思ったよ >>492
あるよ。(だからマージされた後自動テストを走らせる)
例えば一つのブランチで、ファイルの上の方に
#define VALUE 100 という定義を追加する。
ずっと下の方で、VALUEを参照したコードを書く。
もちろんテストは通る
別のブランチで、ファイルの中頃に
#define VALUE 200 という定義を追加
そのすぐ下で、VALUEを参照したコードを書く
もちろんこれもテストは通る
この2つをマージすると
#define VALUE 100
#define VALUE 200
VALUE=200を期待しているコード
VALUE=100を期待しているコード
となる。
gitに限らずどんなものでもブランチ単体では問題ないし、
コンフリクトも起こさずにマージできるが、
テストに失敗してしまうことはある >>490
むしろロックでの開発が分からんって話なんだけど
テキストファイルを一回の作業で一個だけ編集する
ブランチは無し
って状況でも無けりゃ使えなくね
さらに
VSSは複数のファイルを同時にコミットみたいな機能が無いみたいに書いてあったけどまじ? >>495
人間から見た操作的には同時コミット(チェクイン)可能ではあるが、履歴は基本的にRCS/CVS的なファイル単位の差分管理のみ。 Now available: Git for Windows 2.19, including experimental built-ins for rebase and stash that make them both much, much faster! https://gitforwindows.org/ 共有用なんかで作るベアレポジトリって、中身はHEADとかbranch/とかばかりで、実際に管理しているファイルは入ってませんよね
git ls-filesしても、なにも出てきません
そのベアレポジトリで管理されてるファイルの一覧を見る方法を教えてください
cloneすると、管理しているファイルもclone先に作成出てきますが、そうて'はなく、コマンド等で確認したいです Git 2.14.5, 2.15.3, 2.16.5, 2.17.2, 2.18.1, and 2.19.1 CVSとかsubversionでブランチを作るのはgitに比べると遅いといわれる理由は何なんや
gitではブランチはコミットオブジェクトを指すだけの参照だから、ブランチを作成するには、コミットオブジェクトを書き込むだけで済むから高速というのはわかる
一方CVSやsubversionではブランチをどうやって作ってるんや(´・ω・`) CVSは知らんがsubversionのブランチってほぼファイルコピーみたいなもんだからじゃない? svnはブランチ作るだけなら言うほど遅くないと思うがな。
ブランチ作った時点では差分がないからファイル内容はコピーされないで参照ができるだけだよ。
それでもgitよりやることは多いだろうけど、ブランチ作るのもリモートリポジトリ操作だからってのが一番大きいんじゃないかな。
CVSはRCSというdiffファイルで世代管理するツールがベースになっている。
リポジトリもRCSそのままのdiffファイルに毛が生えたようなテキストファイルの束だから遅いと聞けばそりゃまあそうだろうと思う。
当時のPC環境が今より数段遅かったというのもあるがローカルで使っても遅かった。 >>507
subversionはブランチはリモートに作るもの
ローカルだけでは作れないので遅いし
ネットワークがつながってないと使えない ブランチ作成でファイルを全部コピーするのはVSSぐらいだろ? GitHubを使ってみたくてGit勉強してるんだけど
GitがGUIで使えるような奴はなんか欠点あるの?Windows環境とかでもCLIでやってる人が多いのはなぜ? 日常的によく使う操作はIDE使った方が早いけど複雑な処理になったらCUI使わないとできなかったりするね
要は使い分け >>520
逆じゃないかな。
日常的にやってる操作はCUIの方が楽でしょ。
変遷をグラフィカルに表示して一望したかったりする時にGUIが大いに役立つ。 要は使い分けだよ
CUIが必要なければ使わなくていいし
とりあえずはCUIで勉強するのがおすすめ >>521
ほんそれ
CUIで充分
>変遷をグラフィカルに表示して一望したかったり
githubのnetworkで観てるわ >>521
グラフを見るなら
git log --oneline --decorate --graph --branches --tags --remotes
https://qiita.com/imudak/items/4a8549b46fe2e509a08c どうしてもキャラクタ表示じゃなきゃやだっていうこだわりが無けりゃ gitk --all& 一択だね。 初心者です。
長くなったソースファイル(s1.cpp)があり、
このコードの一部を、新規作成したファイル(s2.cpp)に分割したいと考えています。
この時、どのような方法で移行するのがGit的には望ましいのでしょうか。
とりあえず今までは、まず単純にコピーしてコミット、
両方のファイルから不要部分を削除(+微修正)してコミット、
といった感じで2回コミットしていました。
なお、開発環境はWindows10 Pro、言語はC++、UIはGit Bash、
ホスティングサービスはGitHubを想定しています。 git的にはどうでもいいと思うけど、ファイルコピーしたという事実をわざわざ履歴に残したいの?意味なくない? >>528
コピーした事実というか、s2.cppからs1時代の履歴を追えるようにする
というのが一番の目的です
現状でも、分割したタイミングで分割したよとメッセージを残しておけば
人間なら内容を理解できるので、そちらを見てくれるとは思います
システム的なルールに限らず、定番のやり方だとか
別ツールで利用するときに相性の良い方法などあるのかな?
と思った次第 >>527
一回で充分
人間は
AをBにcopy
Aを編集
Bを編集
のつもりでも
gitは
AをBにrename
Aを新規作成
Bを編集
だったりする
(必ずこうなる訳ではない)
良きに計らえ >>530
ありがとう
リネーム扱いになるってことは、基本的にはちゃんと追ってくれるってことでいいのかな いまの操作でほぼ確実にログやblameが追跡できているのであれば
多分ほぼベストな方法なんじゃないかと思う 各commitの変更を見たりcheckoutするときとかはSourceTreeの方が便利だなぁと感じる
rebase -iとかfilter-branchを使う時はCLIでやってる 次に出る、2.20では
* "git rebase" and "git rebase -i" have been reimplemented in C.
なんだな。いろいろバグが出そう。 privateなリポジトリに誰がcloneしたか見る機能あります? 孫cloneできるのに意味あるのかな
GitHubやGitLabの監査ログには書かれると思う 個人の開発でパソコン二台で運営してる時、それぞれのパソコンでuser.nameとuser.emailは使い分けるべき? 何を運営してるか知らないけど、2台とも同じユーザが使うならuser.nameとuser.emailも同じでいいでしょ もしかすると、特定の用途のときに優位性を発揮するとかはあるのかもしれないが
すぐには思いつかないなあ .gitattributesで自前のxfuncnameを使おうと思ってるんだけど、xfuncnameの方をリポジトリに設定することって出来ないかな? Git Rev News: Edition 45
https://git.github.io/rev_news/2018/11/21/edition-45/
を読んでたんだけど、開発者紹介で
Developer Spotlight: Elijah Newren
> I’m a husband to the most amazing woman in the world, and a father
> to one son and six daughters. My wife is expecting again,
すげーw。嫁が8人目を妊娠中とかどんだけw
ユタ大学ってことはモルモンなのかな。 >>547
嫁さん大好きなんだろうな。なんかほっこりする ■ このスレッドは過去ログ倉庫に格納されています