1 名前:デフォルトの名無しさん mailto:sage [2014/01/14(火) 21:16:57.41 .net] ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。 Git - Fast Version Control System git-scm.com/ ◆関連サイト Pro Git - Table of Contents progit.org/book/ja/ Git入門 www8.atwiki.jp/git_jp/ ◆前スレ Git 7 toro.2ch.net/test/read.cgi/tech/1381929347/
152 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 06:50:00.38 .net] >>149 勝手に前提つけるなよ
153 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 06:56:15.17 .net] 「そこらにある普通の無料レンタルホームページサービス」 これは自動挿入される広告とかで収入上げてんだろ? gitみたいなダウンロードだけのことは規約違反だろJK
154 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 06:58:10.48 .net] >>150 >>144 にかいてあるじゃないか > そこらにある普通の無料レンタルホームページサービスじゃ
155 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 07:52:02.69 .net] >>152 もともとの>>134 の話題にレスしてる人もいるんだからってことだよ。
156 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 14:28:11.08 .net] 現在のブランチから分岐している(=fast-forwardの関係にない)ブランチを簡単に リストアップする方法ってありますか?
157 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 19:18:24.63 .net] 現在のブランチのHEADから分岐してる別のブランチは、fast-forwardの関係にあるだろ?
158 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 21:38:19.41 .net] >>154 をどう読んだら「HEADから」と思うんだ?
159 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 21:38:35.69 .net] git branch --no-merged とかじゃだめ?
160 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:00:05.83 .net] >>156 「現在のブランチから分岐している(=fast-forwardの関係にない)」
161 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:01:18.39 .net] >>158 それのどこにHEADの要素が?
162 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:06:23.60 .net] それのどこにHEADを除外すると書いてあるんだ?
163 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:14:50.84 .net] ┌────────── ← fast-forwardでないブランチ ┬┴─────┬──── ← 現在のブランチ └─┬────┘ ← マージされたブランチ └───────── ← fast-forwardなブランチ こんな感じ?
164 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:17:14.79 .net] ┌─■──■──■───── ← fast-forwardでないブランチ ┬─■─┴─■─■───┬──── ← 現在のブランチ └─■─┬───────┘ ← マージされたブランチ └──■──■───── ← fast-forwardなブランチ こんな感じ?
165 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:18:23.13 .net] fast-forwardになってない
166 名前: ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ mailto:sage [2014/02/03(月) 00:23:28.23 .net] ┌■─■─■─■─■── ← fast-forwardでないブランチ ┬■┴■─■─■─■┬─── ← 現在のブランチ │ │ └■─■─ ← fast-forwardなブランチ └■┬■─■─┘ └■─■─■─■─■── ← fast-forwardでないブランチ こんな感じ?
167 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:23:57.45 .net] fast-forwardは重要な概念だからちゃんと理解しとけよ >>161-162 は落第
168 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:30:19.95 .net] fast-forwardの解説おながいしまうs
169 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:30:24.95 .net] 一番下のブランチは派生元のブランチがマージされてるから現在のブランチの分岐扱いになるのかな
170 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:32:23.03 .net] >>166 fast-forwardとは HEADが指すコミットを最新のコミットを指すようにするだけで済むマージ fast-forwardでないとは マージコミットが発生する
171 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:34:23.66 .net] ブランチ切った後にそれぞれにコミットが発生すると初めて分岐が発生して fast-forward じゃなくなる、でOKじゃないのかね
172 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:44:11.57 .net] ┌■─■─■─■─■── ← ノーマルエンド ┬■┴■─■─■─■┬─── ← ハッピーエンド │ │ └■─■─ ← 真のエンディング └■┬■─■─┘ └■─■─■─■─■── ← バッドエンド
173 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:48:50.26 .net] >>169 それぞれ、だけと片方だけでもよさそうだからダメだな。 それぞれに異なるコミットが、にすればいい。 あと、さっきからHEADをsvnみたいな意味で使ってるやつがいるのか?
174 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 00:57:32.30 .net] >>168 よくある説明だけど、わかっている人にはわかって わからない人には全然わからない答えだよな。 たとえば、オープンソースのコードをcloneして 手元にソースコードをダウンロードしているとする。 数日後バージョンアップしてソースコードが更新された。 fast-forwardとは 最新のソースコードまで更新履歴を単純に進めること(早送り) fast-forwardをするとソースコード消して取りなおしたのと同じことになる。 それとは別にfast-forwardをしないでマージコミットを作るやり方があって これは現在から最新までの変更分を一つ(ないし複数の)コミットとしてつけたすもの。 fast-forwardの代わりにマージコミットを使っても最終的に同じになるのだが変更履歴内容が違う。 またfast-forwardはclone元から単純に遅れている時にしか使えない。 clone元には無い修正を加えてしまうとfast-forwardできない。
175 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 01:34:49.46 .net] こんな感じ? ideone.com/hvgkDV
176 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 01:43:15.60 .net] 全然違う
177 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 01:57:26.57 .net] 以下のようにコミットの履歴が番号順に育っていて、AブランチのHEADが4で、BブランチのHEADが6だとする。 1─2─3─4─5─6 その状態では、BブランチをAブランチへマージするにはAブランチのHEADを6に変更するだけで済む。 その状態をfast-forwardマージ可能な状態と呼び、 そのHEADを変更するだけのマージを、fast-forwardマージと呼ぶ。 fast-forwardマージ可能で無い状態では、「マージコミットを作成することによるマージ」しかできない。 fast-forwardマージ可能な状態では、「fast-forwardマージ」と「マージコミットを作成することによるマージ」 のどちらかを任意に選択可能。
178 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 02:04:08.14 .net] リスト構造の概念が分かってればgitも似たようなもんだから理解は難しくないと思われ
179 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 02:11:48.62 .net] 全然違うよ
180 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 02:12:10.74 .net] >>174 ,177 なにがだ。
181 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 04:47:05.44 .net] ┌I─J─K─L─M ← ノーマルエンド ┬A┴B─C─D─E─┬──F ← ハッピーエンド │ └G─H ← 真のエンディング └N┬O─P ← 鬱エンド └Q─R─S─T─U ← バッドエンド 左から初めて右へと進む。左へは戻れない。 現在Aにいるのであれば、ノーマルエンドやハッピーエンド、真のエンディングに辿れる=fast-forward しかしNに入り込んでしまったら、鬱エンドかバットエンドにしかならない=fast-forwardできない。 AルートにきてもIルートに来てしまったらノーマルエンドになる。 IからJ,K,L,Mまではメッセージスキップ(fast-forward)で進めるが、 ハッピーエンド、真のエンディングにはfast-forwardで進めない。 Oまで来てしまったら鬱エンドは回避不可能。
182 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 05:02:40.54 .net] 現在Fにいるとして、ここからG、H、にはfast-forwardではいけない。 だが無理やりFにG、Hをマージすることが出来る。 そうすると、ハッピーエンドを見た後で、真のエンディングを見ることが可能になる。 単純にG、Hにくるだけでは真のエンディングしか見れない。 また逆にHにいるときにFをマージすることで、真のエンディング+ハッピーエンドになる。 だが、ハッピーエンドにO、Pをマージするのは不可能ではないが辛いだろう。 そもそもの分岐点はヤンデレ化した彼女から逃げるとき山に逃げるか谷に逃げるかの選択肢にある。 山に逃げればAルートに入るが、谷に逃げるとNルート。 さすがに同じ選択肢で違う答えを選んでルートが別れたので単純にはマージできない。 これがコンフリクトである。もしコンフリクトが解消できたのなら 真のエンディングと鬱エンドを合わせた別のストーリーができるかもしれない。
183 名前:デフォルトの名無しさん [2014/02/03(月) 05:45:10.10 .net] おまえも人生巻き戻すべきだな
184 名前:154 mailto:sage [2014/02/03(月) 08:09:59.68 .net] >>157 まさにこれでした。ありがとうございました。
185 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 08:16:29.86 .net] これよかったよ。 www.slideshare.net/kotas/git-15276118 fast-forward な関係理解できた。
186 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 18:57:41.27 .net] git でファイルモードの変更を無視するには なにを設定すればいいんだっけか
187 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 19:26:59.54 .net] ググればいいだろ。 tetsuwo.tumblr.com/post/36066698390/git-chmod-git-config
188 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 22:09:30.15 .net] 一つのディレクトリ、リポジトリを複数のサービスに上げることって出来る? 例えばgithubやgitlab cloudに
189 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 22:14:51.83 .net] リモートリポジトリを複数持てるかってことなら当たり前のようにやれる 普通にgithub使うだけでも本家とforkした自分ので2つ使う参照するし
190 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 22:15:29.70 .net] push 先選べばいいだけの話
191 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 22:24:38.77 .net] git remote addでリモートリポジトリを追加登録すれば楽だな しなくてもいいけど
192 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 22:26:46.22 .net] GitHubはEclipseと連携出来るようだけど、GitLab、GitLab Cloudとかは出来る?
193 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 22:33:26.12 .net] sshの公開鍵認証でリモートリポジトリとして使うだけなら、 Githubだろうがなんだろうが全部一緒だろ
194 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 22:41:15.75 .net] なるほど じゃぁEGit使ってGitLab Cloud試してみます
195 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:12:31.81 .net] gitのpushを2回行った場合ってリポジトリに何か変更起こる? git push -u origin hoge ここでうっかり2回目のpush git push -u origin hoge 変更というか書き換え?
196 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:20:31.54 .net] 試してみればいいよ
197 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:21:45.63 .net] アレ? 俺根本的にgitのこと勘違いしてたのかな? commitって言葉だけから、Subversionと同じ仕組みかと思ってたんだけど、 ファイルのバージョン管理は出来ないの? あるリビジョンに復旧させたり、diffしたり... SVNと昔から比較されてたからそういう事も出来るのかと思ってたんだけど
198 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:23:48.80 .net] Git - Book git-scm.com/book/ja 2のgitの基本を読むといいよ
199 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:26:49.28 .net] Branch master set up to track remote branch master from origin. Everything up-to-date 適当に作って2回pushしたら表示された これってリポジトリでは何らかの変更が行われてるの? それともヘッダのハッシュが同じだから弾かれてる?
200 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:30:20.73 .net] 英語ちゃんと読めよ
201 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:32:12.43 .net] GitはSubversionとは用語の意味や使い方違うから 感覚で使わずちゃんと導入のための読み物があるのだからそれ読んでから使え Git - Book git-scm.com/book/ja
202 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:33:09.00 .net] pushの -u オプションは毎回つける必要なくね?
203 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:33:09.30 .net] 大した分量でもないから基本的な部分の話だけなら2〜3時間くらいあれば読めるだろう
204 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:34:02.30 .net] subversion と同じ感覚で使うと間違いなく事故る
205 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:38:32.46 .net] >>197 送信の通信量をチェックするか リモートブランチを自前サーバーにでも作ってチェックするか Gitのソースコードでpushで何やってるかを直に見るか すればいい
206 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:42:13.92 .net] 無駄に通信コストのかかる設計にしてるとはとても思えないがな
207 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:43:28.75 .net] ところがどっこい
208 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 00:51:57.24 .net] プロトコル次第なんだな、面白い ttp://git-scm.com/book/ja/Git%E3%81%AE%E5%86%85%E5%81%B4-%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%83%95%E3%82%A1%E3%83%BC%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB
209 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 01:07:07.82 .net] Gitのソースコード見てたが案外やっつけだな
210 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 03:26:03.37 .net] くそぅ、うんこがしたいのに3日我慢してんだぜ...
211 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 11:07:45.50 .net] 味噌を食うと良い
212 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 14:19:52.08 .net] EGitからpushする際、毎回URIの入力をしないといけないんだけど、これ何とかならない? GitLab Cloudに送りたいんだけど 、毎回URIを確認しにファイルだかサイトだかにアクセスしないといけないんだけど
213 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 14:45:41.55 .net] >>210 Eclipseスレで聞いたら?EGitの話題も多いよ
214 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 15:13:50.09 .net] 分かった ありがと
215 名前:デフォルトの名無しさん [2014/02/04(火) 19:50:17.43 .net] git status で見ると、変更があることになってるんだけど git diff で見ると、変更がない(属性も同じ) これってなにが原因なの?
216 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 19:57:59.72 .net] >>213 git add 済みとかじゃないの?
217 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 20:12:13.46 .net] よくわからん CRLFかな
218 名前:デフォルトの名無しさん mailto:sage [2014/02/04(火) 20:27:44.21 .net] 普通はstatusの方が正しいかな diffの方は差分をいろいろ無視するオプションがある
219 名前:デフォルトの名無しさん mailto:sage [2014/02/05(水) 11:06:21.69 .net] gitでdiffを見るときに @@ -133,20 +128,17 @@ みたいな行の後ろが改行されないんだけど これってなにが原因だと思う?
220 名前:デフォルトの名無しさん mailto:sage [2014/02/05(水) 11:23:16.98 .net] LFとCRLF改行の混在じゃね?
221 名前:デフォルトの名無しさん mailto:sage [2014/02/05(水) 11:41:15.63 .net] cvswebのdiff表示もそんな状態になってたな。 行番号の後にさらにその差分の部分がどこのCの関数内であるかを 付けられるとかなんとかそういうフォーマットもあるらしい。
222 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 04:31:31.21 .net] CR/LFを多数決で判断するようなエディタなんか捨てちまえ。
223 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 04:41:42.53 .net] 改行コードくらいプロジェクトで統一しろよ・・・
224 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 10:54:55.53 .net] >>218 CRLFの混在が原因ではなさそう LFのみのプロジェクトでも @@ の後ろに改行がつかない
225 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 10:58:58.23 .net] SourceTree使ってる人いる?
226 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 10:59:22.34 .net] 1ファイル内で混在みたいなアホなことになってるとか
227 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 11:38:08.94 .net] >>224 仮にCRLFの混在があったとしても、 diffコマンドの出力にLFがつかない理由にはならないと思う
228 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 11:40:29.41 .net] commitはしたけどpushはまだしていない分について git status コマンドで状況見たいんだけど どうしたらいいかな
229 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 12:02:53.24 .net] remote との差が知りたいってこと?
230 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 13:01:18.51 .net] >>222 >>219 も言ってるけど、@@の直後に改行無しで表示される部分は、差分が属するクラスなんかの定義のことじゃないの? 差分を見やすくするためにdiffがソースを解析してくっつけてくれる。
231 名前:デフォルトの名無しさん mailto:sage [2014/02/06(木) 13:15:34.10 .net] >>226 ブランチがリモート追跡ブランチになってれば、 pushしてないコミットが
232 名前:あるときにgit statusに表示されるだろ こんな感じに # Your branch is ahead of 'origin/master' by 4 commits. おれはgit logに(HEAD, master)とか(origin/master)が表示されるようにして 差があるかどうかを判断してる こっちはremote追跡ブランチになってる必要は無いな [] [ここ壊れてます]
233 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 11:35:30.89 .net] >>228 なるほど その定義表示部分が空文字列になってて 改行表示されなくなってる可能性があるのか
234 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 14:21:28.13 .net] いや定義表示部分が空文字列になってるとかじゃなくて、 @@ に続いて改行無しで定義部分が表示される。 こんな風に表示されることを言ってるんだろ? diff --git a/Hello.java b/Hello.java index 5dcc23b..047aa5f 100644 --- a/Hello.java +++ b/Hello.java @@ -5,7 +5,7 @@ public class Hello { これは @@ -5,7 +5,7 @@ の差分部分が、Helloクラスの定義内に含まれてますよって意味だ
235 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 15:39:11.94 .net] あああーなるほどー そういうことか・・・ 恥ずかしい発言だった・・・
236 名前:デフォルトの名無しさん mailto:sage [2014/02/07(金) 19:48:28.21 .net] cvswebの方はガチで1つ下にあるべき行がそこに入っていたけど、 そんなものを今も使ってるところが見つからないからもういいやw
237 名前:デフォルトの名無しさん [2014/02/08(土) 11:15:03.96 .net] code.google.com/p/git-core/downloads/list 1.8.5.4
238 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 12:44:10.31 .net] 空のフォルダに.gitkeepを追加しようと思ってます。 しかしフォルダ数が多いため時間がかかります。 自動で追加してくれるフリーソフトかなにかありませんか?
239 名前:デフォルトの名無しさん [2014/02/09(日) 12:52:08.51 .net] find . -type d -empty -not -path './.git*' -exec touch {}\/.gitignore \;
240 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 18:08:11.46 .net] >>236 .gitignoreではないです。
241 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 20:08:52.67 .net] >>237 横レスだが、ignoreでも問題ないし、以前はignoreだった。 気に入らないならkeepに変えればいいだけだろう。ちゃんとお礼言えよ。
242 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 20:12:38.54 .net] 空のディレクトリを見つけてそこに.gitkeepという空ファイルを配置する スクリプトで簡単に書けそうな気もするけど
243 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 22:55:57.48 .net] シェルスクリプトとか find だの test だの組み合わせるのがない世代なんだろ もしくは Windows だとか
244 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 23:08:16.39 .net] WindowsならWSHがあるじゃん
245 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 23:24:41.55 .net] WindowsってGitBashがインストールされるじゃん
246 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 23:39:20.75 .net] >>241 もう wsh は死んだのだよ 今は powershell だ
247 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 23:49:47.60 .net] GitBashにfindもgrepもtouchも入ってるよね
248 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 23:56:56.77 .net] 要するに無能
249 名前:デフォルトの名無しさん mailto:sage [2014/02/09(日) 23:59:41.82 .net] 何故唐突にgrep?
250 名前:デフォルトの名無しさん [2014/02/10(月) 17:03:57.48 .net] .gitignoreはバージョン管理しないファイルを指定するgitで決められたファイル .gitkeepは空ディレクトリも作らせるための慣例的なファイル という違いはさておき、 >>237 はその程度読み替えてほしいもんだ。
251 名前:デフォルトの名無しさん mailto:sage [2014/02/10(月) 17:11:43.10 .net] しれっといつのまにか vundle のメンテナ化するのかな
252 名前:デフォルトの名無しさん mailto:sage [2014/02/11(火) 05:11:32.98 .net] Gitってみんなが勝手にいろんな所を直す→独裁者がどこを採用するか決める、って システムだよな。 大手SIerで使わないのはそこにも原因があるんだろうね。 上ででていた、誰がどこを直すのかしっかり決まっている組織や開発体制では、その 作業のミスをふせぐMSSみたいなファイルのロック・アンロックのよう