ソースコード管理を行う分散型バージョン管理システム、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:y2nzrwVZ0■ このスレッドは過去ログ倉庫に格納されています
