14/04/21 22:43:41.18 KhXBvEFh
やだGitじゃないと
VSS、これ最悪でした。
チェックアウトされたままコンパイル通らない状態で担当者休み。どーすんの?
でもMSじゃないと駄目、OSSなんか信用できないとかで泣く泣く使う現場多数。
それに比べるとSubVersionかなりマシだけどオフラインな状態でコミットできない。
ちょっと痛い。
102:デフォルトの名無しさん
14/04/21 23:08:04.07 /9iyZBJ2
バージョン管理はgitしか使ったことがない
SVNは何がなんやらサッパリわからないから使えない
103:デフォルトの名無しさん
14/04/21 23:28:39.44 wk0llTNx
>>101
× SubVersion
○ Subversion
104:デフォルトの名無しさん
14/04/21 23:37:15.06 vVBjDa2G
オフラインの状態でコミットできないとか言ってるけど
コミットしたところでローカルにあるだけだからオンラインで他の奴がお前のリポジトリに
アクセスできなきゃ何もかわらんだろアホか
105:デフォルトの名無しさん
14/04/21 23:51:33.94 KhXBvEFh
例えばあなたが飛行機で移動中に10項目ぐらいの作業して
帰社してコミットする時にコメントに10項目だらだら書くの?
やーだー
106:デフォルトの名無しさん
14/04/22 00:01:10.97 4JSOLbvH
移動中に仕事するようなワーカホリックになりたくないわ正直
107:デフォルトの名無しさん
14/04/22 00:05:36.52 DheOpfOv
一例として挙げただけなのに。想像力無いなあ。
108:デフォルトの名無しさん
14/04/22 00:32:53.01 ysn+k/fU
セキュリティ的なこと考えるとオフラインでソースにアクセスってあんまりないんだよね
109:デフォルトの名無しさん
14/04/22 00:48:34.17 9W1A4/eN
>>97
いわゆるシェルは.(ドット)で始まるファイルは隠しファイルとしている
隠しファイルは ls *.conf とかで表示されない (.hoge.conf とか)
そんな時に rm *.conf して普段表示されてないファイルが消えるのは困る
だから * だけでは隠しファイルにマッチしないようになっている
ちなみに git が内部でどう処理してんのかは知らん
110:デフォルトの名無しさん
14/04/22 13:52:48.51 +yEK9mtt
ふつーにfnmatchでは
111:デフォルトの名無しさん
14/04/23 05:15:19.40 7ZWtOh9Z
commit A
commit B
commit C
commit D
commit E
commit F
と順番に作業して
あとから B から D をまとめて
commit A
commit b(B-D)
commit E
commit F
としたいときはどうすれば・・・
112:デフォルトの名無しさん
14/04/23 05:24:18.61 kDpoyMyg
よう知らんけど
↓のsquashというやつで出来るんじゃないの?
Git - 歴史の書き換え
URLリンク(git-scm.com)コミットのまとめ
> # s, squash = use commit, but meld into previous commit
113:デフォルトの名無しさん
14/04/23 07:20:48.07 fIp3qZsI
>>111
rebase -i
114:デフォルトの名無しさん
14/04/23 09:40:59.20 T4x0zu0j
2.0って来月でる?
115:デフォルトの名無しさん
14/04/23 20:35:59.48 7vo5B08Z
>>111と反対に、一つのコミットであるbを
B-Dに分割したい時どうしてる?
俺はrebase -i
116:デフォルトの名無しさん
14/04/23 22:04:37.40 59LgjvrD
rebase -i はいろいろ便利だよな
ただ慣れないと指定にちょっと戸惑う
>>111みたいにB以下をいじりたい場合だと rebase -i A ってしなくちゃいけないんだよな
それと、まとめたり順番入れ替えるだけなら操作は簡単だけど、バラす場合はちょっと操作がややこしい
117:デフォルトの名無しさん
14/04/24 00:12:45.07 6IEmJN8m
git rebase -i のコミットの表示順とgit logの表示順が逆なのは何故なんだぜ?
逆に表示するオプションあるけどグラフ表示とは併用できませんし。
118:デフォルトの名無しさん
14/04/24 01:22:42.87 cdLHxk0K
logは新しい順に表示しないと不便だと思うし(見たいのは最新の辺のことが多いよね)
rebase -iの指示書は、前のコミットにまとめるとかの指定することを考えると古い順に並んでたほうがわかり易い気がする
まあ、自分は慣れてしまったからかもしれないが
119:デフォルトの名無しさん
14/04/24 01:29:19.68 SDYiDObT
>>116
rebase -i B^
120:デフォルトの名無しさん
14/04/24 05:27:42.49 6xlhO1bi
rebase -i ^_^b
121:デフォルトの名無しさん
14/04/24 13:18:49.88 QakcezKL
最新のコミットだけプッシュする方法と
最新のタグをつけたコミットだけプッシュする方法
2つおしえてください
122:デフォルトの名無しさん
14/04/24 13:19:34.50 QakcezKL
なぜかというとコミットログからニートがバレるのでコミットログを全部プッシュしたくないからです
123:デフォルトの名無しさん
14/04/24 13:22:26.51 V8z90YIW
>>121
sqush
124:デフォルトの名無しさん
14/04/24 13:47:51.32 JOpp0cve
githubのコミットログからニートを検索するツールはよ
125:デフォルトの名無しさん
14/04/24 19:02:31.15 yOTIc0ZO
その前に日本人を探すツールが必要だ
126:デフォルトの名無しさん
14/04/24 21:18:41.68 hPYav21o
>>122
git filter-branch --env-filter 'GIT_COMMITTER_DATE="Thu, 01 Jan 1970 09:00:00 +0900
"; GIT_AUTHOR_DATE=$GIT_COMMITTER_DATE' --all
127:デフォルトの名無しさん
14/04/24 22:02:19.45 6xlhO1bi
コミットログに日時変えればいいだけじゃん。
128:デフォルトの名無しさん
14/04/24 22:18:20.71 0H30XzcZ
git init
git checkout -b test
>Switched to a new branch 'test'
git branch
>何も表示されない
git checkout test
>error: pathspec 'test' did not match any file(s) known to git.
なんもコミットされてないとこうなるんですがどうしてこうなるんですか?
129:デフォルトの名無しさん
14/04/24 22:21:42.53 hPYav21o
>>128
その状態だと、HEADはrefs/heads/test向けのsymbolic-refになっているが、
そもそも指すべきコミットがないのでrefs/heads/testは存在しない。
よってbranchも何も表示しないし、checkoutもできない。
130:デフォルトの名無しさん
14/04/24 22:23:42.17 0H30XzcZ
仕様なんですか
一番最初のコミットが汚れるのがいやですね
131:デフォルトの名無しさん
14/04/24 22:25:13.61 6xlhO1bi
rebaseすればいいじゃんw
俺は、とりあえず空コミットを作る。
かもしれないし、作らないかもしれない。
132:デフォルトの名無しさん
14/04/24 22:26:57.87 hPYav21o
>>130
つまりコミット無し状態でブランチを複数作りたいということ?
133:デフォルトの名無しさん
14/04/24 22:31:15.84 0H30XzcZ
漢がrebaseなんて許せないタチなんですよ
コミットなし状態からブランチを分けて開発したいんです
基本的にmasterは汚したくないのです
134:デフォルトの名無しさん
14/04/24 22:33:01.48 6xlhO1bi
subversionがだめな理由が
rebaseできないからなんだけど?
それぐらい、というかそれ以上に
よく使う機能だぞ。
汚くしないためにrebaseがある。
135:デフォルトの名無しさん
14/04/24 22:37:44.72 hPYav21o
>>133
129で言ったようにHEADが存在しないrefを参照していればgit initした状態と同じなのだから、
二個目のブランチを作るときにgit checkout -bではなく
git symbolic-ref HEAD refs/heads/branch_name してから開発を進めればいいじゃない
136:デフォルトの名無しさん
14/04/24 23:47:09.80 T/Y/fuz3
>>133
そこまで潔癖ならマージもしないだろうからブランチじゃなくてリポジトリを分けたら?
137:デフォルトの名無しさん
14/04/25 00:27:14.58 kupFdBxu
master汚したくないっていうのが出来たとして、
1つ目のcommitがあって、それがtestブランチだとする。
が、masterはこのcommitから辿れる親コミットも指してないし、どれも指していない。
fast forward mergeできない状態だけどいいの?
どうせmasterはなにかしらコミットした段階で一番汚されてなくたってそのコミットを指してしまうのだから、コミットしてからチェックアウトしてもいいじゃん。
138:デフォルトの名無しさん
14/04/25 03:08:01.24 XQM8U6nM
mergeする予定無いのにブランチ切りたいとか意味不明すぎる
139:デフォルトの名無しさん
14/04/25 04:07:01.58 zu0sgmwa
空コミットじゃあかんのか?
つか空の.gitignoreくらい作ってからでも汚れとは思わんぞ
140:デフォルトの名無しさん
14/04/25 04:20:32.33 jzYptMLV
気に入らない部分があってもgitを使わざるをえない人は大変だね
個人の趣味でやってるならVCSは好きなのを使えるのにね
141:デフォルトの名無しさん
14/04/25 04:23:50.66 4klH39dY
気に入らない部分が、git以外には多すぎる。
142:デフォルトの名無しさん
14/04/25 05:28:33.42 cdj1D6xv
だねー
俺はローカル全部svnだわ
143:デフォルトの名無しさん
14/04/25 08:52:14.28 xiFjVo8G
3つ前のコミットに戻ってブランチを分岐したい場合ってどうすればいいのでしょうか
3つ前に巻き戻してからブランチするのでしょうか
最後の2つのコミットも念のために残したいのでブランチにしたいのです
具体的には
最後の2つのコミットの変更が破棄になったけど
念のために残したい
という状況です
144:デフォルトの名無しさん
14/04/25 11:14:49.10 4klH39dY
三つ前のコミットIDから
ブランチ作ればいいじゃん。
145:デフォルトの名無しさん
14/04/26 02:05:43.27 pkQNyj+N
>>134
rebaseはブランチ取り込むときにontoと組み合わせて使うことの方がおおいなぁ。
コミットログの都合もあるから履歴整理にはほとんど使ってない人がここに。
146:デフォルトの名無しさん
14/04/26 02:08:06.72 /GEUo84h
なんでブランチ取り込む時にontoなんだ?
普通にマージかチェリーピックすればいいだろ。
そのための機能なんだから。
147:デフォルトの名無しさん
14/04/26 02:26:05.50 pkQNyj+N
やり方がわるいんかな?
複数のブランチ平行したときとかontoつかってカットする感じに履歴いじらないとFFになってくれないことが多かった。
148:デフォルトの名無しさん
14/04/26 02:39:25.28 7YL+swb1
>>147
だからなんでFFにするんだよ
149:デフォルトの名無しさん
14/04/26 02:41:39.49 /GEUo84h
onto使ったら必ずほぼ確実にFFできないだろ?
なんか無駄に複雑なことしている気がするな。
150:デフォルトの名無しさん
14/04/26 13:53:59.32 Vv5x70uz
ホームディレクトリ以下の設定ファイルだとか、個人で使ってる自作ツールはSubversionで管理してる
ブランチ分けるどころか、リポジトリも1つだけで全部まとめて入れてる
そういう使い方するとGitよりSubversionが使いやすい
151:デフォルトの名無しさん
14/04/26 13:58:18.76 /GEUo84h
>>150
いや、ディレクトリがわかれるだろ?
subvertionを使うと、
* ファイルがあるディレクトリ
* リポジトリ
と二つにディレクトリがわかれるだろ?
それだけで使いづらいじゃん。
152:デフォルトの名無しさん
14/04/26 14:05:48.63 Z8XCebgD
?
153:デフォルトの名無しさん
14/04/26 14:20:33.69 dMJ+hsKf
>>151
全くその通りなんだけど、svnしか使った事のない人には多分理解出来ないと思う。
154:デフォルトの名無しさん
14/04/26 14:56:15.48 1yS20LQ1
リポジトリを1つだけだとさ
じゃあ例えば
C:/php/.git
C:/php/bbs
C:/php/wiki
C:/php/cms
みたいなのがあって、C:/php/cmsの履歴だけ戻す場合とか苦労するぞ
155:デフォルトの名無しさん
14/04/26 15:03:43.34 /GEUo84h
なぜリポジトリを一つにまとめるのか?
リポジトリを作るのが面倒であるということである。
156:デフォルトの名無しさん
14/04/26 18:03:12.98 Vv5x70uz
リポジトリをたくさん作るとその数だけcheckoutしてpull/updateしてcommitしないといけない
自分一人で使うだけでそんな面倒なことしない
157:デフォルトの名無しさん
14/04/26 18:26:46.44 ztOmzoR+
subversionだと、このようにpullやupdateや
commitがすごく大変で間違えられない作業なので、
このように避けようと思うようになります。
gitだと気軽なのにね。
158:デフォルトの名無しさん
14/04/26 18:27:44.99 bHDNIx6I
cvs使ってた10年以上前は、私もひとつのリポジトリでやってたことがありました。(*ノωノ)
159:デフォルトの名無しさん
14/04/26 18:30:43.24 Vv5x70uz
一人でしか使わないんだからコンフリクトなんかしない
commit間違えたらもう一回commitするだけ
開発頻度の低いファイルの管理にgitは過剰
160:デフォルトの名無しさん
14/04/26 18:39:48.80 ztOmzoR+
>>159
コンフリクトかどうかは
重要じゃないよ。
gitが便利なのは過去を修正できるって所。
一人でやっていても、簡単なミスはするもの。
追加漏れのファイルを追加
スペルミスの修正
こんなマヌケなコミットを残さないで済む。
161:デフォルトの名無しさん
14/04/26 18:42:46.95 ztOmzoR+
subversionが残すのは"作業"履歴なんだろうね。
gitが残すとのは"修正"履歴
だからsubversionは、いろいろ作業したものが
そのまま残って、あとで、で結局何をしたかったの?って
わけがわからなくなる。
gitは修正履歴だからこのコミットで何を修正したかが
はっきりするから、ある修正を取り除こうとした時も簡単。
subversionだとある修正を取り除くとき
それに関する作業を洗い直さないといけないけど、
gitだとそのある修正に対するコミットがどれかはすぐに分かる。
162:デフォルトの名無しさん
14/04/26 18:47:04.31 ztOmzoR+
subversionだと作業履歴が残っちゃうから
ちょっと気軽にコミットしようということができない。
gitだとちょっと一旦ここでコミットしておいて
少し違う作業をとか、こまめにコミットしておいて
あとでまとめようとか、一つのファイルの修正のうち
一部分だけをコミットしておこうとか簡単にできるが
subversionだとこまめにコミットしたら
その内容がずっと残る。恥ずかしいから
こまめにコミットできない。
あとでまとめてやるからいろんな修正が混ざってしまう。
163:デフォルトの名無しさん
14/04/26 18:56:37.43 Vv5x70uz
.bashrcや.inputrcが数千行になったらgitの導入を考える
164:デフォルトの名無しさん
14/04/26 18:57:44.05 ztOmzoR+
HAHAHAHA、基準がおかしい奴がいる。
こういう奴がgitに反対しているわけさ。
165:デフォルトの名無しさん
14/04/26 19:04:14.03 a+LUSt4b
bareめんどくない?
166:デフォルトの名無しさん
14/04/26 19:10:57.12 Vv5x70uz
だいたい.screenrcに対する特定のコミットを取り消すとか、そんな必要性感じたこと一度もない
167:デフォルトの名無しさん
14/04/26 19:12:42.80 ztOmzoR+
面倒くさいなら作らなくていいよ。
bareは必須ではない。
gitを始めるのに必要なのはディレクトリで
git initするだけ。
これでもうすぐにブランチ切り替えも
タグの作成もできる。
某subversi○nみたいに
わざわざtrunk、branches、tagsディレクトリを作って
コミットなんて面倒なことしなくていい。
168:デフォルトの名無しさん
14/04/26 19:13:48.14 ztOmzoR+
>>166
君は.screenrcの管理とかしかしないんだねw
えぇ、subversionは面倒だからでしょうね。
気軽に始められないw
169:デフォルトの名無しさん
14/04/26 19:17:57.35 Vv5x70uz
いや、何の事かわからないが、subversionでもgitでもどういうブランチ構成にするかはその人次第だから
170:デフォルトの名無しさん
14/04/26 19:22:53.05 ztOmzoR+
subversionにおけるブランチの作り方
※ブランチ作るたびに、この長いURLをいちいち入力する必要があります。
svn cp URLリンク(www.example.com) \
URLリンク(www.example.com)
gitだとこれだけです。
git branch v1p2p3
さてブランチに切り替えてみましょう。
svn sw URLリンク(www.example.com)
ぷぷぷぷw
なんでsvnはそんな長いURLが必要なんですか?wwww
あ、ブランチは、ただのコピーでしか無いから、どこにでもコピーできる=コピー場所を指定しなければいけないんですね。
これを毎回毎回入力して切り替えるんですね。大変ですねぇwwww
git checkout v1p2p3
みじかい!
171:デフォルトの名無しさん
14/04/26 19:24:43.18 ztOmzoR+
>>169
gitではブランチはブランチという機能なんで
subversinoみたいに、ブランチディレクトリ(branches)なんてのを
作る必要はないんですよ。
だからgitではブランチ名だけで、作成や切り替えが可能です。
いちいちディレクトリ(branches)書く必要はありません。
こんなの、き・そ・! です。
172:デフォルトの名無しさん
14/04/26 19:30:14.03 y+As8odQ
おっ、そうだな
173:デフォルトの名無しさん
14/04/26 19:30:26.82 Vv5x70uz
いや、初めからブランチ作らないって言ってるし、.my.cnfでも.pgsqlでもなんでもいいが、ブランチ切って修正を分ける必要性を全く感じない
174:デフォルトの名無しさん
14/04/26 19:32:08.93 ztOmzoR+
※>>173 は「俺は日付毎のディレクトリを作るだけで十分」と言ってるのと同じだと見てあげましょうwww
175:デフォルトの名無しさん
14/04/26 19:33:56.04 Z8XCebgD
なんでこの人こんなに発狂してるの・・・
別に git はゴミ!とか貶してるわけじゃないのに
176:デフォルトの名無しさん
14/04/26 19:34:13.93 Vv5x70uz
世の中には.ssh/configをテストファーストで日々更新してる人もいるのかもしれない、そういう人にはリリースと開発でブランチを分けてるのかもしれない
俺はそんなことしてないけど
177:デフォルトの名無しさん
14/04/26 19:35:28.56 ztOmzoR+
subversion使っている人は、みんな
ブランチ作らないって言ってるんでしょうかね
みんなブランチ要らないと言っているのであれば
subversion使っているだけで、アホとみなして良さそうですね。
実はブランチ作れないの間違いでしょうかねw
面白いですねwww
178:デフォルトの名無しさん
14/04/26 19:36:05.09 ztOmzoR+
subversion使っている人には、
ブランチの必要性から説明しないといけないのでしょうか?www
179:デフォルトの名無しさん
14/04/26 19:39:59.70 iVzDEppp
>>173
お前がブランチ作らないとかどうでもいいわ。
バージョン管理システムにおいて
ブランチは重要な存在であり、
subversionがブランチの管理が面倒だという事実に
代わりはないんだから。
それともSubversionの一般的な使い方において
ブランチは使うべきではないと言うつもりかい?
180:デフォルトの名無しさん
14/04/26 19:44:23.08 Vv5x70uz
いや、ホームディレクトリ以下の設定ファイルという前提なんだけど
個人の.bashrcを開発ブランチとリリースブランチに分けて更新するのが一般的という認識はなかった
181:デフォルトの名無しさん
14/04/26 19:46:55.41 koYBfWi3
ホームディレクトリ以下をgitで管理しようと思うのならば、
git initするだけでもう使えるよ。
subversionはそれだけで面倒。
最初の一歩の時点でもう負けてるんだ。
182:デフォルトの名無しさん
14/04/26 19:51:45.97 Z8XCebgD
なんか話を一般化して叩いてるけどホームディレクトリ内のファイルの管理ぐらい好きにやらせたれや・・・
183:デフォルトの名無しさん
14/04/26 19:54:06.41 HaseiyYq
自由にやっていいよ。面倒な方法だって言っているだけだから
別に面倒な方法だってわかってやってるなら問題ない。
面倒じゃないどころか、Subversionの方が簡単だって言い出すから悪い。
gitはgit initですぐにgit管理が始められるのに、
それよりも手間がかかるsubversionが簡単なワケがない。
せめて反証を出せと。
184:デフォルトの名無しさん
14/04/26 19:54:51.87 Vv5x70uz
>>181
なんでリポジトリを別の場所に置いたらダメなの?
特にマシン間で設定フィルを共有する場合、中央リポジトリが必要になるのは同じなんだから
185:デフォルトの名無しさん
14/04/26 19:56:09.41 Z8XCebgD
まあそこら辺は git スレでわざわざ頑張る内容ではないだろな
186:デフォルトの名無しさん
14/04/26 19:56:42.73 HaseiyYq
>>184
> なんでリポジトリを別の場所に置いたらダメなの?
ダメなんて言ってないだろ。
面倒だって言ってるだけ。
gitでも当然のようにリポジトリを別の場所におけるわw
だけど、リポジトリを別の場所に置くのは面倒。
必須でない作業なのだから、オプションであるgitの方が簡単。
少なくともその意見はsubversionの方が簡単だという理由にはなっていない。
リポジトリを別の場所に置くしか無いという欠点しか言っていない。
187:デフォルトの名無しさん
14/04/26 19:59:08.48 Z8XCebgD
>そういう使い方するとGitよりSubversionが使いやすい
これは「俺にとっては」ってのが頭につくだけの話でしょ。
別に白黒付けるもんでもなかろうに。
188:デフォルトの名無しさん
14/04/26 20:01:00.30 HaseiyYq
>>187
じゃあ、俺は、
「多くの人にとっては」って頭につけることにするよ。
お前ん中ではそうなんだろうなw
お前ん中では、設定ファイルの管理にぐらいしか使わないんだろうな
189:デフォルトの名無しさん
14/04/26 20:14:52.93 7bCdF05U
まとめ
(俺にとっては)Subversionの方が簡単
俺にとってはって、君、Subversionを何に使ってるの?
設定ファイルの管理だけど?
ブランチは使わない!
でもブランチやタグを使うと面倒だよね?
だから、俺はブランチは使わない!
ふーん、そう、それで何が簡単なの?
git なら git initだけで初められるけど。
gitで別の場所にリポジトリを置いてみなさい。
subversionはそれと同等!
いや、同等って、それ簡単ということになってないじゃん。
190:デフォルトの名無しさん
14/04/26 20:38:24.09 knmAOh4a
ブランチ使わないって前提の話で、subversionはブランチ作るのが面倒とか的外れな反論しておかしくなった
ドットファイルをブランチに分ける事は基本ないわな
191:デフォルトの名無しさん
14/04/26 20:42:18.34 7YL+swb1
>>190
俺はブランチを切りまくって、そいつらをマージしたものをマシン毎につかってるな。
いつのまにか47もブランチできてたわ。
192:デフォルトの名無しさん
14/04/26 22:24:36.07 jBTvJ1OX
Unix系のツールの設定ファイルとか複数の環境で使いまわすことが普通だし
最終的にはどんな環境でも一つの設定ファイルで動くようにまとめることが多いけど、
一時的に特殊な環境用にカスタマイズとかブランチ切って編集してるね
暇なときにマージして統合
193:デフォルトの名無しさん
14/04/26 23:35:52.72 pkQNyj+N
>>148,149
たとえば
$ git log --color=never --all --graph --pretty="[%h] %d %s"
* [6a1c481] (HEAD, master) 2
* [523984e] (branch2) branch2-2
* [6554768] branch2-1
| * [05c389f] (branch1) branch1-2
| * [6b85c6d] branch1-1
|/
* [9d47912] 1
ここから、 branch1をFFなるように取り込もうとしたら
$ git rebase --onto master 3829497 branch1 として 分岐なくしてからマージしない?
それとも履歴にはこだわらず、 rebaseで1世代だけにしてからcherry-pickするのが普通?
194:デフォルトの名無しさん
14/04/26 23:37:58.13 pkQNyj+N
>>193
$ git rebase --onto master 9d47912 branch1
の間違い、 行数削ったときに直すのわすれてた
195:デフォルトの名無しさん
14/04/26 23:46:42.24 7YL+swb1
だからなんでFFに拘るんだよ
196:デフォルトの名無しさん
14/04/26 23:47:26.43 7YL+swb1
>>193
あと、普通は
git rebase master branch1
で済む。
197:デフォルトの名無しさん
14/04/26 23:49:50.02 DhTsVAJ/
FFはCoolだかr
198:デフォルトの名無しさん
14/04/27 01:10:15.13 TcUJdg0l
>>196
その通りだね。
やっぱり無駄なことしてるじゃんw
onto使う必要がない所でonto使ってた。
199:デフォルトの名無しさん
14/04/27 05:35:56.46 /n7QikUK
svnでわざわざtrunk、branches、tagsディレクトリを作ってコミットなんて面倒なこと
ただの一度もしたことねえわ
200:デフォルトの名無しさん
14/04/27 06:08:30.59 TcUJdg0l
まあ、そういう変な人もいる。
201:デフォルトの名無しさん
14/04/27 10:01:09.95 YIeV8hDm
>>198
なくても平気なのかー、単純にrebaseするだけじゃダメな時あったんだけどなぁ、まっいっか。
FFこだわるのは、FF縛りがあるから。
202:デフォルトの名無しさん
14/04/27 10:13:05.46 +jGSbN4U
俺は、FFT派
203:デフォルトの名無しさん
14/04/27 14:15:59.24 ijMC55vL
git覚えたての子が暴れてて凄いなこのスレ
204:デフォルトの名無しさん
14/04/27 16:48:41.84 /n7QikUK
git派は自分のやり方以外は認められない原理主義者が多いんだろ
205:デフォルトの名無しさん
14/04/27 16:52:16.11 s0HPULD5
>>201
リモートから取り込んだコミットを
ローカルで改変してたりしないか?
開発用の修正を間に挟んだりとか。
206:デフォルトの名無しさん
14/04/27 20:05:48.91 0q81XbwG
>>205
それでもFFにならないわけはない。
207:デフォルトの名無しさん
14/04/27 20:42:56.75 RalmXzvw
>>9
>GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus) [単行本(ソフトカバー)]
>大塚 弘記
>URLリンク(www.amazon.co.jp)
この本買ってみた。題名とは違うがGitそのものの入門的な解説もちゃんとあるな。
やたらけなしている人がいたが本当のところはどうなのか確認してみるつもり。
読んだらまた感想書く。
208:デフォルトの名無しさん
14/04/27 20:56:58.74 37jfUrsD
Gitについてはさわり中のさわりしか書いてないからまともにGit使おうと思ったら別の入門書買い足すことになるってだけだよ
209:デフォルトの名無しさん
14/04/27 21:34:00.25 FuM1UcuM
>>207
> この本買ってみた。題名とは違うがGitそのものの入門的な解説もちゃんとあるな。
でもGitの入門的な解説としてはよろしくない印象。
diff --cached を書いてなかったり、不自然な reset の例を示してたり。
まぁそれが主題じゃないからいいんだけどさ。
210:デフォルトの名無しさん
14/04/27 21:39:02.03 FuM1UcuM
>>201
> FFこだわるのは、FF縛りがあるから。
何がなんでもrebase && FF派ってやっぱlogが一直線になるのが嬉しいのかね?
俺的にはlog --first-parentで要約できないほうが辛いんだが、
もし他にrebase && FFの利点を知ってれば教えてくれ。
211:デフォルトの名無しさん
14/04/27 21:46:21.84 0q81XbwG
まっさきに思いついたのは無能なPMに強制されてるという理由だったが
212:デフォルトの名無しさん
14/04/27 22:46:45.69 y1TCx0zf
もうそろそろ2.0リリースされそうだけど使ってる?
213:デフォルトの名無しさん
14/04/28 01:24:17.91 r745xiPh
2.0は5月の第三週あたり
214:デフォルトの名無しさん
14/04/28 05:49:30.90 G/O2/oE+
プロジェクトいくつも首突っ込んでればリポジトリなんてすぐ数十にはなるわけで
手作業でpullだupdateだとかいちいちやるかよ
そんなもんはスクリプトで一括でやるもんだ
215:デフォルトの名無しさん
14/04/28 06:17:16.50 SIdeIE1K
Gitはリポジトリ数十になってもpullとか手作業でいいと思うが?
216:デフォルトの名無しさん
14/04/28 09:59:35.16 ES7XWIWl
どのプロジェクトが何の言語で書いたのかわかんない
githubのリポジトリに言語名/プロジェクト名で名前を付けても
スラッシュがハイフンに変換されるか不便
217:デフォルトの名無しさん
14/04/28 12:04:38.80 UImZVLxS
どの言語かなんて気にする必要ないだろ。
言語は変わるかもしれないし、複数の言語で
作られているかもしれないんだから。
言語名を頭に入れるという考え自体がおかしい。
218:デフォルトの名無しさん
14/04/28 12:26:41.94 ES7XWIWl
Git 2.0になって.gitconfigも変わる?誰か調べてる人いる?
219:デフォルトの名無しさん
14/04/28 12:27:37.63 ES7XWIWl
Gitインストールするときにタグ指定し忘れて開発版の最新2.0をインストールしたんだけど特に不具合ないんだよね
220:デフォルトの名無しさん
14/04/28 13:13:07.74 DVYrPedv
リリースノート読む限り大きな変更はgit pushのデフォルトがsimpleになることくらい?
自分の場合は既にsimpleに設定してたし
git addでパス省略ってやらないし影響なさげ
でも暫くは移行しない
221:デフォルトの名無しさん
14/04/29 03:34:15.62 yOn60HCq
>>210
FFは、利点がーというよりも、うちはリリースの終わったbranch削除しちゃうので一直線にまとまっていないと、都合悪いだけかな?。
btanchは開発工程の作業場所としてわりきってる。
222:デフォルトの名無しさん
14/04/29 04:05:17.29 5g+Rsf3h
>>221
FFじゃない状態でブランチマージしてから、そのブランチを削除すると何が問題になるのですか?
もしかして削除したランチに属していたコミットが消えちゃうのですか?
223:デフォルトの名無しさん
14/04/29 04:10:14.41 jiz/CQ6q
>>221
どういうふうに都合わるいのか詳しく頼む。
mergeコミットが残ってたほうがブランチの情報が残るという認識なんだけど。
224:デフォルトの名無しさん
14/04/29 09:19:49.77 wf66nSBF
修正履歴を残したいのに履歴をいじるのはおかしい
rebaseなんてGOTOと同じくらいいらない
225:デフォルトの名無しさん
14/04/29 10:11:12.30 gWfSfq0v
はぁ?
226:デフォルトの名無しさん
14/04/29 10:21:10.13 fjfML7VO
わざわざログを壊してまで見やすくしようっていうのがいらねえんだよ
コミッターが何をしたのか把握できないだろう
227:デフォルトの名無しさん
14/04/29 10:22:25.29 fjfML7VO
そういうのはタグで管理するべき
rebaseを使うのは下手くそが使うコマンド
228:デフォルトの名無しさん
14/04/29 10:41:22.64 jiz/CQ6q
議論が変な方向に行くのがイヤなんで一応ハッキリさせときたいんだけど、
俺が気にしてるのは rebase && FF マージね。
master(統合ブランチ)にトピックの作業を取り込む際に rebase してから
FF merge するってやり方のこと。これをやりたくなる意味がわからない。
他の目的のrebase自体は問題ないと思ってる。
229:デフォルトの名無しさん
14/04/29 10:50:31.16 2NEMUWta
masterにブランチをマージするときに、そのブランチのベースがどこだったかという情報に意味があるか
意味がないならrebaseしてからのほうがログが読みやすい
230:デフォルトの名無しさん
14/04/29 10:58:37.39 fjfML7VO
どこで作業を行ったかの記録も重要である
余計なことはするな
231:デフォルトの名無しさん
14/04/29 11:14:43.54 jiz/CQ6q
>>229
> masterにブランチをマージするときに、そのブランチのベースがどこだったかという情報に意味があるか
どういう場合にベースを意味がある(または意味がない)くわしくたのむ
俺にとって重要なのはブランチの目的とその目的に向かってコミットがどう積み重ねられたのかであって、
ベースがどこかは明示的にはあんまり気にしないんだが。
FFマージじゃなければ統合ブランチの履歴を log --first-parent で要約できるのと、
マージコミットのログなどに表示される親コミット2つ使って
git log deadbeaf..cafebabe
のようにトピックのログだけ簡単に取り出せるのが便利なのに。
後者は内部で merge-base 使ってるのでベースに意味があるのは確かだが、
だとすれば常に(俺にとっては)意味があると言える。
232:デフォルトの名無しさん
14/04/29 11:21:26.26 LqsKRBzG
コミッターが行った作業をありのままに記録するべき
はたして捏造された記録に意味があるのか
233:デフォルトの名無しさん
14/04/29 11:33:05.72 EYu9TTok
>>224
コミットログとしてほしいものは、
修正の履歴であって作業の履歴じゃない。
コミットして1分後に気づいたタイポの修正なんか
修正の履歴として残す価値はないはない。
レビューを誰かに依頼して見つかったバグの修正なんか
修正の履歴として残す必要はない。
このコミットで何を修正するのかを明確に記録するには
rebaseは必須の機能。rebaseの機能なしで同じことを
やろうとしたら大変すぎて断念するレベル。
反論できる?
234:デフォルトの名無しさん
14/04/29 11:38:42.10 LqsKRBzG
その修正の裏に気づかずに別の箇所を修正しているかもしれない
不具合がそこにあればそこのログをみなければならない
でもそれを消しちゃったら困るよね
235:デフォルトの名無しさん
14/04/29 11:40:07.95 LqsKRBzG
>>233
だからそういうのはタグで管理しろ
236:デフォルトの名無しさん
14/04/29 11:49:24.38 EYu9TTok
>>228
> master(統合ブランチ)にトピックの作業を取り込む際に rebase してから
> FF merge するってやり方のこと。これをやりたくなる意味がわからない。
rebaseしないでmergeしようとするとコンフリクトが起きる可能性が高い。
masterへのmergeで起きたコンフリクトをその場で修正すると
バグを入れる可能性が高くなる。
コンフリクトが起きなければ問題ないが、いざマージしようと思った時に
コンフリクトが起きたら、修正する必要がある。
masterへの追尾が遅れれば遅れるほど、コンフリクトが起きる可能性も高くなるし、
コンフリクトが起きた時の修正も大変になる。だからこまめにmasterへrebaseしておく。
その一環として、最後にrebaseしておくだけのこと。
そうすればレビューアーも安心してレビューを行える。
もしかして一人での開発しかしてないんじゃない?
作った人とは別の人がレビューするとき、最新のmasterにマージできない状態だと困るんだけど。
レビューする人は自分で作ったわけじゃないから、コンフリクトをどう解消させればいいか判断できない。
237:デフォルトの名無しさん
14/04/29 11:51:08.54 EYu9TTok
>>235
どうタグを使うっていうんだ?
そもそもタグの使い方が間違っている。
タグはある状態に対してつけるもの。
タグがついたらコードフリーズした状態で
それ移行変更してはいけない。
238:デフォルトの名無しさん
14/04/29 11:54:15.32 EYu9TTok
>>234
gitはrebaseしてもコミットが消えてしまうことはない。
コミットIDさえわかればその時のコードは分かる。
コミットIDはreflogに記録され続けるのでコミットIDがわからなくなることはない。
あとはdiffをとれば何を修正したかがわかる。
239:デフォルトの名無しさん
14/04/29 11:57:18.99 jiz/CQ6q
俺としては歴史修正ツールとしてのrebaseの使用には賛成なんだが、
やはりそっちの議論にいってしまうか。
いや、本当に全てのrebaseが有害と言ってるヤツもいるのかもしれんけども。
・rebase && FFマージの話
・歴史修正ツールとしてのrebaseの良し悪し
これらは分けて議論したいんだがな。
俺は後者としてrebaseは絶対必要だが、前者の使い方に疑問がある。
240:デフォルトの名無しさん
14/04/29 11:59:42.78 EYu9TTok
>>239
じゃあピンポイントで聞くわ。
開発者と、masterへマージ(レビュー)する人が別々の人だとする。
masterへマージする時にコンフリクトが起きました。
この時どうしますか?
1. 開発者に修正(rebase)してもらう
2. 自分で適当に修正する。
241:デフォルトの名無しさん
14/04/29 12:25:05.93 jiz/CQ6q
>>236
おぉ、そういう主張か。 >>239 はとりあえず忘れてくれ。
> rebaseしないでmergeしようとするとコンフリクトが起きる可能性が高い。
> masterへのmergeで起きたコンフリクトをその場で修正すると
> バグを入れる可能性が高くなる。
主題から少しはなれるがここはおかしい。
masterにマージする人間とtopicを作ってる人間が別人ならその場で修正なんかせず、topic 作ってるやつに一旦 merge か rebase させるべき。
topic 側から master をマージした直後なら、その topic を master にマージするときはコンフリクトは起きない。このときは master 側からは no-ff でマージすべきだが、topic作ってくれたやつがmergeした方向による。
もちろん topic 作ってる人間は rebase してもいい。たぶん君が取ってる戦略はこっちなんだろう。
ただし topic を rebase したなら master にマージする人間は no-ff マージすべき。
もう一度言うが、俺が気にしてるのは rebase && FFマージだからね?
rebase後にno-ffでマージしてるなら大きな疑問はないよ。(topic作る側はめんどくさそうだなってだけ。コンフリクトしないのに不要なrebaseも強制するわけでしょ?)。
> レビューする人は自分で作ったわけじゃないから、コンフリクトをどう解消させればいいか判断できない。
やっぱ他人なんだよな。mergeする場合はコンフリクトの解消はmerge/rebaseで書いたやつにさせるように運用するのがお勧めだよ。
242:デフォルトの名無しさん
14/04/29 12:27:35.28 jiz/CQ6q
>>240
> 1. 開発者に修正(rebase)してもらう
> 2. 自分で適当に修正する。
どちらかで選ぶなら1だね。ただし、そこにはmergeという選択肢もある。
そしてより重要なことだが、俺が疑問視してるのはそこじゃない。
rebase修正してもらうのはいい。そのあとFFマージをするのはなんでだぜ?ってこと。
243:デフォルトの名無しさん
14/04/29 12:30:47.09 EYu9TTok
> ただし topic を rebase したなら master にマージする人間は no-ff マージすべき。
gitlabでmasterにマージするときは、
ウェブの管理画面からボタンを押すだけ
その時勝手にno-ffされる。
というか、ウェブの管理画面からはno-ffでしかマージできない。
> (topic作る側はめんどくさそうだなってだけ。コンフリクトしないのに不要なrebaseも強制するわけでしょ?)。
コンフリクト起きないならrebaseもすぐに終わる。1コマンド入力してあとは自動処理。
コンフリクトするなら、結局どこかで作業するのだから大差ない。
コンフリクトするのかな~?って考えるぐらいなら
さっさと1コマンド入力して終わらせるだけの話。
244:デフォルトの名無しさん
14/04/29 12:35:19.57 jiz/CQ6q
>>243
> というか、ウェブの管理画面からはno-ffでしかマージできない。
rebase && FF派じゃねーのかよ (´・ω・`)
245:デフォルトの名無しさん
14/04/29 12:38:23.48 EYu9TTok
rebase派だけど、FF派じゃねーよ?
rebaseのあとはどっちでもいい派。
rebaseすることに異議を唱えてるんじゃないの?
246:デフォルトの名無しさん
14/04/29 13:06:53.85 jiz/CQ6q
>>245
ちがうよ、rebaseはなくてはならない重要なツール。
俺が疑問に思ってるのは rebase && FF だよ。
理由はrebase && FF してしまうと
1 log --first-parent で要約をとれなくなる
2 マージコミットの親コミットの情報をもとにtopicのログを分離できなくなる
から。詳しくは上の方を見てくれ。
247:デフォルトの名無しさん
14/04/29 13:21:06.01 GKmjQvWP
別にどっちでもいいというか
プロジェクトの性質に合わせて運用するべきで
他人がどうこう言うもんじゃないと思うが
FF派にとっては1と2は大して重要じゃないんでしょ
どうせログなんて参考にしかならんのだから
コードを追うならFFの方が都合がいい場合もあろう
248:デフォルトの名無しさん
14/04/29 13:47:07.80 +oyspTjV
プロジェクトの性質にもよるし、そのブランチで音一連の変更がどの程度の変更量かだったり、変更の意味にもよるし、mergeやrebaseをする人の技量にもよるよな。
merge/rebaseについて検索すると、mergeはログが分岐するから良くない、原則rebaseするべきとかいうブログが出てくるけど、
URLリンク(blog.layer8.sh) (ちょっと違う例だけど)
こういうのって、ケースバイケースでしかないのに、mergeは悪!rebaseは正義!みたいに思っていそうで、
しかもこういうのを読んでmergeやrebaseの利点欠点について理解してない人たちがまたmergeは悪!rebaseは正義!と思い込んでしまって、害しかないと思うんだよな。
pullしてマージが発生したら「これでは自分が持っていたコミットの方が正統としているようなものです。origin へ push したのは a と b の方が先なのに…。」とか意味不明もいいとこ。
249:デフォルトの名無しさん
14/04/29 14:26:17.37 jiz/CQ6q
>>247
> 別にどっちでもいいというか
> プロジェクトの性質に合わせて運用するべきで
> 他人がどうこう言うもんじゃないと思うが
rebase && FFすべきプロジェクトの性質ってなに?
> コードを追うならFFの方が都合がいい場合もあろう
それってどういう場合?
一応断っておくが煽りではないよ。
どっちも例でよいので示してみてくれないか。
「あぁ、そういうことならrebase && FFマージ戦略にすべきだよね」
「rebase && FFマージ戦略じゃないと困ったことになってしまうね。解決策としてはrebase && FFマージがベストだよね」
って感じのをたのむ。
ちなみにこれも勘違いされるとイヤなので書くが、rebaseが常に悪ではないのと同様、
俺はFFが常に悪と言っているわけではないぞ。
些細な変更(ドキュメントのtypo修正1コミットとか)なんかはFFでも気にしないし、
コンフリクトしたときtopic開発者がmergeした方向によってはそれをmasterにマージする際はFFすべき。
俺が疑問を持っているのは「何がなんでもrebase && FF」ってタイプの主張だ。
250:デフォルトの名無しさん
14/04/29 14:28:32.84 jobIXRFq
どうでもいい
251:デフォルトの名無しさん
14/04/29 14:30:18.99 GcKmP5Zr
このスレの先輩方の議論のまとめとか入門とかをwikiにまとめませんか?
252:デフォルトの名無しさん
14/04/29 14:58:20.39 jiz/CQ6q
俺も他人が管理してるプロジェクトであれば「うちではrebase && FFでやるから」って言われても
「フーンそうですか。(大変ですね)」くらいで済ますわけですよ。
だが利益もないのに「履歴が一直線になってわかりやすい!」とか主張するやつが増えて、
それが正義みたいになるのは避けたいのです。
# 今のところ rebase && FF は面倒なだけで、「わかりやすい」というのは幻想だという認識
もし rebase && FF がフィットするプロジェクトの性質とやらがあるなら自分の認識を変えるし、
そうでないなら「rebase && FFが許されるのは中学生までだよねー」的な雰囲気になってほしいの。
253:デフォルトの名無しさん
14/04/29 15:08:09.46 jiz/CQ6q
名指しして悪いんだけど例えばこれ
URLリンク(powerful-code.com)
mergeの「悪い点」は履歴を統合ブランチの--first-parentとtopic
ごとに分けて考えることを知ってれば悪い点にはなり得ない。
rebaseの「良い点」はこれまた--first-parentしらねーんじゃねーの的な。
254:デフォルトの名無しさん
14/04/29 15:16:46.84 jiz/CQ6q
巨大なプロジェクトでも--first-parentで見れば直線的だし、
かなり要約(圧縮)されるので把握しやすい。
これがもしrebase && FFされてたらと考えるとログ見るのイヤになるだろうね。
例えば Linux で v3.13 から v3.14 の間には
マージコミットを除くと全部で12311個のコミットがあるんだが、
gitk --first-parent v3.13..v3.14
ってやったときに出てくる履歴は12311個と比較するとわずか422個で見た目も"直線的"だ。
これが12311個のコミットを見ないといけないとしたら、
直線的に並んでようが把握するのは楽じゃない。
422個(+マージベースの422個)のタグを打ちたきゃ打ってもいいけど、リリース用のタグが埋もれるわな。
命名規則で回避する?頑張れって感じ。
255:デフォルトの名無しさん
14/04/29 15:25:33.99 GKmjQvWP
イマイチ何を問題としているのかが分からん
> 1 log --first-parent で要約をとれなくなる
> 2 マージコミットの親コミットの情報をもとにtopicのログを分離できなくなる
これらが必要になるようなブランチの切り方・コミットの仕方が
FF前提の運用方針と合致してない(=土俵が違う)気がするんだが
>>249にあるように些細な変更はFFでも気にしないんだろ?
些細な変更を積み重ねて全体を変えていくのがFFの考えの根底にあるんじゃないの
考え方の違うものを己の考え方基準で評価したら幻想にも見えるだろうよ
256:デフォルトの名無しさん
14/04/29 15:48:55.09 +oyspTjV
>>252
rebase && FFが適してるような状況ってのは普通にあると思うよ。
複数人で開発していて、担当者がモジュールごとにほぼ完璧に分かれているような場合でかつ、クライアントがシステムの仕様についての微修正を一度に広範囲にわたって、何回も指示するような場合。
実際には作業分担が発生するから並行した開発が行われ、それによってブランチが分岐するが、それは作業上の都合であって、修正指示と1:1対応しているものではないから、嬉しいブランチの使い方ではないでしょ。
そういうときにはrebase && FFがベストケースだと言えるような気がするけど。
257:デフォルトの名無しさん
14/04/29 15:56:19.89 jiz/CQ6q
>>255
そういうことなの?
トピックブランチを用いる場合、そのトピックがあるひとつの目的を表していて、
その目的を達成するための変更が複数のコミットになったりはしょっちゅうあるんだが。
rebase && FFはトピックブランチ使わないってことなのかね。
258:デフォルトの名無しさん
14/04/29 16:01:07.06 jiz/CQ6q
>>256
なるほどなるほど。そういう意見を待ってた。
ちゃんとトピックごとにブランチを作るのを諦めざるを得ない状況ってことね。
first-parentを見てもマージコミットから単一のトピックが見えるわけじゃなく、
同一の目的であっても複数のマージコミットに情報が分散してしまう。
ならもういっそのこと rebase && FF でとにかく全体をいっぺんに見れるようにしよう、
って感じかな。
感謝感謝。
259:デフォルトの名無しさん
14/04/29 16:15:23.14 GKmjQvWP
なぜトピックブランチ使わないって結論に至るの?
FFをスムーズに実現するなら
トピックごとに細かくブランチを切る方が得策じゃないの
まあ黙るならそれでいいというか少なくとも俺はもう黙るよ
逃げてすまんね
260:デフォルトの名無しさん
14/04/29 16:17:02.13 EYu9TTok
さっきからrebase && FFが問題であるかのように言ってるが、
問題なのは「FF only の masterマージ」だろう?
rebaseはFF onlyにするのに、使うかもしれないってだけで、
別にrebaseしなくても、FFでmasterにマージできることもある。
さらに言えば、masterへのマージ以外には
当てはまらないだろう?
261:デフォルトの名無しさん
14/04/29 16:19:03.64 EYu9TTok
そしてFF only で masterマージ している(かのようなログをした)
有名なライブラリ例を上げておく。
URLリンク(github.com)
262:デフォルトの名無しさん
14/04/29 16:21:51.52 EYu9TTok
>>258
> ちゃんとトピックごとにブランチを作るのを諦めざるを得ない状況ってことね。
ブランチ切らないなら、FFでのmasterマージは
ブランチそのものがないから、ありえないだろう?
トピックごとにブランチがあるからこそ
masterへマージするときにFFにマージすることが出来るんだろう
263:デフォルトの名無しさん
14/04/29 16:26:11.71 jiz/CQ6q
>>259
いや、お前の主張には納得できなかったが議論してくれたことに感謝する。ありがとう。
264:デフォルトの名無しさん
14/04/29 16:29:31.48 jiz/CQ6q
>>260
> さっきからrebase && FFが問題であるかのように言ってるが、
> 問題なのは「FF only の masterマージ」だろう?
そうなんだけど、FF only の masterマージをしようと思ったら
(コンフリクトするかどうか関係なしに) rebase が必須になるよな?
> さらに言えば、masterへのマージ以外には
> 当てはまらないだろう?
統合ブランチへのマージの話であって、
統合ブランチがmasterとは限らないのでコレは賛同できないが、
話をシンプルにするためにmasterへのマージに限定してもらってもいいよ。
265:デフォルトの名無しさん
14/04/29 16:30:46.56 +oyspTjV
>>262
ブランチを明示的に分けなくたって、複数人が同じブランチで作業したら実質的にはローカルブランチの分岐が発生しているわけだから、
pushするためにpullするときにマージが発生するでしょ。
266:デフォルトの名無しさん
14/04/29 16:30:55.69 jiz/CQ6q
>>261
> そしてFF only で masterマージ している(かのようなログをした)
> 有名なライブラリ例を上げておく。
> URLリンク(github.com)
そうかい。
それで、このライブラリでは何の利点があって FF only で master マージしてるんだってばよ?
267:デフォルトの名無しさん
14/04/29 16:31:51.96 EYu9TTok
>>252
> だが利益もないのに「履歴が一直線になってわかりやすい!」とか主張するやつが増えて、
「履歴が一直線になってわかりやすい!」のは明確な利益だよ。
実際にわかりやすいんだから。
さて本当の問題は「FF only の masterマージ」といったわけだが、
no-ffのmasterへのマージ。これでも履歴は一直線に出来る。
履歴は一直線だが、no-ffを使っているから、この場合は問題ないだろう?
268:デフォルトの名無しさん
14/04/29 16:40:59.32 jiz/CQ6q
>>267
> 「履歴が一直線になってわかりやすい!」のは明確な利益だよ。
> 実際にわかりやすいんだから。
うーん、FFマージせずに、必要に応じてno-FFしてfirst-parentで要約したほうが
直線的なだけでなく情報が圧縮されてわかりやすいと主張しているんだが、
君には伝わってないように思えるな。 >>254 をもう一回読んでみてくれないか?
269:デフォルトの名無しさん
14/04/29 16:43:19.24 EYu9TTok
>>266
> それで、このライブラリでは何の利点があって FF only で master マージしてるんだってばよ?
俺がそのライブラリの開発者じゃないからしらんけど、
no-ffにする理由がないからだろ?
トピックブランチでは複数の修正を行わない。
トピックブランチでは必ず一つの修正のみを行う。
大きな修正はせずに小さく修正する。小さな修正を連続させて開発する。
そうするとトピックブランチに含まれるコミットは必然的に一つになる。
もしくはトピックブランチの内容は必ずsquashしてからマージすると考えてもいい。
そうする--first-parentでまとめてみたいと思っていたログは
masterへマージする段階で単に一つのコミットにまとまるだけの話。
逆にまとまって見れれば十分なわけでそれを分割する必要あるの?
と考えていると推測。
俺は小さな修正の連続での開発にしきれないから
トピックブランチに複数の修正を入れるけどね。
270:デフォルトの名無しさん
14/04/29 16:51:05.11 jiz/CQ6q
>>269
> > それで、このライブラリでは何の利点があって FF only で master マージしてるんだってばよ?
> 俺がそのライブラリの開発者じゃないからしらんけど、
ちゃんと説明できないならこのライブラリの例は無視するよ。
# いったいどこからどこまでがお前の主張なの?
俺もトピックでは複数の修正をよく入れるし、
意味のある単位で分割してる(つもりだ)からsquashなんてしたくない。
271:デフォルトの名無しさん
14/04/29 16:53:09.53 EYu9TTok
>>270
説明してるじゃねーか。
ライブラリの作者じゃないんだから
作者の本当の考えはわからん。
それは当たり前。
それとは別に推測で
ちゃんと説明してる。
272:デフォルトの名無しさん
14/04/29 16:59:55.32 EYu9TTok
>>270
> 意味のある単位で分割してる(つもりだ)からsquashなんてしたくない。
意味のある単位で分割してるのであれば、
それを一つづつのコミットに分割して、それぞれマージすることは可能だよね?
また一つのコミットだけのトピックブランチは作ったこと無いの?
コミット一つに対応する、マージコミットを作るなんて無駄だしなくてよい。
(rebase・・・かどうかは実は関係なくて)して
FF-onlyでmasterにマージするってのは、単にコミットを
一つづつマージしていると考えれば良い。
大きな修正を一度にするのではなくて、
小さな修正の繰り返しで開発するとこうなるんだよ。
273:デフォルトの名無しさん
14/04/29 17:07:40.73 EYu9TTok
ちなみに俺が反論している所を明確にしておくと、
「履歴が一直線になってわかりやすい!」というのが
メリットではないような言い方をしている点。
トピックブランチに複数のコミットが含まれている時に
それをno-ffでマージというのは俺もしている。
履歴が多少一直線になっていなくても、ちょっと見づらいだけだから目をつぶる。
目をつぶるのであって、履歴は一直線になっていたほうがわかりやすい。これは事実。
rebaseなんてコンフリクトが起きなければ大した作業ではないし、
とある誰かが要求しているようにno-ffでのmasterへのマージはちゃんとするんだから
「わかりやすくするためにrebaseで履歴を一直線に直してもいいだろう?」ということ。
(>>261はあくまでFFでmasterにマージするのも
小さな修正の繰り返しで開発できてるならありという例であげただけ)
274:デフォルトの名無しさん
14/04/29 17:14:28.12 jobIXRFq
トピックブランチのコミットが2個以上なら
マージはどうあれno-ffでやるべきだろ。
ffでマージしちゃったら、
あとでそれらコミットがなんのトピックに属していたのか
わかりにくくなるんだから。
そういうケースまで一直線のほうがいいとか言うのはアホ。相手にするだけ無駄。
275:デフォルトの名無しさん
14/04/29 17:18:53.63 EYu9TTok
連投するが、俺がいいたいのは
・masterへのマージするときはno-ffをつけろ。(念を押すがmasterへのマージの話)
・コンフリクトが起きるようなmasterへのマージは禁止。
・rebaseはしたほうがベター。なぜベターなのかというと履歴が一直線になって見やすいから。
ということ
この結果、no-ffでmasterへマージする前に「rebaseするのは一般的なオペレーション」になる。
そしてrebaseしていなくても、コンフリクトが起きなければmasterへno-ffマージしてよいので
そうするとマージ前のrebaseの有無は関係なくて単に「masterへはno-ffマージしろ」って話になる。
276:デフォルトの名無しさん
14/04/29 18:11:38.86 jiz/CQ6q
>>273
コミットグラフを書けるかちょっと試し書き。ずれてたらすまん。
お前の主張は
A-B-C
/ \
X-------M-M
\ /
D--E--F
こういう変更は DEF をrebaseして
A-B-C
/ \
X-------M---------M
\ /
D'-E'-F'
こうすべき、ってことでいいかい?
俺的にはどちらもfirst-parentで
\
X-M-M
/
に要約可能だからどっちでもいいよ。
# ただ自分でやる場合はコンフリクトしない限り前者のほうがrebaseしなくていいから楽だけと思うけどね。
# もちろんDEFのマージ時にコンフリクトしたらrebaseすることもある。DEF開発者によるmergeも可。
277:デフォルトの名無しさん
14/04/29 18:12:17.95 jiz/CQ6q
疑問視してるのは
X-A-B-C-D'-E'-F'
にすべきという主張だ。
これはA-B-CとD-E-Fが本来別の目的を目指して重ねたコミットだという情報が失われてしまうから
たとえ一直線でもわかりにくいと俺は主張しているんだよ。
トピックが2個程度ならどっちでも良さそうだが、トピックが数十の場合を想像してくれ
X-M-M-M-.....M-M
という数十個の要約を見る(必要に応じてトピック内のABC等を確認する)のと
X-A-B-C......(区切りもなく、めちゃくちゃたくさんのコミット)....x-y-z
を見るのと、どっちがわかりやすいの?ってこと。
278:デフォルトの名無しさん
14/04/29 18:15:08.80 jiz/CQ6q
ブラウザによっては結構ずれるな。わかんなきゃ無視してくれ。
279:デフォルトの名無しさん
14/04/29 18:24:55.80 VGBInRA4
2.0からデフォルトでFF onlyになるのは知ってるよね君たち
どうしてこうなったのかもちろん議論されてるのも知ってるよね
280:デフォルトの名無しさん
14/04/29 18:25:46.52 ABe1tyQZ
これもうわかんねえな(バグったときの修正範囲が)
281:デフォルトの名無しさん
14/04/29 18:30:04.67 qq5sN0hH
>履歴は一直線になっていたほうがわかりやすい。これは事実。
一見わかりやすい気がするっていうのと、意味的にわかりやすいというのは別だと思うのだがどうだろう
svn のように時系列にコミットが一直線に並んでるのはわかりやすいか?
rebase → ff マージでトピック内の全コミットをフラットにしたのがわかりやすいか?
rebase → squash マージだと master のコミットグラフは一見綺麗になるかもしれんが実態はちょっとアレだし
そしてfirst-parentオプションつければたとえ一直線でなくとも意味的に見やすいログが手に入るんだろう
282:デフォルトの名無しさん
14/04/29 18:44:21.18 jiz/CQ6q
>>279
pull.ff 設定が可能になったのは確かだし、単に上流を追従するだけでその上で作業しないリポジトリなら
ff-onlyのほうが嬉しいのは確かだが、今議論してる内容とは前提が全然違うぞ。
# rc1だがmergeもpullもデフォルトでFF onlyな動作じゃないのを確認しちまったじゃねーか。
283:デフォルトの名無しさん
14/04/29 18:45:53.07 jiz/CQ6q
>>281
そうそう。
ちなみに gitk --first-parent すると要約されたコミットグラフは事実上一直線なのがわかると思う。
284:デフォルトの名無しさん
14/04/29 19:02:08.02 ABe1tyQZ
ベースブランチの状態が多いイコール検証箇所も多くなって面倒だからそうならないようコミットも最小限にしたほうがいいんじゃないの
285:デフォルトの名無しさん
14/04/29 19:47:52.24 6KBRCzBr
>>223
というわけで、実験してみた。
ブランチ削除しても履歴はのこるんですね。
そのツリーがごっそりなるものだと思ってた。
マージにしても、前やったときは、強制的に変なコミットログ追加されて気色わるかったきがしたけど、今やると普通だな。
僕含めまわりもまだ不慣れなので、FF縛りは、外せないけどマージするだけなら問題なさそう。
286:デフォルトの名無しさん
14/04/29 19:56:50.37 EYu9TTok
> ちなみに gitk --first-parent すると要約されたコミットグラフは事実上一直線なのがわかると思う。
ね? 一直線は見やすいでしょ?
常にに--first-parentするわけじゃないので、
しなくても一直線になったほうが嬉しいよ。
287:デフォルトの名無しさん
14/04/29 19:58:40.00 jiz/CQ6q
>>285
報告ありがとう。
今後もGitに慣れるにしたがって、見え方も変わってくるかもしれないな。
周りも不慣れということで大変だと思うが、お前のプロジェクトのベストプラクティス確立にむけて頑張ってくれ。
グッドラック。
288:デフォルトの名無しさん
14/04/29 20:21:45.22 jobIXRFq
一直線バカは救いようのないバカだな
289:デフォルトの名無しさん
14/04/29 23:30:04.09 +oyspTjV
「履歴が一直線になってわかりやすい!」かどうかって、もはやコミットの順序というものにどういう意味があるかどうかという意味論なのだから、
ケースバイケースでしかないだろう。
アプリケーションの見た目を変更するときにAプランとBプラン、どっちもやってみて、Aプランから20%、Bプランから80%採用、なんてときは履歴が一直線になってないほうがいいだろうし。
(そんな変更をマージコミット一つで済ませてしまうのか、という問題はあるが)
結局、履歴が一直線になってたほうが良い場合もあるし、良くない場合もあるというだけだろ。どっちかが明らかに正しいというもんじゃない。
290:デフォルトの名無しさん
14/04/30 00:35:08.42 UGHSixxv
一直線が良いケースが挙げられてないけどな
291:デフォルトの名無しさん
14/04/30 01:11:54.22 pWom3qZR
一直線: 見えを貼りたいだけのバカ。俺はまっすぐ順調に開発をしてきたというアピールがしたい
292:デフォルトの名無しさん
14/04/30 01:29:11.37 Gbwo+6jG
東大一直線
293:デフォルトの名無しさん
14/04/30 05:04:21.07 mdKtpEfX
意味不明なエラーでpush不可能になった
remote: FATAL: WM refs/heads/*** **** **** DENIED by fallthru
remote: error: hook declined to update refs/heads/***
git reset --hard origin/upstream_worktree
して差分再適用してやり直したら通った
こんな意味不明なことが多発するのがgit
現実的には使い物にならないね
294:デフォルトの名無しさん
14/04/30 08:30:44.87 1vNQkGgC
hook declined
ってかいてあんじゃん
295:デフォルトの名無しさん
14/04/30 11:02:23.25 4gXDKzV2
書き込み時刻を見ろ 察してやれ
296:デフォルトの名無しさん
14/04/30 14:42:09.85 mdKtpEfX
dis発言に対してはただ叩くだけ
それも論理的に叩けないから人格攻撃に走るしかない
情けない奴らだよな
297:デフォルトの名無しさん
14/04/30 14:48:31.80 mdKtpEfX
別リポジトリで他人による大量の更新があって
半端にマージした挙げ句途中でこけて
半端にステージングした状態になり
結局
git reset --hard origin/upstream_worktree
するしかなくなった
ここまで致命的に腐ってると使い物になるならない以前の次元だね
298:デフォルトの名無しさん
14/04/30 14:55:49.07 nKoANYQ+
またいつものコンフリクト恐怖症の人か
299:デフォルトの名無しさん
14/04/30 18:26:55.40 mdKtpEfX
コンフリクト解消で済めばいいんだが腐ってるから済まないんだよね
300:デフォルトの名無しさん
14/04/30 18:51:13.84 h9gMUOtr
なるほど、コンフリクトの解消の仕方が分からないから
コンフリクト恐怖症になってしまったのか
301:デフォルトの名無しさん
14/04/30 18:51:51.42 rHgIYikH
Aリポジトリでもらったpull requestを
Bリポジトリに反映する方法を教えてください
302:デフォルトの名無しさん
14/04/30 18:59:19.90 1L5gAVQy
ところで、大声でジットと呼ぶ人がいて困ってるんだ
ディスクトップパソコンみたいな
職場がSubversion教に汚染されてるので仕方ないな
303:デフォルトの名無しさん
14/04/30 19:12:36.93 ZY5HChQC
じっと我慢汁
304:デフォルトの名無しさん
14/04/30 19:50:56.80 fWhizGrM
レーダーデスクカラオケ
305:デフォルトの名無しさん
14/04/30 19:56:34.41 EonfyA0Y
ギットギトにしてやんよ
306:デフォルトの名無しさん
14/04/30 20:25:07.89 WuyiDL68
>>297
> 半端にマージした挙げ句途中でこけて
(コンフリクトしたときのデフォルトの動作だ・・・)
> 半端にステージングした状態になり
(コンフリクトしたときのデフォルトの動作だ・・・)
> 結局
> git reset --hard origin/upstream_worktree
> するしかなくなった
(コンフリクト解消できなかったなら git merge --abort すればよかったんじゃ・・・)
307:デフォルトの名無しさん
14/04/30 21:19:26.86 livyiFPX
>>297
> git reset --hard origin/upstream_worktree
わろたwwww
え? あんた自分の作業けしちゃったの?www
馬鹿だなぁ。
gitはsubversionと違ってmergeやrebaseの途中で
コンフリクト起きてごちゃごちゃなっても、
merge/rebase作業をキャンセルして簡単に戻せるのにwww
情けだ、ヒントをあげよう。
mergeしてるってことはコミットしてるってこと。
そのコミットIDはgit reflogすればわかるので
あとはそのコミットIDをチェックアウトすれば前の状態に戻せる。
gitはコミットしたものが消えることはない。
gitって安全だよねー
308:デフォルトの名無しさん
14/04/30 21:28:01.99 upmIhAH5
>>217
プロジェクト名に言語が入ってないとなんの言語で作ってるのかわからないじゃん
言語を変えたらリポジトリ名を変更すればいいじゃん
309:デフォルトの名無しさん
14/04/30 21:58:49.74 Y0BKcERE
>>308
悪いことは言わないから足を洗え。
310:デフォルトの名無しさん
14/04/30 22:12:33.53 livyiFPX
そういやgithubってプロジェクトで使用している言語がわかるようになったよね。
gitだと、カラフルなバーをクリックすると以下のように表示される。
C 45.5% Shell 34.6% Perl 9.6% JavaScript 3.4% Python 2.9% Tcl 2.6% Other 1.4%
>>308
で、このようにリポジトリにプロジェクト名入れなくても
githubならわかるし、gitのように複数言語使ってる時どうすんの?
そんなことも考えれずに、言語名にこだわるなら、
センス無いなとしか言えないなw
311:デフォルトの名無しさん
14/04/30 22:41:41.21 rUdHCEgh
githubだけの視野で語られても
312:デフォルトの名無しさん
14/04/30 22:42:55.54 livyiFPX
github以外のプロジェクトでも
複数言語でアプリ作るのは一般的だけど?w
313:デフォルトの名無しさん
14/04/30 23:26:12.17 mdKtpEfX
307は本当に馬鹿なんだなぁ
管理されてないファイルがreset --hardの対象にならないことは以前に確認済みだから関係ないし
コミットしたものはすぐに権限持ちに差分送ってるし
コンフリクトは元々未来分の作業は既に入っててそこからコメント消す程度
俺が泣かなくて残念だったな
314:デフォルトの名無しさん
14/04/30 23:51:07.78 1vNQkGgC
結局gitのおかげで無事でした
めでたしめでたし
315:デフォルトの名無しさん
14/05/01 00:28:44.24 WukXr8jq
>>312
プロジェクトを1つのディレクトリに詰め込むタイプですか?
316:デフォルトの名無しさん
14/05/01 09:28:45.91 PzUwUPDQ
>>313
意味がわからないなあ
コミットしたものを権限持ちに既に送ってあるとしたら、
お前が上流からマージしようとしたブランチは一体何なの?
お前がコミットしたものを含んでいないブランチ?
317:デフォルトの名無しさん
14/05/01 11:07:25.45 PVO7jj2i
>>315
なんでそんな発想が出てくるんだ? (w
318:デフォルトの名無しさん
14/05/01 11:24:48.42 /DVUm5po
おれはさ
php/wiki
php/cms
php/mailform
っていうふうに管理してるの
他の言語で同じ物を作ることもあるから
ruby/wiki
みたいに言語をネームスペースにすると管理が楽なんだよ
319:デフォルトの名無しさん
14/05/01 17:12:30.25 PzUwUPDQ
>>318
それとGitと何の関係があるんだ?
320:デフォルトの名無しさん
14/05/01 17:20:29.51 U31MyfYF
Gitはソースコードを管理するわけだからプロジェクトと関係あるだろ
C:/appData/User/toyohiko/マイドキュメント/mycode/php/wiki
これを外部のリポジトリ管理サービスに突っ込むときのリポジトリ名はphp-wiki
321:デフォルトの名無しさん
14/05/01 17:24:28.79 n23f7Uie
名前付けのポリシーとか別に好きにすればいいと思う。
322:デフォルトの名無しさん
14/05/01 17:44:02.84 PzUwUPDQ
>>320
そんなもん上流のリポジトリ管理方針次第だ
例えば俺はandroidのapp01プロジェクトを
ssh://remotehost/repo/android/app01.git とかに格納してる
323:デフォルトの名無しさん
14/05/01 17:52:02.03 U31MyfYF
>>310
複数言語使っているときは
C:/appData/User/toyohiko/マイドキュメント/mycode/other/wiki
というようにして言語名のフォルダにいれず名前空間に言語名を付けない
324:デフォルトの名無しさん
14/05/01 18:01:12.45 n23f7Uie
もう自由にタグ付けできる自分用プロジェクト管理ツール使っちゃえよ。
325:デフォルトの名無しさん
14/05/01 18:13:02.15 ZgnY/tZG
>>318
コードネームつければいい。
phpは犬の種類、rubyは猫の種類とか原則を持たせても良い。
326:デフォルトの名無しさん
14/05/01 19:05:29.45 PzUwUPDQ
>>323
githubがリポジトリを「URLリンク(github.com)ユーザー名/リポジトリ名」で管理してるのは
githubの管理方針であって、gitとは直接関係無いということが理解できた?トヨヒコくん
327:デフォルトの名無しさん
14/05/01 19:26:56.62 3NSQaEE2
だからさGitHubだけで語るな
328:デフォルトの名無しさん
14/05/01 22:47:07.56 dcOXu/fE
確かにSubversion使ってたときは一つのリポジトリに色々入れてたけど(そしてSubversionを適当に使う限りではそれで事足りてた)、
Gitは部分チェックアウトも出来ないしコミットもブランチも困ることだらけだからプロジェクトごとにリポジトリ分けるのが当然だよな。
自分もGit初心者の頃はSubversionと比較しちゃって部分チェックアウトが出来ないのが不便だのsvn:externalsと完璧に同等のものがないのが困るだの言ってたけど、
そのときGitユーザーから「Subversionとは思想が違うから比較するのは意味が無い」的なことを言われたけど、今はまさにそのとおりだと思うよ。
とりあえずSubversionでややこしい開発はしたくないね、もう。
329:デフォルトの名無しさん
14/05/02 03:41:26.83 ZGvM0amq
>>316 pullするだけでその状態になることすらわからないとかお前本当に馬鹿だな
330:デフォルトの名無しさん
14/05/02 03:48:34.89 PU3lP69m
>>326
はあ?リポジトリ名の話なのに
>「URLリンク(github.com)ユーザー名/リポジトリ名」
ってなんだよ話そらしてんじゃねえよ
331:デフォルトの名無しさん
14/05/02 06:22:29.35 KJDTZacL
自分の管理下にあるリポジトリなら好きに名前付けりゃいいじゃん
332:デフォルトの名無しさん
14/05/02 06:35:41.08 Ujs4NpLL
>>330
とよひこ君はまだわからないのか
githubじゃなければ、リポジトリ名をphp/wikiとかruby/wikiみたいにネームスペースにして管理できるって言ってんだよ
333:デフォルトの名無しさん
14/05/02 06:37:10.90 Ujs4NpLL
>>329
pullするだけですべてうまく行くと思ってるのは幻想だ
ちゃんと勉強したほうがいいな
334:デフォルトの名無しさん
14/05/02 08:09:07.29 ZGvM0amq
わざわざvcsの勉強なくて無価値なことはしたくもないね
335:デフォルトの名無しさん
14/05/02 08:29:32.57 Ujs4NpLL
Gitに関しては勉強する価値があった
正直まともなVCS使わないのは、高機能エディタやIDEも使わずメモ帳で開発するようなもんだわ
336:デフォルトの名無しさん
14/05/02 11:30:23.12 W9jDDFpi
パスワードを含んだファイルがあるんですけど
このファイル内のパスワードを削除して雛形だけの状態にしてからプッシュしてます
一度プッシュしたらほとんど修正はしないファイルなんですがこういう場合ってどうするものですか?
337:デフォルトの名無しさん
14/05/02 13:03:04.92 pbdRog+k
>>336
$ touch password.txt; git add password.txt; git commit
$ git update-index --skip-worktree password.txt
$ echo -n 'himitsu' > password.txt; git status
On branch master
nothing to commit, working directory clean
とか?
338:デフォルトの名無しさん
14/05/02 13:06:17.10 Pfd+HO5D
>>332
> リポジトリ名をphp/wikiとかruby/wikiみたいにネームスペースにして管理できるって言ってんだよ
別に、/ スラッシュを使わなくても
php\wiki や ruby\wik でもいいだろう?
php_wiki や ruby_wik でもいいだろう?
339:デフォルトの名無しさん
14/05/02 13:17:21.62 Oia8PEO/
>>336
aaa.confってファイル名だとしたら
.gitignoreにaaa.confを登録してaaa.conf.sampleみたいなファイル名で
コミットしておくのが多いんでないかな
340:デフォルトの名無しさん
14/05/02 14:47:13.55 Ujs4NpLL
>>338
話の流れを読めないアホなのか?>>216が話のはじまりだ
別に本人が / 以外でいいのならそれでいいぞ
ただし、\ で区切るのは勘弁してくれ
341:デフォルトの名無しさん
14/05/02 15:06:33.45 WqSAbr7K
User/repository.gitが
User/php/oreore.gitじゃなくてGItHubが/を-に変換してUser/php-oreore.gitになる
bitbucketは名前を強制的に変換はしないがurlのほうは変換される
余計な機能
342:デフォルトの名無しさん
14/05/02 17:26:31.17 BNaPh7J8
% git clone URLリンク(...) php/oreore.git
すればいいだけじゃねーの。
手元で php ディレクトリが存在してるかどうかに関わらず
Gitは指定したパスにクローンしてくれるよ。
わざわざ指定するのがイヤなら
そういうcloneをするようなスクリプトかぶせてもいいし。
343:デフォルトの名無しさん
14/05/02 17:34:19.17 XSE+HkNu
C:¥testからD:¥testに移動したいんですけど
ファイラーで移動したらgitできなくなりました
.gitの中でどのファイルを開いてパスを書き換えたらいいですか?
344:デフォルトの名無しさん
14/05/02 17:44:12.24 BNaPh7J8
>>343
わからん。ありそうなのは .git/config だが、
適切に答えるには情報が不十分かつ不正確。
345:デフォルトの名無しさん
14/05/02 17:53:43.03 XSE+HkNu
C:¥testでgit initして適当にファイルを作ってコミットして
C:¥testをコピーしてD:¥testにペーストしたんです
D:¥testのなかでgit logしたらログが表示されません
346:デフォルトの名無しさん
14/05/02 18:06:55.59 +HIQMOvh
全く再現しねえな
347:デフォルトの名無しさん
14/05/02 18:07:33.93 XSE+HkNu
eeeeeeeeeeee
348:デフォルトの名無しさん
14/05/02 18:14:47.14 +HIQMOvh
GitBushから
cd /c/temp
mkdir git
cd git
mkdir test1
cd test1
git init
vim README
git add .
git commit -m "initial commit"
エクスプローラで
Cドライブ(C:\Temp\Git\Test1)を右クリックメニューでコピー
Dドライブ(D:\Temp\Git)にて右クリックメニューから貼り付け
GitBushから
cd /d/temp/git/test1
(ちゃんとmasterって表示になった)
git log
(ちゃんとinitial commitのコミットが表示された)
まったく再現しない
エクスプローラ以外のファイラーは知らんが、隠しファイルや隠しフォルダは移動しない設定になってんじゃないの
349:デフォルトの名無しさん
14/05/02 18:23:12.12 3JApfdBs
おかしいな・・・またあとできます
350:デフォルトの名無しさん
14/05/02 20:15:24.71 dlumt8FZ
Gitのこともほとんど具体的な操作方とか知らないままなんだけど、GitHub実践入門を買った
ので、Git操作のお勉強と同時にGithubも使いだした。
351:デフォルトの名無しさん
14/05/02 20:18:51.30 6MkiwdiC
rmした後に全く関係ないファイルをaddするとrmしたファイルのrename扱いになるんですが
単に新規ステージングしたファイル扱いにできますか?
直後にrmしたファイルではなく、始めにrmしたファイルのrenameになっていたり
動作がわけわららんです
352:デフォルトの名無しさん
14/05/02 20:48:37.15 YmhbMTXU
>>337 横レス
設定ファイルとか便利そうだな。覚えておこう。
353:デフォルトの名無しさん
14/05/02 20:49:12.42 6MkiwdiC
どうやら中身が同じファイルは勝手にrename扱いにしてくれるようですね
空ファイルでトレーニングしていたので混乱してしまいました
354:デフォルトの名無しさん
14/05/02 20:59:01.62 6ajnVdK2
>>351
gitのデータ構造としては、ファイルの移動や改名とかは管理してなくて、
表示の時にヒューリスティックに判断してrenameとか出してるだけだから、
気にする必要ないよ。
355:デフォルトの名無しさん
14/05/02 21:02:26.52 6MkiwdiC
>>354
ありがとうございます
そういうものだと、気にしないようにします
356:デフォルトの名無しさん
14/05/02 21:42:27.82 x3xYwsX7
gitはファイルではなくコンテンツを管理していると言われる所以だね。
357:デフォルトの名無しさん
14/05/02 22:17:35.97 Xf1Tcq77
gitでhookファイルを変更した場合
これをGitHubにプッシュした阿戸に
ローカルのファイルとリポジトリを削除してからクローンしたらhookファイルの内容がないんですが何故ですか?
358:デフォルトの名無しさん
14/05/02 23:58:46.02 ojQzvTVb
こんなGit入門の本を買った。
URLリンク(2ch-dc.net)
359:デフォルトの名無しさん
14/05/03 00:29:50.84 9lt90aGA
喜ぶべきか悼むべきか・・・
360:デフォルトの名無しさん
14/05/03 01:42:57.16 fa3rSR83
>>358
それってどう?
361:デフォルトの名無しさん
14/05/03 02:05:49.12 Z2xjVVlJ
>>357
フックは版管理されてないから。configも同様。
フックをシェアしたいならワーキングディレクトリにフックを置いて、Makefileなりsetupスクリプトからインストールできるようにする。
クローンしただけで勝手にスクリプトに走られたら困る。
362:デフォルトの名無しさん
14/05/03 02:07:15.00 vyhhlfA3
>>360
文章読むだけならGithubで公開されてる
363:デフォルトの名無しさん
14/05/03 02:11:26.95 Z2xjVVlJ
>>353
rmしたファイルのindexに注意。git rm。
git mvはgit addとgit rmを同時にやってくれる。
364:デフォルトの名無しさん
14/05/03 07:45:11.01 n1PIULKZ
>>353
中身が似てるファイルね
rename扱いにしてるのはログ表示の時だから、まあ気にしなくていいには変わらない
コピペ検出機能だとでも思っておけ
365:デフォルトの名無しさん
14/05/03 13:12:50.33 EAqxmtFF
リモートにtagをpushした後、リモートに存在するtagを確認するにはどうすればよいのでしょうか
ローカルリポジトリのtagなら git tag, リモートのブランチなら git branch -r ですが、
リモートのtagを表示するコマンドが見つかりません
366:デフォルトの名無しさん
14/05/03 14:26:01.92 H1NY/7i6
git ls-remote リモート名
367:デフォルトの名無しさん
14/05/03 14:26:42.30 oP8j+OVm
>>365
これでリポジトリを直接指定して確認できるけど、
git ls-remote --tags リポジトリのURL
もっといい方法があるかも?
368:デフォルトの名無しさん
14/05/03 14:47:09.37 EAqxmtFF
>>366-367
感謝です!ありがとうございました!
369:デフォルトの名無しさん
14/05/04 11:33:46.82 bQKl4dNQ
リモートリポジトリからPullした直後で一切変更を加えていないにも関わらず
git statusでいくつかのファイルで差分が検出されてしまう現象にが起きています
差分が検出されているファイルのdiffを見るとソースコード全体が入れ替えられたような表示になります
しかし、該当ファイルをgit addしてから再度git diffすると変更点なしと表示されます
現象が起きるファイルは.cpp、.cs等複数の拡張子で
その拡張子のファイルすべてで起きる訳ではなく、頻繁に更新されるファイルで起きているように見えました
この現象についてWeb検索したのですが、該当しそうな情報は得られませんでした
githubのクライアントとVisualStudio2013のgit機能を併用していることに
原因がありそうな気がしているのでそのあたり調査する予定ですが
見直すべき設定等、何かヒントを頂けたら嬉しいです
370:デフォルトの名無しさん
14/05/04 11:50:13.22 IxrX60Uq
>>369
改行コードだな
371:デフォルトの名無しさん
14/05/04 18:11:29.06 Efc5dGc7
git config core.filemode false
git config core.symlinks false
372:デフォルトの名無しさん
14/05/05 12:36:20.36 qzGHizbC
pullは1箇所から取得してpushは複数にする方法を教えてください
AitHubのみpullして
pushはAitHub,BitHub,CitHubの3箇所に送信してバックアップがしたいんです
373:デフォルトの名無しさん
14/05/05 13:48:29.73 bcw2AmGJ
>>372
git remote add知ってる?
374:デフォルトの名無しさん
14/05/05 13:50:28.20 HNW3XBXV
それ知ってますけど1つのとこしかpushできませんよね
375:デフォルトの名無しさん
14/05/05 14:07:54.45 NnoKU6B2
一つの所ってなんですか? originですか?
なんでいちいち名前を指定すると思いますか?
一つだけなら名前は必要ないはずですよね?
376:デフォルトの名無しさん
14/05/05 14:08:40.84 NnoKU6B2
なんでremote addだと思いますか?
一つだけならremote setでいいはずですよね?
あとは自分で考えてください。
377:デフォルトの名無しさん
14/05/05 18:39:57.72 G1VleuAd
git push {A,B,C}itHub branch
378:デフォルトの名無しさん
14/05/06 11:11:21.75 wWugdkdR
>>369
autocrlfくさい
379:369
14/05/06 15:12:16.47 5E8fiGLl
>>370,371,378
ありがとうございます。
いただいた助言を参考に試行錯誤して、とりあえず以下の操作をしたら
現象が落ち着きました。
・core.autocrlfをtrueからfalseに(Windowsでしか開発しないので)
・core.whitespaceを明示(space-before-tab,trailing-space)
・該当ファイルをVisualStudioの「ドキュメントのフォーマット」を使用して整形
もしかしたらwhitespace周りが原因だったのかもしれません。
どうもありがとうございました。
380:デフォルトの名無しさん
14/05/06 16:27:04.50 dFD2Q7zD
masterブランチの内容をtestブランチに移動して
masterブランチ内のファイルの内容を空の状態にする方法を教えてください
381:デフォルトの名無しさん
14/05/06 18:22:58.02 ms/T2S5F
ファイルの内容を空の状態にする?ファイルのサイズを0バイトにするってこと?
382:デフォルトの名無しさん
14/05/06 18:53:05.44 2kojW0Cn
あるブランチでコミットした内容をmasterに反映させる時rebaseを使えっていうのをここで習ったんですが
具体的にどうやるのか教えてください
git init
touch a
git add a
git commit -m "INITIAL COMMIT"
git checkout -b kaihatu1"
echo "1" > a
git add a
git commit -m "1を追加"
echo "1" > a
git add a
git commit -m "数字を2に変更" ←いまここ
この後から何をしたらいいのか教えてください
383:デフォルトの名無しさん
14/05/06 18:59:41.16 WvF/ZXc8
絵に描いたような教えてクン
384:デフォルトの名無しさん
14/05/06 19:03:35.48 Fr+PW76D
あるブランチでコミットした内容をmasterに反映させる時に使うのはmerge
ブランチには複数のコミットが含まれている。という前提とする。
masterにマージする時のやり方
1. squashして一つのコミットにしてマージ
2. squashせず、マージコミットを作ってマージ(no fast foward)
3. squashせず、マージコミットもつくらずマージ(fast forward)
ブランチは作業履歴とか入っていてコミットが汚いことがあるので
mergeする前にブランチを綺麗にしておくと良い。
ただし1ならコミットは一つになるからrebaseする必要はない。
2. もしくは 3の時、マージされたコミットを綺麗にしておきたいならrebaseする。
小さなバグ修正とか、タイポの修正とかそんなのが残ってても気にしないならrebase不要。
ただし、rebaseせずにfast fowardでmasterにマージすると
revertしづらくて死ぬだろう。コミットが綺麗なら3でも良いが、
2にしておくと、ブランチ単位でrevertできるから楽。
385:デフォルトの名無しさん
14/05/11 13:29:58.96 DrfDcIuJ
1.9.3 がリリースされたね
386:デフォルトの名無しさん
14/05/11 16:13:44.39 8Qasa1hM
>>385
それが・・・どうかしたの?
387:デフォルトの名無しさん
14/05/11 16:14:30.91 M5uHChWE
今回のはつまらんリリースだ
388:デフォルトの名無しさん
14/05/11 17:39:48.22 qkdWQCFA
まだ1.9つかってるの?もうこっちは2.0使ってるよ
389:デフォルトの名無しさん
14/05/11 19:24:38.83 04FzsR6r
俺のはいまだに1.7ですが
390:デフォルトの名無しさん
14/05/11 21:21:49.14 wZvRNfhO
カレントを追いかけているから俺も常に最新・・・
アップデートきてたから1.9.3に今した
391:デフォルトの名無しさん
14/05/11 21:23:17.01 pXskIuQ6
1.8 位から、処理速度が速くなったと思う
392:デフォルトの名無しさん
14/05/12 00:23:32.35 fWwUyCwI
俺初めて使ったとき、まずルートでinitしていつまでも延々待ちになってしまって
壊れているかと思った。
393:デフォルトの名無しさん
14/05/12 12:14:12.48 bllVZHXA
>>390
カレントってなに?gitからクローンすると2.0になるけど?
394:デフォルトの名無しさん
14/05/12 13:44:49.20 1rzT8Re4
>>393
>カレントってなに?gitからクローンすると2.0になるけど?
「現時点で GitHub から Git のリポジトリのクローンを取得してビルドしてインストールすると 2.0 になる」という意味?
現時点で 2.0 は正式版ではなくて RC 版だよ。
URLリンク(github.com)
現時点の最新の 2.0 は 2日前にリリースされた v2.0.0-rc3。
現時点の最新の正式版は 2 日前にリリースされた v1.9.3。
395:デフォルトの名無しさん
14/05/12 16:08:54.91 VMOJUad9
バグ修正が中心のリリースとなる「Git 1.9.3」が公開される
URLリンク(sourceforge.jp)
396:デフォルトの名無しさん
14/05/13 00:02:25.45 cgdWIPbr
>>394
カレントって普通
> 現時点の最新の 2.0 は 2日前にリリースされた v2.0.0-rc3。
を指すんじゃね?
397:デフォルトの名無しさん
14/05/13 00:23:30.33 Kbu/OO7P
カレントって普通は安定板stableの最新版じゃないの
テスト要素のあるrcやβは含まないんじゃないの
398:デフォルトの名無しさん
14/05/13 00:36:15.98 A9K77IIM
普通は安定版だよ
399:デフォルトの名無しさん
14/05/13 00:47:21.79 V9w/ceW7
currentというとバージョン管理システムから持ってきた
開発版のソースを指すケースもあるな
*BSD方面とか
400:デフォルトの名無しさん
14/05/13 01:02:23.02 TNqok+m1
2.0を使ってるひとは、2.0がrc版だって認識して使ってるの?
401:デフォルトの名無しさん
14/05/13 01:09:14.75 8hwDbhT0
RCというのはリリース候補。ベータ版よりも
完成度が高い、リリース版レベルのもののことだよ
402:デフォルトの名無しさん
14/05/13 01:09:32.07 Kbu/OO7P
そりゃそうだろ
ソースからビルドするならタグから引っ張ってくるだろうし
403:デフォルトの名無しさん
14/05/13 01:11:36.76 Kbu/OO7P
>>401
v2.0.0はrcが1、2、3と出てるんですがそれは
404:デフォルトの名無しさん
14/05/13 01:19:56.17 aq/kP6dx
>>403
完成度もせいぜいベータよりはマシ、ってレベルで
gitのリリース版レベルなんてのは所詮その程度だ
ってことを>>401は言ってる。
405:デフォルトの名無しさん
14/05/13 01:21:40.67 TNqok+m1
2.0で付加される新機能を早く使いたいとかGitのバグ取りに協力したいっていうなら理解できるんだけど、それ以外に2.0rcをあえて使う理由ってあるの?
406:デフォルトの名無しさん
14/05/13 05:43:56.92 Tx8Pcw2g
自分が何かgitに関連するモノを作って自分以外の人に提供してるなら
最低でもRCの段階で問題無い事を確認しておきたいな
407:デフォルトの名無しさん
14/05/13 12:15:49.81 KvmMEOaQ
>>406
それは理解できる
でもこのスレの >>388 とか >>393 ってそういう感じじゃないんだよね
GitHubからクローン取得してビルドしたら2.0で、2.0がrcであることも知らないで使っている、そして2.0未満のバージョンのユーザを馬鹿にしている
こんな風に思えてしまう
408:デフォルトの名無しさん
14/05/13 12:57:27.93 0j07nOJV
データを蓄積するツールとして使ってるから安定版。俺はまだ1.7使ってるし。
409:デフォルトの名無しさん
14/05/13 13:06:38.35 vRP8IXzs
>>407
身の回りにいるならともかく、ネットの向こうにいる他人なんてほっとけよ。
あと、>>388 でバカにされたとか思うようなら、このての掲示板見ない方がいいと思うぞ。
410:デフォルトの名無しさん
14/05/13 13:14:13.76 +cSIqVHp
gitでバージョン番号管理って、みんなどうやってる?
411:デフォルトの名無しさん
14/05/13 18:24:36.93 A9K77IIM
vistaでgui使ってコミットするファイルの選択してたら固まりまくったんだけどなんなん
1.8.4で起きて1.9.2に更新しても再発した
もろもろ込みの15mくらいのexe
Git-1.8.4-preview20130916 → Git-1.9.2-preview20140411
412:デフォルトの名無しさん
14/05/13 18:42:33.12 KvmMEOaQ
>>409
了解
413:デフォルトの名無しさん
14/05/13 20:58:37.93 Xzl/NzK/
Gitのmasterはrcとはいえpuやnextに比べれば安定してんじゃねーの
あとGitはrcをリリース4 5週間前から毎週出すポリシーみたいだから、
rcの数が多いか少ないかで安定度は測れない。
一応今週末に正式リリース予定ぽいんで、
今週出なければなんかまずいバグが残ってるのかもね。
414:デフォルトの名無しさん
14/05/13 21:43:52.50 HfUZuSMx
gitをコンパイルして入れるときってユーザーはrootでやってますか?
415:デフォルトの名無しさん
14/05/13 21:58:13.25 8hwDbhT0
>>414
コンパイルは一般ユーザー
ディストリは?
416:デフォルトの名無しさん
14/05/13 22:42:01.92 HfUZuSMx
debianです
ソースコードから入れる時って/usr/local/srcにいれてるんですが
ここ一般ユーザーだと書込できないんですよね
おまけにrootにsshの設定をしてないのでgit cloneできないし
rootにsshの設定をするべきではないらしいのでどうするのがいいのかわかりません
417:デフォルトの名無しさん
14/05/13 22:48:27.73 8hwDbhT0
debianなら /usr/local 以下は staff グループになってるでしょ?
なら自分をstaffグループに追加すればいいだけ。
まあ、俺は自分のhome以下でコンパイルするけど。
なんかさ、よくコマンド実行できなかった時、
グループに追加すればいいのに、すぐsudo使う人いるよね。
418:デフォルトの名無しさん
14/05/13 22:49:46.52 tJgFTBc/
ソースなんてどこに入れてもいいし、バイナリやライブラリもパス通ってるならどこでもいい
419:デフォルトの名無しさん
14/05/13 22:49:59.25 tmdhIwHM
なんか呼ばれたような気がしたので
420:デフォルトの名無しさん
14/05/13 23:30:22.27 HfUZuSMx
なんかエラーで全然ここに書込ができません
ありがとうございます
あとはlinxuできいてきます
421:デフォルトの名無しさん
14/05/14 00:59:32.71 N43CNidq
Git の公式の文書ではソースからのインストールの例として sudo を使ってるけどね。
URLリンク(git-scm.com)
422:デフォルトの名無しさん
14/05/14 01:46:24.51 ToGrq+HN
>>410
リリース番号とかなら、CIツールのビルド番号とかでいいんじゃね
423:デフォルトの名無しさん
14/05/14 02:13:25.97 +eGAQ9pX
そもそも自分しか使わない PC で、いちいちグループに追加とかしてると、むなしくなってくるわ
sudo で十分だよ
424:デフォルトの名無しさん
14/05/14 02:48:09.56 LFlUnuUg
sudo & パスワード打つのが面倒だろ?
楽な方を提案してるんだよ。
425:デフォルトの名無しさん
14/05/14 02:49:32.86 TJ8LcHmI
もうrootになっちゃえよ。
426:デフォルトの名無しさん
14/05/14 02:51:54.81 EH48jFeA
侵入されたら即乗っ取られそうなインターネッツですね
427:デフォルトの名無しさん
14/05/14 03:03:17.35 LFlUnuUg
>>425
それはだめ。
root使うなって流れでsudoなんだろうけど、
なんでもsudo使ってたら意味ないって。
そのうち普通のコマンドまでsudo使う癖がつくとかな。
sudoつかってホームディレクトリ以下にファイルやディレクトリを
作るもんだから、自分のファイルを編集できないとかアホなことにw
428:デフォルトの名無しさん
14/05/14 04:42:12.31 8Tw5p8Hi
一般ユーザの権限増やしちゃうほうが余程ダメだろ
確かに初心者の頃には自分に弄れないファイル作ったりするもんさ
…でも、そこでそのファイルの所有者を自分に戻す方法や
どうすれば一般ユーザのファイルとして作れるのかを考えず調べずに
「一般ユーザの権限を増やしちゃえ」
ってやるのは思考停止だと思うよ、root常用と発想が変わらない
429:デフォルトの名無しさん
14/05/14 05:13:22.04 TJ8LcHmI
普通にrootでapt-getしてstaffなユーザでgit使ったらいいんじゃないの。
staffグループに入れるのすら嫌うのにsudoersに入ってるってどゆことよ。
430:デフォルトの名無しさん
14/05/14 07:50:49.18 gY3lBZ4/
GUI があって sudoers 弄ってる認識ないとか。
431:デフォルトの名無しさん
14/05/14 07:51:39.21 HVjR+QBF
>>429
> 普通にrootでapt-getして
いちいち root でログインしてるのか?
432:デフォルトの名無しさん
14/05/14 08:16:46.96 1MSvyiHJ
脱線はそのくらいで
433:デフォルトの名無しさん
14/05/14 10:07:15.20 LFlUnuUg
>>431
権限あればいいんだから方法はなんでもいい
須藤でも流宇屠でもなんでもいい
434:デフォルトの名無しさん
14/05/14 10:21:07.79 U/CskQfB
そもそもlinux公式のパッケージなんて古いのに誰が使うんだよ
俺が使ってるのディストリのは1.7だぞ
OpenSSLの件もあるのに今1.9.1以下を使ってる奴は世界の地雷
435:デフォルトの名無しさん
14/05/14 10:50:10.78 tkkbE9ax
権限設定が大雑把すぎる
rootにならないと何もできない
436:デフォルトの名無しさん
14/05/14 11:53:53.82 HVjR+QBF
>>433
>>429 が sudoers どうのこうの言ってるから聞いただけ。
関係無いけど、須藤とか流宇屠とか面白いと思って書いてるの?
437:デフォルトの名無しさん
14/05/14 13:19:05.91 LFlUnuUg
>>436
面白いと思ってるならいちいち確認しにくるなよ
もっと自分の感性に自信持てや
438:デフォルトの名無しさん
14/05/14 14:37:13.29 RXztcnfz
>>427
>なんでもsudo使ってたら意味ないって。
たしかにsudoインフレ気味のきらいはある。
お前もう別にrootでログインしているのと変わらんのと違うか、みたいな。
439:デフォルトの名無しさん
14/05/14 15:57:03.71 z8cZm/fT
スクリプトの中でsudo書いたら負け
440:デフォルトの名無しさん
14/05/14 18:43:36.40 HVjR+QBF
>>437
ひょっとして皮肉って、わからなかったのか? (w
441:デフォルトの名無しさん
14/05/14 19:12:13.53 56gZpWss
どうでもいい
442:デフォルトの名無しさん
14/05/14 19:45:20.61 LYwl2FB3
相談させてください。
開発ブランチをmasterへマージしたいのですが、
masterブランチがかなり進んでしまい、開発ブランチとの共通コミットがかなり前の物となってしまいました・・・
このままマージすると履歴が見づらいので、masterでリベースをしたいのですが、
開発ブランチにも、沢山のマージコミットがあり、そのままリベースするとマージコミットが吹き飛んで困ります。
マージコミットを残したままで、masterとリベースする方法というのはあるでしょうか?
もし、そのような方法がない場合・・・
どのようにすれば、少しでも見やすい履歴として残してマージする事ができるのでしょうか・・・
よろしくお願いします
443:デフォルトの名無しさん
14/05/14 20:19:17.04 NgeMMujl
マージじゃあかんのか?
444:デフォルトの名無しさん
14/05/14 20:37:04.99 W0xDTkwU
--preserve-merges で ggrks
445:デフォルトの名無しさん
14/05/14 20:38:55.41 W0xDTkwU
だけど俺もマージをおすすめする
446:デフォルトの名無しさん
14/05/14 20:59:04.67 LYwl2FB3
>>443-445
お答えありがとうございます
まさしく、--preserve-merges この機能を求めていました!
本当に助かりました
普通にマージでも、運用はまったく問題ありません。
しかし、あまりに前のコミットからブランチが切れている物なので、
グラフ上でその他のマージしたコミットなどを、またぎまくりで見るのた大変な状態でした・・・
本当に感謝です
447:デフォルトの名無しさん
14/05/14 21:21:30.74 Tc6rr+/g
男なら履歴をいじってんじゃねえよ!
448:デフォルトの名無しさん
14/05/14 22:35:14.87 XlAO72qf
URLリンク(git-scm.com)
ここにTortoiseGitないのは何で?
449:デフォルトの名無しさん
14/05/14 23:23:23.76 LFlUnuUg
>>428
> 一般ユーザの権限増やしちゃうほうが余程ダメだろ
意味不明。
今の話はsudo権限で書き込める人に対して
sudo使うな一般ユーザー権限でコマンド使えるようにしろって話だから。
誰もsudo権限ない人に権限与えろなんて言ってねーよw
> …でも、そこでそのファイルの所有者を自分に戻す方法や
> どうすれば一般ユーザのファイルとして作れるのかを考えず調べずに
> 「一般ユーザの権限を増やしちゃえ」
> ってやるのは思考停止だと思うよ、root常用と発想が変わらない
そんな話してないけどねw
sudo使って権限を変える行為のがroot常用と同じだから
sudoも使わずに一般ユーザーでやれるようにしろと。
ユーザに必要な権限を与えるのは、必要で許されるならば何の問題もなく、
権限を与えなければ、sudo使うしか無いわけでそれがroot使ってるのと変わらない。
っていうか、sudo常用=root常用ってわかってる?
450:デフォルトの名無しさん
14/05/14 23:36:27.18 ExP2CQtU
a.phpを修正(50行)した後にb.php(500行)を修正しました
このときgit add a.php; git commit -m "a.phpを修正"したあとにgit checkout -fしたらどうなりますか?
451:デフォルトの名無しさん
14/05/14 23:36:39.56 EH48jFeA
クソニートの戯言はチラシの裏にでも書いてくださいね
452:デフォルトの名無しさん
14/05/14 23:38:18.31 EH48jFeA
>>449宛て
453:デフォルトの名無しさん
14/05/14 23:45:05.68 LFlUnuUg
煽って何がしたいの?w
454:デフォルトの名無しさん
14/05/14 23:48:28.71 PSOih+2g
今週の中学生日記はここですか
455:デフォルトの名無しさん
14/05/15 00:44:28.26 YRo5/B9y
>>449
「どこからがどの権限なのか」を意識しづらいのがroot常用の一番の問題かと。
まあそもそも、もうスレチなんだが。
456:デフォルトの名無しさん
14/05/15 01:08:22.07 p6ZJAeXV
>>449
> っていうか、sudo常用=root常用ってわかってる?
こういう奴って /etc/sudoers の ALL = (ALL) ALL をおまじないだと思ってるんだろうな...
能力のないものには、いい道具与えても無駄なのがよくわかるな (w
457:デフォルトの名無しさん
14/05/15 01:23:15.29 FUoGOy6E
>>456
本当にsudo常用がroot常用と変わらないの分からないの?
sudo touch a ってやったら、root:rootでファイル作られるよね?
sudoはなるべくrootにならずに、root権限(ユーザー未指定の場合)で
実行するものであって、結局のところrootで実行しているのと同じ。
sudoを常用したら意味がないんだけど。
なんでもかんでもsudo使って"root権限で実行"するのではなく
適切な権限を指定しなさいと言ってる。
458:デフォルトの名無しさん
14/05/15 01:45:41.47 p6ZJAeXV
>>457
> sudo touch a ってやったら、root:rootでファイル作られるよね?
お前俺のレスの意味わかってないだろ (w
touch でファイル作られるのが嫌なら禁止すればいいだけ
ALL = (ALL) ALL って書いといて、root 常用と同じとか、バカすぎ
459:デフォルトの名無しさん
14/05/15 02:11:34.74 t+uv2X5h
「俺のレス」
くさかべ先生が怒りそう
460:デフォルトの名無しさん
14/05/15 02:39:04.28 mVM4WfmV
そういうことにしたいのでつね
461:デフォルトの名無しさん
14/05/15 03:28:24.48 FUoGOy6E
>>458
お前根本的に間違ってるじゃんか。
/usr/local/srcへの書き込みだぞ。
実行コマンドを制限してどうする。
こういう時はグループで書き込み権限を与えるんだよ。
sudo使うにしても結局グループ使うんだから、
sudoの前にまずグループだろうが。
462:デフォルトの名無しさん
14/05/15 07:07:31.46 p6ZJAeXV
>>461
> /usr/local/srcへの書き込みだぞ。
俺はそんな話してない。
俺は、
> っていうか、sudo常用=root常用ってわかってる?
がおかしいって言ってるだけ。
ちなみに sudo はグループでもユーザーでも指定して制御できるから
> sudo使うにしても結局グループ使うんだから、
は、根本的に間違ってる。
なので、
> お前根本的に間違ってるじゃんか。
これはお返ししておくよ (w