Git 15©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/02/05(日) 05:22:15.65ID:AxwpDksc0
ソースコード管理を行う分散型バージョン管理システム、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
2017/02/24(金) 15:11:29.62ID:qhcGsvfzM
想定はしてないでしょ、無理矢理衝突させたらリポジトリ壊れたって書いてるし
http://stackoverflow.com/questions/9392365/how-would-git-handle-a-sha-1-collision-on-a-blob
2017/02/24(金) 16:02:16.98ID:U6j2M/4W0
>>43
5桁でちぎって管理ってなんのこと?
46デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/02/25(土) 10:54:33.01ID:xirdZVsB0
v2.12.0
2017/02/25(土) 11:32:01.15ID:PfZ6yy2F0
>>46
何か面白い機能追加された?
2017/02/27(月) 04:28:34.00ID:RD4dbD8r0
Linusの公式コメント
https://plus.google.com/+LinusTorvalds/posts/7tp2gYWQugL
2017/02/27(月) 13:29:26.47ID:v76+Cgkq0
SHA1衝突なんか怖かねーぜバーカ!
ってこと?
50デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/01(水) 00:08:39.88ID:MSk4m/Wm0
ファイル数が20万〜30万個あるプロジェクトをgitで管理できる?
git statusすると20万〜30万の全部のファイルの更新日チェックするの?
2017/03/01(水) 01:39:05.95ID:B+RUxrlO0
gitで管理できなかったら、他の何を使っても出来ないと思うw
管理せずにファイル置いとくだけならできるだろうけど
2017/03/01(水) 05:02:00.38ID:TmPMZG9k0
>>51
きも
53デフォルトの名無しさん (オッペケ)
垢版 |
2017/03/01(水) 12:18:24.07ID:riQaWnbAr
俺も思った
2017/03/01(水) 12:52:10.72ID:D9Ze9lwZa
>>50
それくらいなら全然大丈夫だよー
2017/03/02(木) 19:24:50.56ID:ZV5SMkF2H
>>50
人間よりは速い
2017/03/02(木) 23:03:10.15ID:sITpgG7dd
gitを使うのが目的になってる奴がいるな
2017/03/02(木) 23:06:07.56ID:qpimcWgg0
gitを使うのが目的じゃないけど結果的にgitを使ってるな
2017/03/02(木) 23:30:35.54ID:GmcRpo7M0
gitを使ってるカッコいい俺
2017/03/02(木) 23:31:43.91ID:em5mjT5q0
普通じゃ?
2017/03/02(木) 23:36:40.95ID:XOZN9kk90
gitの使い方を覚えられないおっさんも世の中には居るんだ
2017/03/02(木) 23:42:40.19ID:qpimcWgg0
使える人が使わないなら、それはいいんだよ。

能力不足で使えない(=無能すぎる)
会社のしがらみで使えない(=かわいそう)

あと使って見てないやつもダメだな
2017/03/03(金) 11:58:15.68ID:SmLECISdd
Gitが使えない外注イラネ
63デフォルトの名無しさん (JP)
垢版 |
2017/03/03(金) 12:30:04.87ID:IUFykjWpH
篩に使うのはありか
2017/03/03(金) 21:00:59.00ID:n9rn4mK30
なんでもいいから自分のソースくらい自分でコミットしろ。
2017/03/03(金) 21:35:27.51ID:EvAeH8F3d
本当になんでもいいの?
2017/03/03(金) 23:39:23.71ID:q5L7Z+jKM
masterにコミットしていいの?
2017/03/04(土) 00:19:50.00ID:2pwhOacNp
結果にコミットしていいの?
68デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/04(土) 00:59:09.29ID:kf4torcY0
面倒臭いのでだいたい
git add .
git commit --amend -m "hoge"

で済ましてる
一通り終わったらgit commit --amendでコミットメッセージちゃんと書く
squashしなくてよい方法だよ
2017/03/04(土) 03:38:59.15ID:X3LbZrz10
Git - 高度なマージ手法
https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%81%95%E3%81%BE%E3%81%96%E3%81%BE%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB-%E9%AB%98%E5%BA%A6%E3%81%AA%E3%83%9E%E3%83%BC%E3%82%B8%E6%89%8B%E6%B3%95


これいいね
2017/03/04(土) 11:03:44.63ID:fiOXClU60
git merge --abort
git rebase --abort

これいいよな。

svnとかだとやらかしてしまって中途半端な状態になって
これどうすりゃいいんだよってなってしまうけど、
gitだとたいてい--abortすればリセットできる
71デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/04(土) 14:23:44.15ID:GRvQ2lmz0
AにコミットしてA'
A'にコミットしてA''
になってるとき
A'をBに名前変えて
A->A''と
A->Bに分けることはできますか?
2017/03/04(土) 15:02:21.59ID:fiOXClU60
git checkout 好きなコミットID

ブランチ名なんて最新のコミットに名前つけてるだけであって
コミットIDで全て参照できる
73デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/04(土) 17:15:35.10ID:GRvQ2lmz0
A->A''の方にはB(A')が無かったことにしたいのですが
2017/03/04(土) 17:34:49.80ID:NAI/204b0
説明がわかりにくすぎだろw
pushしてればrevertで
してなければrebase -iで
2017/03/04(土) 21:55:14.48ID:X3LbZrz10
cherrypickでA''からAにパッチ当てりゃいいだけじゃね?
76デフォルトの名無しさん (スプッッ)
垢版 |
2017/03/04(土) 22:05:36.70ID:TK9n5Zigd
>>71
git branch B A'
をする
git rebase A -i
でA'の行を消す
2017/03/06(月) 23:20:15.96ID:8UuxKa0s0
ディレクトリやファイルをマージするだけの作業だが、あまりに大量&1日あたりの作業時間があまり取れないため、1ヶ月ぐらいかかる見込み

こう言う場合って作業完了してからまとめてコミットすべき?
それともキリのいいところでコミットすべき?
2017/03/06(月) 23:34:33.58ID:hCzUBa9v0
適当にコミットしていって後で纏めたくなったらrebase -iすればいいんじゃね
2017/03/07(火) 15:02:30.70ID:+1wYVpxF0
rebaseは甘え。 使ってはいけない。
2017/03/07(火) 18:29:12.37ID:JtxH0L4+M
せっかくローカルにあるんだし、どんどんコミットしたら?
2017/03/07(火) 19:25:45.74ID:deKTD69U0
rebase使っても実は隠しコマンドのrerebase使えばまた元に戻るから大丈夫
2017/03/07(火) 20:49:12.26ID:buHXdcTx0
rerebaseだと!?
2017/03/07(火) 20:55:44.46ID:FdtwfqDL0
rebase怖いならブランチ切るなりタグつけるなりしてからrebaseすりゃいいじゃん
rebaseしたってコミットそのものが世界からすぐに消えるわけじゃないんだし
84デフォルトの名無しさん (エーイモ)
垢版 |
2017/03/07(火) 22:48:44.65ID:6dT6PmkfE
git cloneで特定のタグから最新のコミットまでの範囲を取得する方法を教えてください
2017/03/08(水) 00:28:53.24ID:bFUfM0140
> rebase怖いならブランチ切るなりタグつけるなりして

そのブランチやタグを作るのが面倒なバージョン管理ツールがありまして、
そのせいでブランチやタグを切るのが嫌なんですよ。
2017/03/08(水) 01:12:08.47ID:+/47+kY70
知らんがな
2017/03/08(水) 08:51:03.76ID:dlE+7VUyM
ローカルだけブランチ作ればいいだろ。他のツールはスレ違い。
88デフォルトの名無しさん (エーイモ)
垢版 |
2017/03/08(水) 18:56:28.23ID:tzSf6NwiE
(1)git checkout -b hoge コミットID1 でhogeブランチを作る
(2)masterブランチに戻る
(3)git branch -D hoge でhogeブランチを削除する
(4)git checkout -b hoge コミットID2 で異なるコミットのhogeブランチを作る

hogeブランチでは何かを編集したりするわけではないので
hogeブランチにいたまま別のコミットIDでhogeブランチを上書き?する方法ありませんか?
masterブランチに戻ってからhogeブランチを作りなおして新たに作るのが面倒くさいので
2017/03/08(水) 19:57:59.67ID:AFnyce7m0
git reset --hard コミットID2
90デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/09(木) 06:48:45.74ID:fQxPjt/z0
>>88
コミットIDでcheckoutすりゃいいだけじゃね

(1)git checkout コミットID1
(2)git checkout コミットID2
91デフォルトの名無しさん (スプッッ)
垢版 |
2017/03/09(木) 08:26:50.81ID:TQt2xuGKd
>>88
git reset --hardは、ブランチの付け先を簡単に操作できてしまうから、使う前にreflogの見方を覚えておくこと
2017/03/09(木) 08:37:37.52ID:K/l9Si6sM
>>82
リ・リ・リベース
アホデミー賞を総なめ
93デフォルトの名無しさん (エーイモ)
垢版 |
2017/03/09(木) 10:28:24.13ID:xGhx3aNSE
resetは困ります。。。。
checkoutでどうにかやる方法はないということでしょうか?
9488=93 (エーイモ)
垢版 |
2017/03/09(木) 10:29:17.80ID:xGhx3aNSE
ブランチは1個しか作りたくないんです
95デフォルトの名無しさん (スプッッ)
垢版 |
2017/03/09(木) 12:31:57.97ID:TQt2xuGKd
>>93
じゃあ>>90で良いんじゃないの?
コミットは出来ないけど
2017/03/09(木) 13:13:36.94ID:x6aOWZGA0
>>88
git checkout hoge
git merge <commit>
2017/03/09(木) 13:42:24.50ID:quKxBXU+0
>>93
なんでreset困るの?ブランチ消してる時点で同じことだと思うけど
resetしたってコミットが消えるわけじゃないよ
9888=93 (エーイモ)
垢版 |
2017/03/09(木) 22:57:50.27ID:DwjAxR0kE
git checkout -b hoge
git reset --hard コミットid1
git reset --hard HEAD@{1}
masterブランチには何の影響もないですね
最新のコミットに戻るときにreflogで位置を確認するのが面倒くさそうです
これも覚えておきます

>>96
mergeだと古いコミットに戻ろうとした時にAlready up-to-date.って表示されてしまいました
2017/03/09(木) 23:15:12.39ID:x6aOWZGA0
hogeにはすでにコミット1やコミット2が含まれてる場合もあって
その場合はそれ以降のコミットを捨てた状態にしたいってことなの!?
用途が謎
2017/03/10(金) 03:45:25.28ID:V4zus/a90
>>98
ブランチは1個しか作りたくない理由がわからないから、それだったらID1とID2に別のブランチを付けたら良いんじゃない?って思っちゃうんだけど
何で作りたくないんですか?
2017/03/10(金) 04:41:26.50ID:hkfiatAK0
>>90のやり方がスルーされるからやりたいことと違うんだろうなあ
2017/03/10(金) 14:48:19.74ID:y8xCqliG0
タグの代わりなんじゃ?
2017/03/10(金) 21:15:08.71ID:mGr7V+b80
みんなってさ、ステージングしているファイルから行単位とかでコミットしたり
する機能使ってる?

俺はファイル単位でしかコミットとかしないんだけどさ、そもそもステージング
してるところから行単位でまた編集するようなもんだから、テスト通るかわからなく
なるわけだし、あんまり積極的に使うもんじゃないよね。

あとdiffの結果画面の見方が今ひとつ苦手w
2017/03/10(金) 21:48:11.92ID:cBCq3F3F0
>>103
使わんなー
2017/03/10(金) 21:51:35.65ID:V4zus/a90
>>103
細かいけど、行単位でステージングする機能、じゃなくて、ステージングした段階から行単位でコミットする機能ってある?
2017/03/10(金) 22:13:50.48ID:y8xCqliG0
git add -p のこと?
ならすげー使うけど
2017/03/10(金) 22:28:17.98ID:gboOrvO30
git add -pの存在がsvnからの移行を決定づけた
2017/03/10(金) 22:51:42.82ID:mJMnK6Gx0
俺もよく使うな。

gitの便利さっていうのは現実的な問題を解決してることにあると思っていて、
理想は最初に計画を立てて間違えることなく作業をすることだけど
現実にはいろんな細かい修正を忘れたり分けるべき修正を一緒にやってしまったりするでしょ?

そういう時に俺は、いま修正している中で、特定の部分だけgit add -pつかって
一つのコミットにして、あとの分は別コミットにして、
テストは後から書いてrebaseしてまとめるとかやるよ。

他の人が理解・レビューしやすい並びのコミットと、
実際の開発順っていうのは必ずしも一致しないからさ
2017/03/10(金) 23:30:38.30ID:V4zus/a90
git add -pなら使う。行単位でステージングする機能、だよね?
2017/03/11(土) 06:24:50.89ID:d5jme4tX0
>>108
SVN 使いだけどこの機能とローカルコミットはマジで欲しい
2017/03/11(土) 10:36:14.71ID:JsoExgwjH
>>110
gitに乗り換えても良いんですよ?
2017/03/11(土) 11:07:52.10ID:qCTmGWaIM
行単位使ってる人多いんだな
完全ファイル単位だわ
考え方古いのか
2017/03/11(土) 12:21:39.87ID:d5jme4tX0
>>111
何となくだけど git は性に合わない
2017/03/11(土) 12:39:37.19ID:vAAcV1Smd
>>113
おじいちゃんこんにちは
2017/03/11(土) 13:07:42.60ID:/v3Qrvkv0
stash, cherry-pick, rebaseのないコーディングなんてもう考えられない
2017/03/11(土) 14:17:42.96ID:qqD7bP3W0
試行錯誤のあととかノイズでしかないからな。
そんなものを大事に抱えていても、コードリーディングの
じゃまになるだけで意味が全くない。
快適な開発をするときに役立つコマンドがgitには多く搭載されている
2017/03/11(土) 16:27:54.83ID:yCUlIQxq0
行単位とかやりすぎだろ。。
それなら作業者を統一するなり、ファイル分割するなりした方がいいんじゃねーの?
2017/03/11(土) 17:15:54.01ID:qqD7bP3W0
作業者が独りだから、同じファイルを複数行編集するんだろw
2017/03/11(土) 18:39:00.61ID:4afooUsq0
まとめてコミットするつもりで編集中だったワークツリーから
部分的に何行かコミットしてpushする必要ができたとか
けっこうある
120デフォルトの名無しさん (ワントンキン)
垢版 |
2017/03/14(火) 16:00:30.11ID:E+FUCYqdM
ファイルのタイムスタンプまで元に戻せるバージョン管理ツールってないの?
2017/03/14(火) 16:01:15.03ID:vbV/Jpv3H
>>120
git
2017/03/14(火) 16:49:48.82ID:vIMzEjCF0
ワロタ
2017/03/14(火) 19:54:39.02ID:6i3O/c5aM
はぁ?gitじゃタイムスタンプは戻らんから質問してんのにバカなの?
124デフォルトの名無しさん (ワントンキン)
垢版 |
2017/03/14(火) 20:00:39.69ID:gPjrDEpaM
もしそんなVCSがあるならmakeとかまともに動かなくて限られた用途にしか使い物にならんだろうなぁ
2017/03/14(火) 21:49:01.07ID:094BKVIr0
>>120
svn+TortoiseSVN でコミット日時に戻せるので我慢するか作り込みするしかなさそう
2017/03/14(火) 21:57:48.94ID:olV+TTff0
gitはOSSなんだからHACKするなり自分で手を加えればいいのでは?
127デフォルトの名無しさん (スプッッ)
垢版 |
2017/03/14(火) 22:06:05.44ID:U+Sav0FRd
>>123
コミットフックで全ファイルのタイムスタンプを記録しておけば戻せるよ
2017/03/14(火) 22:42:41.89ID:olV+TTff0
適当なツール使えばいいじゃん

https://github.com/search?q=timestamp+git
2017/03/15(水) 01:16:30.21ID:GKUdhRYR0
タイムスタンプは変えないでオリジナルのまま元に戻せるような機能は需要ありそうなのになんで最初から実装されてないの?
タイムスタンプはOSごとのローカルな仕様っぽいのでGit本体には入れなくないってこと?
130デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/15(水) 01:23:09.75ID:1ghxI2bb0
全く欲しいと思ったことが無いけど何に使うの?
2017/03/15(水) 02:50:18.09ID:Kz3kbyRR0
>>130
あり得るとしたら、たぶんタイムスタンプで更新有無を判断する現場なんじゃないか?
2017/03/15(水) 04:09:45.52ID:UbexXnp10
そんな馬鹿げたことから解放されるための構成管理ツールだと思うのだけど、世の中の闇は深いな
2017/03/15(水) 07:04:46.81ID:GKUdhRYR0
Gitにない機能は闇呼ばわりのGit真理教の方ですねわかります
134デフォルトの名無しさん (ワッチョイ)
垢版 |
2017/03/15(水) 07:44:08.96ID:1ghxI2bb0
>>131
今時そんな事してる現場なんてあるわけないじゃん?
2017/03/15(水) 08:18:02.75ID:WjEGzhMP0
>>129
記録したいのはファイルがいつ修正されたかではなくて
ファイルの行がいつ修正されたかだから。

ファイルの日付どころか行単位で
修正日時が記録されているので必要ない
2017/03/15(水) 08:32:23.84ID:WjEGzhMP0
>>133
> Gitにない機能は闇呼ばわりのGit真理教の方ですねわかります

Aというブランチでファイルを追加します。
Aブランチから派生したBというブランチでそのファイルを修正します。
Bというブランチでコンパイルしてオブジェクトファイルを作ります。
Aというブランチに戻ります。

Bというブランチでコンパイルしたオブジェクトファイルが残っています。
ファイルの日付はリポジトリに入れないのでAの方が更新日付が新しくなります
そのためコンパイルするとBのオブジェクトファイルは使用されません。
という素晴らしい仕組みはgitだけの特典だとでも?

あんたはどうしてもほしいの?
2017/03/15(水) 10:18:23.23ID:8jeOIUNnM
結論:Gitは素晴らしい仕組
2017/03/15(水) 10:22:20.47ID:8jeOIUNnM
流れ見てるとGitはコミット時の日時にファイルのタイムスタンプが変えられることすら知らないで偉そうに答えている奴いるなw
所詮は℃素人の烏合の衆かw
2017/03/15(水) 10:35:49.13ID:enIXRUuud
gitを使うことが目的になってるからな
2017/03/15(水) 12:42:56.93ID:7YWEdixI0
>>135
ごもっとも
だけどFAQでこの文章みた記憶がない
2017/03/15(水) 12:45:29.83ID:7YWEdixI0
>>138
commit時の日時だっけ?
checkout時の日時だと思ってた
2017/03/15(水) 12:52:42.68ID:kqJ31I++M
チェックアウトの度にタイムスタンプが書き換わっていたらさらに大混乱のような

手元にないから誰か試して
2017/03/15(水) 13:05:12.43ID:7YWEdixI0
>チェックアウトの度にタイムスタンプが書き換わっていたら

その時点で存在しないファイルとかチェックアウトの結果変更されるファイルのタイムスタンプの話なんですが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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