ソースコード管理を行う分散型バージョン管理システム、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 13
http://echo.2ch.net/test/read.cgi/tech/1439563364/
Git 14
http://echo.2ch.net/test/read.cgi/tech/1457412803/
VIPQ2_EXTDAT: default:vvv:1000:512:----: EXT was configured
Git 15©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ)
2017/02/05(日) 05:22:15.65ID:AxwpDksc02デフォルトの名無しさん (ワッチョイ)
2017/02/05(日) 06:30:39.79ID:Aiaziz9C0 < `∀´>ニダー
3デフォルトの名無しさん (ワッチョイ)
2017/02/05(日) 14:05:34.08ID:k22lvY+904デフォルトの名無しさん (ワッチョイ)
2017/02/05(日) 15:38:55.62ID:+MDXuZ600 rebaseを使いこなして初めて
gitを使えるようになったと言える
gitを使えるようになったと言える
5デフォルトの名無しさん (エムゾネ)
2017/02/05(日) 15:39:17.20ID:uN/SMrchF >1 乙py
6デフォルトの名無しさん (ワッチョイ)
2017/02/07(火) 10:05:09.07ID:rbbJBTTu0 gitlab復旧作業8時間実況すげ
https://www.youtube.com/watch?v=nc0hPGerSd4
https://www.youtube.com/watch?v=nc0hPGerSd4
7デフォルトの名無しさん (ワッチョイ)
2017/02/07(火) 11:25:57.76ID:HoZye2uF0 rebaseの使い途がそんなにないんじゃね
コミットが何百もあったときにrebaseで綺麗にできると思えん
squashはresetでできる
使えるのは過去のコメントを編集するときくらいか
コミットが何百もあったときにrebaseで綺麗にできると思えん
squashはresetでできる
使えるのは過去のコメントを編集するときくらいか
8デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 03:26:19.24ID:EqksEKaR0 >>7
コミットが何百もあるブランチを
マージするってのがそもそも間違いだよね?
そのどでかいブランチから、小さく機能を抜き取って
小さなブランチにしてマージするべきだよ。
そのときにcherry-pickを使うのは当然ながら
抜き取ったあとの整理でrebaseも行う
コミットが何百もあるブランチを
マージするってのがそもそも間違いだよね?
そのどでかいブランチから、小さく機能を抜き取って
小さなブランチにしてマージするべきだよ。
そのときにcherry-pickを使うのは当然ながら
抜き取ったあとの整理でrebaseも行う
9デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 03:53:20.12ID:TcrM+SWf010デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 11:32:37.78ID:glAhqeU30 何かそういう、ブランチを整理するときのワークフローで分かりやすいドキュメントってないですか?
いつもいろんなgit操作を試行錯誤してしまって、本題がコミットすることからブランチ整理することにずれていってしまうので。
いつもいろんなgit操作を試行錯誤してしまって、本題がコミットすることからブランチ整理することにずれていってしまうので。
11デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 11:38:22.96ID:AT2+3Uwc0 >>8
なるほどと思ったが
cherry-pickは操作後の動作が保証できない
mergeなら操作後の動作が保証できる。完全ではないがcherry-pickよりまし
なのでmergeのほうが優れている
なるほどと思ったが
cherry-pickは操作後の動作が保証できない
mergeなら操作後の動作が保証できる。完全ではないがcherry-pickよりまし
なのでmergeのほうが優れている
12デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 15:36:17.78ID:fGXhImwi013デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 17:10:20.00ID:glAhqeU30 >>12
あっ、そういうのはいいんで、rebaseを含めブランチの履歴を整理する分かりやすいワークフローがあったら教えて下さい
あっ、そういうのはいいんで、rebaseを含めブランチの履歴を整理する分かりやすいワークフローがあったら教えて下さい
14デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 19:40:31.54ID:Z548kjM+0 最強の整理整頓術はそもそもモノを増やさないことだってのは全く間違ってないと思う
ブランチ整理って何がしたいのか分からんけど、successful git branching modelでも参考にしたらええんちゃうの
ブランチ整理って何がしたいのか分からんけど、successful git branching modelでも参考にしたらええんちゃうの
15デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 22:22:54.22ID:EqksEKaR0 >>11
> cherry-pickは操作後の動作が保証できない
何を言ってるんだ?
cherry-pickはあるコミットを持ってくるというだけの機能で
cherry-pickしたあとの動作なんて最初から何も保証してないんだが
保証できないんじゃなくて、保証してない
だからrebaseして、そのcherry-pickしたコミットが正しく動くようにするんだよ
ちなみに、そもそもなんでcherry-pickして動かなくなるのかといえば
こまめなrebaseをしてないから。例えばコミットに対する修正を別コミットに
していたりするとそうなる。こまめにrebaseして意味のある単位にコミットを
修正していれば他人が読んだときのレビューも楽になるし、再利用もしやすくなる
> mergeなら操作後の動作が保証できる
mergeはブランチ全てをマージするものであってそもそも使うべきところが違う。
ブランチの中の1コミットだけを抜き取りたいときにmergeではできない
(できないからmergeの方が劣ってるとでも?w)
使い方が違うだけの話でどちらかが優れているとか劣っているとかいう話じゃない
> cherry-pickは操作後の動作が保証できない
何を言ってるんだ?
cherry-pickはあるコミットを持ってくるというだけの機能で
cherry-pickしたあとの動作なんて最初から何も保証してないんだが
保証できないんじゃなくて、保証してない
だからrebaseして、そのcherry-pickしたコミットが正しく動くようにするんだよ
ちなみに、そもそもなんでcherry-pickして動かなくなるのかといえば
こまめなrebaseをしてないから。例えばコミットに対する修正を別コミットに
していたりするとそうなる。こまめにrebaseして意味のある単位にコミットを
修正していれば他人が読んだときのレビューも楽になるし、再利用もしやすくなる
> mergeなら操作後の動作が保証できる
mergeはブランチ全てをマージするものであってそもそも使うべきところが違う。
ブランチの中の1コミットだけを抜き取りたいときにmergeではできない
(できないからmergeの方が劣ってるとでも?w)
使い方が違うだけの話でどちらかが優れているとか劣っているとかいう話じゃない
16デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 22:48:05.72ID:EqksEKaR0 >>13
> あっ、そういうのはいいんで、rebaseを含めブランチの履歴を整理する分かりやすいワークフローがあったら教えて下さい
簡単に言えば、こまめなコミット、こまめなrebaseだよ
有名なオープンソースソフト(例git)のコミットログを眺めてみればいい
あれが目標とすべきコミット
眺めてみればいいといったが、コミットログっていうのは読むものなんだよ。
後から読むこともあるしレビューのときに読むこともある。だから可読性が必要
じゃあコミットの可読性はどうやればあげられるかというと
意味がある単位で小さくまとまめること
例えば試行錯誤した形跡を表しているようなコミットを持ってこられたって
ここバグってる?すぐあとのコミットで修正されてるやーんとなって時間を無駄に費やするだけ
かと言って複数のコミットを全部まとめてしまったら量が多くなりすぎる
では意味がある単位で小さくまとめる(=ワークフロー)にはどうするかとうと
まず開発中は小さくコミットしていく。大きな単位でコミットしてしまうと後で分けるのが大変になるから。
そして開発中はこまめにrebaseする。他の人にとって知りたいのは結果であって過程じゃない。
プルリク出すときには、最初から間違いなく作業しましたよっていう状態にして置かなければいけない。
rebaseが下手な人はコミットも大きくなって、いろんな修正を混ぜてしまう。
そういうことをするからrebaseするとコンフリクトまで起きてしまう。
コミットを小さくしていれば驚くほど簡単にrebaseができてしまう。
だからこまめなrebaseも苦にならない
> あっ、そういうのはいいんで、rebaseを含めブランチの履歴を整理する分かりやすいワークフローがあったら教えて下さい
簡単に言えば、こまめなコミット、こまめなrebaseだよ
有名なオープンソースソフト(例git)のコミットログを眺めてみればいい
あれが目標とすべきコミット
眺めてみればいいといったが、コミットログっていうのは読むものなんだよ。
後から読むこともあるしレビューのときに読むこともある。だから可読性が必要
じゃあコミットの可読性はどうやればあげられるかというと
意味がある単位で小さくまとまめること
例えば試行錯誤した形跡を表しているようなコミットを持ってこられたって
ここバグってる?すぐあとのコミットで修正されてるやーんとなって時間を無駄に費やするだけ
かと言って複数のコミットを全部まとめてしまったら量が多くなりすぎる
では意味がある単位で小さくまとめる(=ワークフロー)にはどうするかとうと
まず開発中は小さくコミットしていく。大きな単位でコミットしてしまうと後で分けるのが大変になるから。
そして開発中はこまめにrebaseする。他の人にとって知りたいのは結果であって過程じゃない。
プルリク出すときには、最初から間違いなく作業しましたよっていう状態にして置かなければいけない。
rebaseが下手な人はコミットも大きくなって、いろんな修正を混ぜてしまう。
そういうことをするからrebaseするとコンフリクトまで起きてしまう。
コミットを小さくしていれば驚くほど簡単にrebaseができてしまう。
だからこまめなrebaseも苦にならない
17デフォルトの名無しさん (ワッチョイ)
2017/02/08(水) 23:13:58.04ID:I20sKjnm0 最初から意味がある単位で小さくまとめるのが理想だけど、
後からブランチの履歴を整理する手段も色々ある。
gitでアレを元に戻す108の方法
http://labs.timedia.co.jp/2011/08/git-undo-999.html
Gitでやらかした時に使える19個の奥義
http://qiita.com/muran001/items/dea2bbbaea1260098051
後からブランチの履歴を整理する手段も色々ある。
gitでアレを元に戻す108の方法
http://labs.timedia.co.jp/2011/08/git-undo-999.html
Gitでやらかした時に使える19個の奥義
http://qiita.com/muran001/items/dea2bbbaea1260098051
18デフォルトの名無しさん (アウアウカー)
2017/02/09(木) 08:27:12.93ID:ClsEJCvia git(hub)-flow
19デフォルトの名無しさん (エーイモ)
2017/02/13(月) 10:17:21.25ID:Ql0/GOXFE git mvしないでmvしちゃったんですけどgit addしたらrename扱いになってました
絶対にgit mvしなくてもgit画面どう見てくれるから問題ないってことですか?
絶対にgit mvしなくてもgit画面どう見てくれるから問題ないってことですか?
20デフォルトの名無しさん (ワッチョイ)
2017/02/13(月) 10:39:40.22ID:1h+Oz1MN021デフォルトの名無しさん (ワッチョイ)
2017/02/13(月) 15:13:09.61ID:UyeCKZqE0 改行コード変わるだけで別ファイルになるけどな
22デフォルトの名無しさん (ワッチョイ)
2017/02/17(金) 09:56:23.44ID:hEtwtvyY0 毎日仕事が終わったら、その日作ったソースコードを
gitサーバーにコミットして帰宅する俺。
gitサーバーにコミットして帰宅する俺。
23デフォルトの名無しさん (ワイモマー)
2017/02/18(土) 01:13:13.92ID:neEeF1u6M コミットして帰ると次の日休んだ時にビルドが通らないと呼び出し喰らうパターンだな
24デフォルトの名無しさん (ワッチョイ)
2017/02/18(土) 01:21:39.27ID:YzcxuYMW0 >>22
プッシュじゃなくて?
プッシュじゃなくて?
25デフォルトの名無しさん (ワッチョイ)
2017/02/18(土) 01:58:54.36ID:SqGT/vv9026デフォルトの名無しさん (ササクッテロル)
2017/02/18(土) 02:04:19.48ID:odevQhO/p 細かくコミットしていくことを心掛けたいが、気付くとコミットを忘れて突っ走ってしまう
そんな馬鹿野郎におすすめのツールとか運用とかないですか
そんな馬鹿野郎におすすめのツールとか運用とかないですか
27デフォルトの名無しさん (ワッチョイ)
2017/02/18(土) 03:06:20.95ID:3dbLYC4l0 >>26
突っ走った後にgit add -p 使って複数のコミットを作る
突っ走った後にgit add -p 使って複数のコミットを作る
28デフォルトの名無しさん (ワッチョイ)
2017/02/18(土) 11:33:38.07ID:YCJMYP7V0 >>26
一定時間ごとに自動でコミット、プッシュするスクリプトがあったと思う
一定時間ごとに自動でコミット、プッシュするスクリプトがあったと思う
29デフォルトの名無しさん (ワッチョイ)
2017/02/18(土) 13:22:21.19ID:y2nzrwVZ030デフォルトの名無しさん (ワッチョイ)
2017/02/19(日) 22:56:47.13ID:ae9YYSse0 cron 書けとしか言いようがない。
31デフォルトの名無しさん (ワッチョイ)
2017/02/22(水) 00:19:55.01ID:doFig/5A0 エディタに自動保存機能なけりゃ編集内容はメモリ上にしかないからどのみち死ぬ
32デフォルトの名無しさん (ワッチョイ)
2017/02/22(水) 15:40:38.57ID:7bpb3LbA0 >>31
数分おきにエディタに :wq! を送るスクリプトを作ろう
数分おきにエディタに :wq! を送るスクリプトを作ろう
33デフォルトの名無しさん (JP)
2017/02/22(水) 15:45:05.02ID:T1tKwjPzH 意味のある区切りじゃない自動保存などゴミ
34デフォルトの名無しさん (アウアウカー)
2017/02/22(水) 16:51:00.38ID:QaRsR5LQa そもそもコミットは成果毎に行うのであって細かくすればいいというものではない
35デフォルトの名無しさん (ワッチョイ)
2017/02/22(水) 19:13:30.90ID:nmnET67+0 プレーンテキストとかワープロとかならともかく、ソースコードだったらコンパイルするためにどんどん保存してるんだから自動保存ってそこまで必要性高いものでもなくない?
36デフォルトの名無しさん (ササクッテロラ)
2017/02/22(水) 19:54:40.37ID:OuXxGo6Bp コミットと保存の話が混ざって混沌としてきてる
37デフォルトの名無しさん (アウアウカー)
2017/02/22(水) 20:45:47.20ID:bVHsZCW9a 個人開発なら単なる履歴残しに使ってもいいがチームの場合はそれじゃ困るんだよね
38デフォルトの名無しさん (ワッチョイ)
2017/02/23(木) 01:11:00.83ID:9wlFqT9C0 ショートカットキーctrl+Sで保存は便利でよく使う
履歴残し程度なら同様にショートカットキーで保存とコミットができるようにエディタにスクリプト組み込めばOK
初回ショートカットキーで一時作業用ブランチを切らせて
一通り終わったなら別のショートカットキーでsquashなりでまとめてからコミットメッセージ入力窓でも出してから本来の作業用ブランチにFFマージさせればおk
履歴残し程度なら同様にショートカットキーで保存とコミットができるようにエディタにスクリプト組み込めばOK
初回ショートカットキーで一時作業用ブランチを切らせて
一通り終わったなら別のショートカットキーでsquashなりでまとめてからコミットメッセージ入力窓でも出してから本来の作業用ブランチにFFマージさせればおk
39デフォルトの名無しさん (ワッチョイ)
2017/02/23(木) 10:00:04.78ID:lHjqIPrz040デフォルトの名無しさん (ササクッテロラ)
2017/02/23(木) 16:27:13.03ID:EPi8ln12p41デフォルトの名無しさん (ササクッテロロ)
2017/02/23(木) 20:55:38.64ID:0FbQfq3Vp チーム毎にgit使って、各チームの成果をインテグした時にsvn使う事はある
個人でgit、チームでsvnって構成はgitの美味しさの大部分を潰してるように見えるけど、想定してる規模が分からんし何とも言えんか
個人でgit、チームでsvnって構成はgitの美味しさの大部分を潰してるように見えるけど、想定してる規模が分からんし何とも言えんか
42デフォルトの名無しさん (ワッチョイ)
2017/02/24(金) 14:06:29.60ID:STsv/yLm0 SHA1の衝突がGoogleによって公開、gitにも言及
https://shattered.it/
それに対するLinusの見解
http://marc.info/?l=git&m=148787047422954
https://shattered.it/
それに対するLinusの見解
http://marc.info/?l=git&m=148787047422954
43デフォルトの名無しさん (JP)
2017/02/24(金) 14:11:42.95ID:xRGcfmimH hashの衝突は元から想定済っしょ
そもそも5桁でちぎって管理()してるんだし
そもそも5桁でちぎって管理()してるんだし
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 青銅聖闘士のパンチは音速←わかる 白銀聖闘士はその数倍←まぁわかる 黄金聖闘士は光速←は?
- 4時だから窓から4回ちんこ出した
- クマどもが冬眠拒否
- さわやかって
- 紅しょうが大量に入れるやつwwwwwwwww
- そろそろみんなが忘れてそうなこと
