4 :
デフォルトの名無しさん:2011/07/12(火) 17:29:28.17
1おつ
まんこまんこです。夏中には何かパッチ送ってみます。
リモート系のコマンドとブランチとheadとかがよくわかんない
みなさん CHANGELOG どうやって書いてますか
書かないわけにもいかないし…
ChangeLog は書式がいろいろあるからなあ
ぶっちゃけ気に入ったのをどっかから持ってきてバージョンごとにコピペして手作業で追記して使うというのがメジャーかと思う
git log --pretty=%s とかで git のログはまとまるので、適当にコピペして貼ったり切ったり
Git流の開発スタイルだと ChangeLog なんて綴ってられんよな?
連投スマンが、 ChangeLog(.txt) のコンフリクトを解消するのって本質的な作業じゃないよな。
>>9 コミットログとチェンジログは役割が違う
チェンジログはまとめ広報に近い
「今回のバージョンの変更点はgitのコミットログ見てくださいね^^v」というのは現状極めて不親切だ
…いや、まあ、不親切でもいいんだけど、不親切だという謗りは免れないだろう
コミットごとにコミットについての追加変更著者情報が書かれているのがコミットログで、
バージョンパッケージングごとにバージョン間の動作の変更点と注意が書かれているのがチェンジログだと思う
実際にいつ誰がツリーにコミットしてソース上の変更行がどこかなんてのはチェンジログには不要というか余分
12 :
デフォルトの名無しさん:2011/07/13(水) 13:29:02.57
redmineのチケットと連動させれば?
>>11 思うのは勝手だが一般的な流儀とはかけ離れてるなw
このへん、普段どんなプロジェクト追っ掛けてるかによってもけっこう違う気はする
ブランチと pull リクエストの散発的な日付のマージが連打してる git のコミットログから
前バージョンとの変更点を見つけるのは、ものによってはかなりめどい
ソース上どんな変更があったのかは自明だが、それが意味するのはナンデスカみたいな
>>11 > バージョンパッケージングごとにバージョン間の動作の変更点と注意が書かれているのがチェンジログだと思う
オレはそれはリリースノートだと思うなぁ
なんというか、「ここで変数 i に10を代入」的な1行コミットログを書く人がいると、なんかとてもめんどくさくなる感じ
ひとつひとつのコミットがきちんと有機的に構成されて説明が充分であれば、コミットログだけでなんとかなるんじゃないかと
でも普通はそんなコミットなんてしないよね
めんどくさいし、整合性も取りづらいというかむしろ全く取れない
「update README」 ではなく、README に何を書いたかきちんとコミットログに書いてる?
「merge branch xxxx」ではなく、そのブランチのマージによってソフトウェアに何が起こるかきちんと説明書いてる?
ひと山いくらで動いてる人ですら、書いているというのに…
あんま書いてない例のほうが多い気がす
せめて何がどう直ったのかくらいは書いて欲しい
GNU だと ChangeLog は開発者用で commit log message そのもの、
利用者向けには NEWS を用意することになってるね。
git だと GNU的な ChangeLog はいらんような気がする
883 デフォルトの名無しさん [sage] 2011/07/18(月) 21:51:31.64 ID: Be:
gitって、mq相当のことはひたすらローカルリポジトリ内でcommitを整形していく感じなんだな。
ローカルとは言えcommitしたのをいじくり回すってのは結構違和感がある。
ってなことをgitのスレに書くといろいろありそうなのでここに書く。
884 デフォルトの名無しさん [sage] 2011/07/18(月) 23:22:29.36 ID: Be:
同種ツールの一長一短、ポリシーの違いだからなぁ
使ったことないけどbazaarも同じようなことしようとするとmercurialとまったく同じにはならんのだろう
>>5 言っとくけど git.vger の Signed-off-by は実名限定だからな。
そのふざけたハンドルを2chで名乗ってるのが誰なのかバレるぜ。
よく知らないけど mq ってパッチ管理のはずだから
同じことをしたいのなら StGIT とか Guilt になるんじゃないかな
オレの感覚だと git でできるコミット整理ができないから
パッチ管理の mq でお茶を濁している感じ
何か意図するところがあってそういう設計にしているってことなのかもしれないけど
>>22 2chで実名でカキコするワケねーだろ。
Junioに向かってまんこまんこを名乗るワケねーだろ。
1まんこタグに関する修正のコミットを実名つきでしたら、
このスレに1まんこ1まんこと書き込んでた人と紐づけされるという話だろう
…まあ、1まんこはただの1まんこで別に他の意味もないし、
1まんこという表現を使う人は(2chみたいなところでは)珍しくもないが
ちなみに10まんこタグ(ML上では 10k of refs)は遠い将来の課題にして、
さしあたってはスマートタグみたいなものを実現してみようと思う。
git-svn/.rev_map とか notes の情報を lightweight tag と同等に扱えるようにする感じ。
Git はともかく他のオプソも本業ではないので、進捗を急かさないでね。
まんこまんこ
ところで git-notes って活用されてる?
素で位取り間違えたが10kじゃなく100k
日本名でパッチ投げるのはそう居ないし、内容見たらバレバレだろw
職場でまんこさん呼ばわりされる日も近いw
質問させてください。
windows7 32bitにturtoisGitをインストールしたあと
右クリックのgit cloneを押すと
git have not installed が出てしまいます。
これはどのようにすれば解決するか教えてください。
msysgitなどをインス子しろとリリースノートに書いてなかった?
まんこまんこ
32 :
デフォルトの名無しさん:2011/07/19(火) 20:07:36.09
さらしあげ
Git-1.7.6-preview20110708.exe
は入っているのですが、git have not installedが出ます。
エラーの原因がわかりません。アドバイスをお願いいたします。
34 :
デフォルトの名無しさん:2011/07/19(火) 20:28:31.77
git.exe のpathを設定する場所が Settings... にない?
まんこまんこ自らあげ
ありがとうございます!
夕方から迷っていましたがやっと使えるようになりました!
まんこ紳士さん本当にありがとうございます!
まだ若いんだから中年のおっさんみたいなマネはやめろよ
37 :
デフォルトの名無しさん:2011/07/19(火) 23:05:37.81
まんこはホントに大好きだが君たちGitについて語ってくれ
Gitそのものをほげるのはもあべたー
俺だってまんこ大好きだしここはGitスレなんだからもちろん
Gitについて語りたいけど、無駄にまんこ連呼する奴と絡もうとは
思わないな。そういうヤツの相場はまあたいていアレだよ。。。
Macな知り合いにTower勧めようとしたんだけど、これって有償なのか。
もしかしてAll in Oneなパッケージなわけじゃなくて、ただのフロントエンド?
自分が使ってもないものを他人に勧めるのか・・・?
いや、自分WINなんですけど、Macだと簡単に操作できるアプリあったよな…
という記憶から引っ張り出してきまして。
>自分が使ってもないものを他人に勧めるのか・・・?
まんこのこと?
管卵
44 :
デフォルトの名無しさん:2011/07/26(火) 00:13:55.69
まんこを使わない奴らによってちんぽスレになりそうな悪寒
45 :
ななし。:2011/07/27(水) 15:49:03.17
カ オ ス ラ ウ ン ジ ゆ る せ な ぁ い ー
git svnで作ったリポジトリから簡単にsubversion向けのパッチを作れないですかね
exportしたzipファイルをsvnの作業コピーに上書きするのは面倒です
47 :
デフォルトの名無しさん:2011/07/28(木) 23:26:22.56
俺が参加してるsvnプロジェクトだと git diff のパッチ
それどころか git-format-patch ですら歓迎してくれるぞ。
(patch -p1 -N で食えることを皆知ってるからね)
つか SVN 専だったとしても patch -p0 じゃないの?
git で cvs udpate -D 2011-03-11 みたいなことをするには
どのようにすればよいですか?
svnコマンドもだいぶ忘れまくってるけど、cvsはもう完全に無理だな
何にも思い出せない
SVN向けのパッチ、なんてあるんだっけ?専用のフォーマット?
51 :
46:2011/07/29(金) 20:04:29.30
52 :
46:2011/07/29(金) 20:07:52.82
エラーメッセージはこんな漢字でした
http://mojodna.net/2009/02/24/my-work-git-workflow.html \git-svn-diff\git-svn-diff.sh: line 14: conditional b
inary operator expected
\git-svn-diff\git-svn-diff.sh: line 14: syntax error
near `=~'
t\git-svn-diff\git-svn-diff.sh: line 14: `if [[ "$TRAC
KING_BRANCH" =~ URL.* ]]'
http://abombss.com/blog/2007/12/10/creating-patches-for-subversion-from-git/ Traceback (most recent call last):
File "\git-svn-utils/git-svn-diff", line 24, in <mo
dule>
svn_rev = get_output(['git-svn', 'find-rev', treeish]).read().strip()
File "\git-svn-utils/git-svn-diff", line 6, in get_
output
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
File "c:\Python27\lib\subprocess.py", line 672, in __init__
errread, errwrite)
File "c:\Python27\lib\subprocess.py", line 882, in _execute_child
startupinfo)
WindowsError: [Error 2] 指定されたファイルが見つかりません。
Git GUIでファイルを右クリック→git historyで当該ファイルのみに絞った変更履歴が出せて便利なのですが、
これに相当する操作をコマンドラインのみで行えないでしょうか?
ブランチにコメントを付けるような機能ってないでしょうか?
ブランチ名だけだと何のためのブランチか忘れてしまうことがあって…
なんで、そんなに大量にブランチ作っているわけ?
作業したらマージしないの?
個人でのブランチは、plainテキストか、wikiで管理してればいいと
思うけど。 担当者名/hogehoge-feature とか fuga-fixとか他人から
見えるのは、変数名同様にちゃんと考えているのだろうか。
>>53 gitgui使わないから分かんないんだけど、普通に git log パス じゃダメなん?
57 :
デフォルトの名無しさん:2011/07/31(日) 07:04:46.54
>>55 git merge --no-ff とやって、担当者名/hogehoge-feature がログに残ることを義務付けている宗派がある
58 :
53:2011/07/31(日) 11:51:18.53
>>56 >
>>53 >gitgui使わないから分かんないんだけど、普通に git log パス じゃダメなん?
変更履歴という書き方がわかりずらかったですね、すいません
当該ファイルのみのコミットログも見れるに越したことはないのですが、
一番見たいのは当該ファイルのみのリビジョン間のdiffなんです
??
60 :
デフォルトの名無しさん:2011/07/31(日) 16:43:03.52
>>55 趣味で組んでるものなので、wiki使うほど大げさではないし、
下手すりゃ数か月後に続きを、みたいなことがあるので
ブランチ名見返してもよく思い出せないことが…
ブランチ名でログを表示させればいいんじゃないのかな?
そのブランチでやってる作業についてのログを読めば、
なんのブランチか思い出すんでは。
コミットログをちゃんと書いてれば
ブランチのコメントとか言い出さないと思うんだが。。。
素直にSourceForge使うことにしました…
SVNからGitへのリポジトリ移行を考えています。
git-svn clone でSVNのリポジトリをとってくると、SVN上のbranch/tagに代わる
git上のbranchが大量にできるのですが、
このbranchを全てpushする方法というのはあるのでしょうか?
ある
>>70 試してみたらgit svn cloneしてるだけでした…git2svnの説明と共にあったのでてっきりbrach/tagも同期してくれるものかと。
使い始め初心者です。
git add .とgit commitって、どっちも現在の状態を記録する的なイメージで、漠然としか理解していないのですが、
最終的にはcommitしないとgitとしてはセーブされないのですよね?
これらのコマンドが何をやってるのかをわかりやすく教えていただけないでしょうか?
add は新しいファイルをgitに登録する
commit は変更を記録する
stageでググるとaddが何してるかわかるかな
add .を連発するのは非推奨なのですね。
76 :
デフォルトの名無しさん:2011/08/13(土) 21:28:55.22
1ファイルであってもadd -pで変更箇所ごとにログを付けてはコミット。
HEADに^をつけると1つ前のバージョン、HEAD^^は二つ前のバージョンって理解でよろしいでしょうか。
>>77 HEAD^は1つめの親
HEAD^^は1つめの親の1つめの親
マージコミットの場合は複数の親があるので、2つめの親を指定するには
HEAD^2のようにする。
親ってのが何を指すのかが分からないのですが、
1つ前の親というのは、HEADの一つ前のコミットを指すのですか?
それとも、分かれたブランチの元にあるコミットを指すのですか。
GitHubに登録したのはいいけれど、インターフェイスが英語だ。
日本語表記にできるみたいなのでしたいのだがどうすればいいですか?
>>72 git commitといっても今の変更内容を全ていっぺんにコミットしたくない場合もある。
ある目的をもってコード書いてるときに別のちょっとしたバグを見つけて直してしまったり。
あとから問題が発生してこのコミットをとりやめなきゃならなくなったときに後者のバグも生き返ってしまう。
そんなときのために、まずgit addでコミット予定の変更を選択して個別にコミットするよう2段階の構成になってる。
詳しくはステージングでググれ。
良いコミットを。
>>79 git log --all --graph
して見えるグラフのコミットとコミットの間の線が親子関係。
83 :
デフォルトの名無しさん:2011/08/14(日) 07:56:56.50
>>80 日本語UIはこないだ廃止になった。超がんがれ。
>>79 とりあえず
>>1のProGitとGit入門読んだらどうか。
>>83 あれなんで廃止になったんだろうね。
最近はGit本家もその辺前向きに進んでるのに。
>>82 1つめの親、2つめの親、というのはどうやって決まるんでしょうか
いつの間にかTortoiseGitの1.7.2.0が出てた
試してみよう
git reset --hard HEAD^すると、
More?
More?
fatal: ambiguous argument 'HEAD
': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
となるエラーは何が悪いのでしょうか?
あと、Win版のPortableGit-1.7.6-preview20110709は、git-bashを起動しても、
bash:tset:command not found
と出て動作が止まってしまうんだが、これって俺だけですか?
89 :
デフォルトの名無しさん:2011/08/16(火) 19:32:18.39
夏の勘違いの悪寒
HEAD^ の ^ がシェルで何かに解釈されてるんじゃないの?
やるなら git reset --hard 'HEAD^' とか。
> 88
古い UNIX マシンからそのままコピーしてきた .bashrc あたりが残ってるとか。
.bashrc あたりで test と tset を間違えてるとか。
>>87 ^で複数行入力はcmd.exeの仕様。
""で囲めば行けるはず。
>>90本当だ。.bashrc消したらいけました。
>>90>>91 確かにコマンドプロンプトが解釈してました。
コマンドプロンプトはシングルクォートも通らなかったりして、使うのが鬱陶しいですね。
Win版のgit-bashで起動時のカレントディレクトリを変更するには、どこをどういじればいいでしょうか?
付属のGit Bash.vbsをいじって初期cdを変更しておきたいのですが。
gitをwebdavでってことで、bareを設置してなんとか使えてはいます。
pushできるユーザーにはwebdavへの権限を与えるわけですが、
これって、pushできるユーザーはwebdavに直接アクセスし、
bareのファイルを生で触ってリポジトリの破壊等ができてしまうようです。
ちょっとまずくないですか?
コミッターなんだから破壊権限までありますよ。
気をつけてつかいましょう、っていう思想なのでしょうか……。
ユーザは全員、リポジトリ全体のコピーを丸ごと clone して持ってるのだから、
破壊されても誰かのリポジトリからコピーし戻せばいいだけじゃね
97 :
95:2011/08/20(土) 13:06:07.35
>>96 davでの公開って、共有スペースにbareを置いてるだけなので
あまり期待できないっぽいですね。
pushを途中で切断したり、耐久テストしてたらやっぱり壊れました。
他にはdavのPUTできる場所を限定して、DELETEを禁止とかで
なんとか運用できないものかと考えてます。
Gitの仕組み上、pushを途中で切断して壊れるってのは無いと思うけどなー
99 :
95:2011/08/20(土) 16:15:35.83
>>98 davがLOCKしたままになってたようです。
timeoutを設定しました。
次期OSS標準はそろそろ決まって欲しい
今の勢力って git>hg>bzr なかんじ?
GoogleCodeがGit受け入れて、ほぼ趨勢は決したんじゃないかな
102 :
デフォルトの名無しさん:2011/08/26(金) 11:02:29.54
復活?
test
gitのややこしいコマンド体系、というか破綻してるコマンド体系を
なんとかしようという動きはないのかな。
慣れると気にならないからなぁ
慣れると、つーか、開発のスタイルをgitに合わせないといけなくて、
そのスタイルでやるとすんなり来る感じ。
gitのモデルとする開発スタイルは従来のバージョン管理システムとはわりと違う感じ。
そういう問題じゃなくてだなぁ、他の分散管理に比べてもコマンド体系がおかしいんだよ
信者もいるし、gitの気持ち悪さは暗黙の了解だけとも
TortoiseGit
質問です
ファイアウォールのためネットワーク越しにgit cloneできない環境で
これと同等のことをしたいのですが、
.gitディレクトリ以下を丸ごと相手に渡せば大丈夫ですか?
また、この方法でまずい点はありませんか?
>>111 それで全データ渡せるけど、無駄なモノもけっこう含まれちゃうかも。
渡す前にgit gcしとけば多少は無駄が省けると思う。
113 :
111:2011/08/27(土) 20:48:04.37
Gitのコマンド面倒くさ
GUI使えないのかな
TortoiseGit
>>107 多いのは信者じゃなくてアンチだろw
コマンドの数が多いとか難癖つけてさ。
おおかたウインドウズ大好きでC++信者なんだろうが、
頑張ってDISってる姿は滑稽だよ。
まさに信者だな
>>111 そういう時はgit bundle使うんじゃなかったっけ
preview20110708ベースのUTF-8ファイル名対応版 Gitで
日本語ファイルやディレクトリのaddやcommitはできるんだが、
日本語ディレクトリを含むパスでのinitができないのは俺だけ?
AAA 中のファイル:
*aaa.c *bbb.c ccc.c *Makefile a.out
(*は、commitされてるファイルだとして)
git clone AAA BBB で複製した場合
BBB 中のファイル:
*aaa.c *bbb.c *Makefile
cp AAA BBB -r で複製した場合
BBB 中のファイル
*aaa.c *bbb.c ccc.c *Makefile a.out
cp だと、コミット忘れしてる ccc.c も渡せて便利w a.outのようなゴミも渡すけど。
121 :
111:2011/08/28(日) 08:40:26.10
>>118 man読みました
まさにこれがやりたかったんです
ありがとうございます
>>119の書き込み見てUTF-8対応版の最新版が来てたのを知った
d
>>120 いやコミットし忘れてるんならまずコミットしろよw
gitの管理を完全にやめるとき、あるいはリセットするとき、
.gitディレクトリを削除すればそれで完全にリセットできますか?
>>124 管理をやめるなら.gitを消せばいい。
リセットというのがどういう動作を指すのかわからんのだが、
仮にバージョン管理を始める前の状態に戻すという意味なら、
.gitを消すだけでは元に戻せない。
ありがとうございます。管理をやめるだけで、別にファイルは現状のままでいいので、
それで解決します。
error: SSL certificate problem, verify that the CA cert is OK. Details:!!!
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing <URL>
fatal: HTTP request failed
exit 128 "<URL>"
と出て、cloneできないんですけど、どうすればいいでしょうか?
エスパーすると、githubにhttpsでアクセスしてる?
>>129 あ。してます。もしかしてGit Read-Onlyで出てくるアドレスの方を入力するべきなのか。
エスパーどころかエラー内容全部書いてるだろww
証明書が確認できないんだとさ、
取得できないならURLと権限を確認しろ
不一致か期限切れなら-fしてみろ
ついでに後者なら鯖管に報告しろ
エスパーしたのはgithubの部分か、
すまん早とちりだ
git apply が当たらない
パッチ読んでもファイル読んでも絶対に適用できる自信がある小さなコミット由来なんだが、でも git apply -v でエラーが出る
…まあ、どうせどっかで間違えてるんだろうけど、ぜんぜん見えねえ
昼寝でもするか…
"main"と"test"というブランチがあるとして、
testで作業しててcommitやmergeしたら、じつはmainにいたので(略
みたいな事態を避けるために、
特定のブランチに対しては、特に明示しない限りcommitなどをさせない、
ようするに特定のブランチを保護しとくみたいな方法ってありますか?
まだgit自体使い始めでよくわかってないので、ヘンなこと書いてるかもしれませんが...
コミットをよそに晒してない限り reset も rebase もし放題だ。精一杯失敗しまくれ。
Gitではコミットはなかなか消えん。しばらくは git reflog がトモダチだな。
138 :
136:2011/09/06(火) 20:37:50.52
>>137 reflog でググりました
安心して失敗しまくることにします
俺はgit-completionでPS1書き換えてブランチ名出すようにしてるな。
pre-commitフックで拒否するとか。自分はマスターブランチへのコミットは全部弾いてる。
GitHubからのNotificationsが、メールアドレスにも転送されてくるのですが、これを停止する方法はありませんか?
あります。
教えていただきたいのですが。
設定画面を見れば一目瞭然だと思うのですが。
ああ。Notification Centerでしたか。
最近のCygwinはUTF-8だから日本語も問題が起きないんだよね?
てことはmsysがUTF-8になったらmsysGitでも日本語をUTF-8で使えるようになるの?
理屈はそうだが、msysはUTF-8にならないだろ。
VC++のランタイムをそのまま使うのがmingw、自前でPOSIX層を用意してるのがCygwinなんだから
148 :
デフォルトの名無しさん:2011/09/13(火) 02:53:48.52
gitにはclearcaseでいうmerge arrowという概念はある?
149 :
146:2011/09/13(火) 09:56:30.65
>>147 なるほど。そこらの仕組みがよくわかってなくて
Cygwinのパッケージが少ないのがmsys、ぐらいのイメージだった。
そうするとやっぱり日本語は望み薄だな…
システムロケール変更すりゃいいじゃん
今日git checkout .を誤爆して数時間の作業がパーになったんだけど、何とかして修復する方法はない?
>>151 そのファイルを一度もadd してなかったらどうしようもないな。
checkout もclean みたいに-f 必要だね…
>>151 -f がついてなかったら、未コミットファイルとの競合でチェックアウトは失敗すると思ったんだが…
checkout -f で上書きしちまったんだったら Git レベルでは修復の方法はない、ハズ。
まめに stash するんだなw そうすればオブジェクトは残る。
リポジトリに残っていないなら
復元ツールを使うとか
なんかずっとメンテ中になってるな、ダウンロードできん
kernel.orgはいつ復活するのかのぅ
いろんな所で影響出てる
まだ乗っ取られたままだったのか。
乗っとられたままというか、乗っとられていない状態に戻すのに時間かかってるのだろ
荒らされる前に戻すのが大変てことか
子供はじっとしてなさい
今までずっとCygwinでgit使ってきて、今日初めてLinux上でgit使ってみたら速すぎて吹きました。
Cygwin上での遅さ(リーナスが発狂するレベル)を改善するテクニックみたいなのがあれば教えてください。
Cygwinはファイル操作が致命的に遅いからねえ。
どうしようもないんじゃないのかな。
ボトルネックになる場所を特定してその部分だけでもcygwinをバイパスすればマシになるかもね
莫大なファイルを読み書きするところがネックだと思う
でもそこってメイン処理なんじゃ…
>>166 確かにhgの方がWindowsフレンドリーみたいですね…
Cygwinって、まだサポートされているのかよ?
穴だらけなんじゃね?
WindowsのForkがクソ重いんだっけ
forkよりstatの遅さの方が影響してるんでないかなぁ
ああ、そういえばgccもcolinux上で動かした方がCygwin/MSYSよか速かったなあ。
そっちでgit試してみます。
cygwinだとgit遅いのかー
というよりcygwinで開発とかすげーな
遅いと言ってもネイティブのSVNよりは早いと思った
Cygwin上で開発してるわけではないです。
Windows上で開発してるものをgitでバージョン管理している、というだけで。
(gccの件は過去の経験上、というだけで)
>>174 確かにそうですね。branchやcommitは即座に完了しますし。
ただgit使ってるとstashやらrebaseやら、
svnでは(機能自体無いので)使わなかった便利機能を使い出すと…という感じですね。
libgit2がWin32ネイティブ対応していてパスをUTF-8で扱うようになったから
いずれはまともに使えるようになるかもしれない
なに?なに?今度は期待していいの!?
現状はかなりカオス気味
VS2008以前でビルド通らないままだったり、
DLLは__stdcallなのにヘッダが__cdeclでリンク不能だったり
なんかtortoisegitである日から
fatal: bad config value for 'core.hidedotfiles' in ./config
ってメッセージが出てpushに失敗するようになった
なんにもしてないのに。
おまえ以外の誰かが何かしたんだろ
この部屋は俺以外いないはずだけど
hideDotFilesって何のパラメータ受け入れてくれるんだよ
今日1.7.6.4をソースからビルドしたばっかなのに・・・
何が新しくなったの?
あ…ありのまま 今 起こった事を話すぜ!
『newlibのcvsリポジトリをgit cvsimportしたら
1リビジョンだけで7時間もかかったあげくファイルが全部壊れてた』
な… 何を言ってるのか わからねーと思うが(ry
-rwxr-xr-x 1 user user 41349014 Oct 2 21:16 ChangeLog
-rw-r--r-- 1 user user 38711472 Oct 2 21:17 Makefile.am
-rw-r--r-- 1 user user 38711472 Oct 2 21:17 Makefile.in
-rw-r--r-- 1 user user 38711472 Oct 2 21:17 NEWS
-rw-r--r-- 1 user user 38711472 Oct 2 21:17 README
-rw-r--r-- 1 user user 38711472 Oct 2 21:17 acinclude.m4
-rw-r--r-- 1 user user 38711472 Oct 2 21:17 aclocal.m4
-rw-r--r-- 1 user user 38711472 Oct 2 21:17 configure
-rw-r--r-- 1 user user 38711472 Oct 2 21:17 configure.host
-rw-r--r-- 1 user user 38711472 Oct 2 21:17 configure.in
何故全ファイルの中身が連結されてるの・・・
よく七時間も粘ったね
野良構築された newlib.git 探してみては?
>>186 調べるとあり得ないレベルで遅いって話は聞いてたからでかいリポジトリだしそんなもんだと思ってた
ところが40MB*1500ファイル=60GBも転送していたという(ローカルのcvsミラーだが)
>>187 探したけどリリースのtarballから作ったリポジトリしか見つからなかったんだ
自分の環境に合わせて修正するのが基本のソースだから簡単に見つかると思ったんだけど
git cvsimport はインポート後の履歴が変だったことがあったから使ってないな
代わりに cvs2git 使ってる。インクリメンタルインポートできないのが難点だが
対応したと聞いて昼過ぎに登録してきたww
GitHub と比較してどうなの?
最近 Github が人気になりすぎたのか重くてしょうがない。
Buildbot のソースに使うのもはばかられてきた。
自分の鯖か知人の鯖でgitosisにするのが吉
gitosisって2年くらい前で更新止まってなかったか
ほぼ上位互換で更新も続いてるgitoliteのほうがいいだろ
gitolite なんてファイルサーバにレポジトリを直置きするのとあんま変わんないじゃん
Gitorious のほうがいいって
>>190 クエスチョンなんか付けてるからrumorかとおもた
198 :
190:2011/10/05(水) 21:49:32.90
>>197 ChromeのCreate Link拡張使ったらそうなった。
書きこむ前はついていなかったのに、-が?に変化した
ギトギトしたスレだなぁ
ほんとだ。gitosisって相当古いのね。暇を見つけてGitoriousに移行します。
Gitorious のインストールは手間がかかるから
丸一日くらい費やされると思っといたほうがいい
202 :
デフォルトの名無しさん:2011/10/07(金) 20:11:12.58
ディレクトリ単位でプロジェクトを分けたい(一つのリポジトリに複数プロジェクトをいれたい)
のですが、そういうことはしない方がいいですか?
いいです
AというプロジェクトとBというプロジェクトとCというプロジェクトに関連性を持たせたいなあと考えたことはある
現行では素直にディレクトリ分ける以外に方法がないわけだが
そうですか
ありがとうございました
submodule?
すみません。とても基本的なことですが、
bashにて、git blame を実行すると、末尾に(END)が出てきて入力を受け付けず
抜けられない状態に陥ります。
ここから抜ける方法を教えてください。
208 :
デフォルトの名無しさん:2011/10/08(土) 13:23:25.75
PAGERがlessなのかね?
q
revertは変更をアンドゥしているのではなく、中身は以前の状態にしているけど履歴的にはさらに新しい
変更をした状態にするってことでしょうか?
>>209 だいたい合ってるけど、「中身を以前の状態に」はしない。
逆方向のパッチを当てるだけ。なのでrevertで指定した
コミットとHEADの間にコミットがある場合は「元に」は
戻らない。
>>210 結果的に同じ tree を指すことになるのが常。
>>211 半年前のコミットをrevertしたと考えてみよう
git push した先のサーバー内の、
ログやデータを一部削除するためのgitコマンドを教えろ
コピペしてすぐ使えるような具体的なコマンドで説明よろ
215 :
デフォルトの名無しさん:2011/10/09(日) 02:17:10.09
>>215 サンクス!
さっそくパクらせてもらうわ!ザマー!!!!wwwwww
おやすみ
おまわりさんこいつです!
Gitで管理しているディレクトリを動かしても問題は起きませんか?
たとえばhome/mysite/以下のディレクトリを管理している状態で(home/mysite/.git/ディレクトリがある状態で)
mysite/以下をdoc/ディレクトリに移動させたり、
mysite/ディレクトリそのものをmysite8/にリネームしたりしても。
大丈夫
sudo を入れないとこが良心的? まあ sudoer のわけないか。
その前にホスト名
git cloneをしたところ、以下のエラーが出ました。
fatal: internal error: work tree has already been vital
Current worktree: /home/mysite2
New worktree: /home/mysite2/test/
このエラーは何が原因でどうすれば回避できますか?
間違い。以下でした。
fatal: internal error: work tree has already been set
Current worktree: /home/mysite2
New worktree: /home/mysite2/test/
すでにカレントディレクトリよりも上のディレクトリがgitの管理下になっているときには
下層のディレクトリをgit initすることはできないのですが、これはどうしてもそうなのでしょうか?
226 :
デフォルトの名無しさん:2011/10/09(日) 17:37:47.22
俺はホームディレクトリの .git でドットファイルを管理しつつ、
ホームディレクトリのなかにもいろいろ独立したgitリポジトリがあるんだが。
cvsとsvnは使ったことがあってgitは使ったこと無いんですが
gitに乗り換えた方が便利なんですかね
svnの次世代バージョンみたいな認識で合ってるんですかね
svnで何も困っていないなら無理に乗りかえなくてもいいと思う
とりあえず入門gitという本で一通り勉強してみたが
いまいちgitの良さが分かんないな
ステージという概念も単に冗長で面倒くさいだけとしか思えないし
分散バージョン管理システムと言いつつも結局複数人で開発するときは
リモートリポジトリ?を作って集中型のバージョン管理するわけだよね
リーナスという人の自己顕示欲を満たすためだけに作られた
ソフトウェアなんじゃないのと言ったら言いすぎだろうか
リポジトリ1本で全く困らないような開発体制&思考体系なら集中型で過不足無いだろうし、
GUIから使うなら.svnが散らばっててもさほど困らないしステージングも冗長かもしれない。
GitHubを使えるのが大きな利点だと思うぞ。
svnで満足してるならsvn使ってればいいじゃないか
ある程度のプロジェクトの規模が大きくないと恩恵少ないかもね
ソースがプログラマ一人の脳みそで足る量を超えたあたりから便利になるかも
それはsvnでは駄目でgitでしか解決できないことなん
どうせ一回のコミットごとに申請書提出するような職場なんでしょ?
だったらsvnでいいよ
良く分からんがgitでリモートリポジトリにコミットするのと
svnでサーバーにコミットするのとは同じことじゃないの?
gitの方がコミット前にステージングという良く分からん手順が必要なだけで
237 :
デフォルトの名無しさん:2011/10/10(月) 00:17:55.94
add -p とか rebase -i とかやらないとgitのうれしさは分からん。
>>236 そのよく分からない部分を分かるようになるまで勉強するんだ
なんであるものxの良さがわからないと、
xなんて作ったやつの自己顕示だとかこき下ろしたりするんだ?
おまえがxのことを理解できなくても誰もバカになんかしてないぞ
ローカルにブランチが持ってこれるというのは俺にとって革命的だった
ローカルコミットできる便利さはよくわかるが
これによって発生する運用上の課題が
容易に容易に想像できるので気軽に
仕事で使う気にはなれないな。
手元のごみコミットを整理せずに
pushして中央の履歴がカオスとか、
ローカルコミットしただけで
push忘れて反映されないとか、
何週間もローカルで作業して
成果を見せない奴がててくるとか、
どうやって解決してるの?
全員がスキルの高いチームでしか使えない?
git branch a
git checkout a
でコード修正作業用のブランチに移動する。
このブランチ内で、各ソースファイルを修正して、適当に数行〜数十行修正する度に
git commit -a -m"適当な名前"
でコミットしてしまう。
この段階は試行錯誤の段階なので、数手前に戻りたい場合も出てくる、
その場合は
git log 修正してたファイル名 // 修正してたファイルの関連してるコミットの一覧を表示する
git diff 12345678 修正してたファイル名 > p // 戻りたい位置との差分パッチを得る。 12345678 はコミットIDの例
patch -R < p // パッチを充てて、ファイル状態を修正前に戻す
ひと通り、コード修正が終わったとして、そのコミットログはコメントも適当だし、試行錯誤の後も残ってて汚れてるので、
master との比較で最終結果を一つのパッチにまとめる。
git diff master > p
このパッチをmasterに充てる。
git checkout master
patch < p
git commit -a -m"正式なコミットコメント"
作業中の試行錯誤をgitを活用しながら進めることができ、最終的な修正結果は一つのパッチにまとめてコミットを綺麗な状態で行える。
もちろんパッチを綺麗にしようとしなければ、汚いログのままコミットしてもいいし、作業中の手戻りにgitを使わず古典的なバックアップファイルで行ってもいい。
ステージは、パッチを意味のあるまとまり毎に分けてコミットするためのもの。全部ひとまとめにコミットしてもいい場合は必要ない作業。
gitだと、修正範囲の狭いシンプルな複数のパッチが好まれる。様々な修正が含まれたごった煮パッチ1個にまとめてコミットすると嫌がられる。
>>まちがえたpushで中央の履歴がカオス
そうなる前との差分をコミットして、その段階までリセットしてやりなおせばいい。
>>push忘れで反映されない
普通はコード修正が完了したら、まっさきにpushしたいと思うはず。
もたもたしてると他人の修正とのバッティングで面倒に成りかねない。
>>何週間もローカルで秘密的に作業する奴
作業量が増えて損をするだけ。
他の人は、この人の秘密作業の修正コードを知らずに、各自が勝手に作業を進めて、中央(的な役割と決められた場所)へとコミットしてしまう。
中央との差は、中央に公開してしまえば、他の人も、その差を無くすように作業してコミットするが、
中央に公開しないままならば、他の人は、その差を考慮せずにコミットしてしまう。
秘密的に非公開で作業し続ければ、この差を修正する作業を、(本来各自に任せられてた作業をわざわざ)一人で請け負うことになる。
これは明らかに損。
ローカルで秘密的に作業する時間が長ければ長いほど、中央との差は広がり、差を埋める作業という労力が増す。
gitはsvnを面倒臭くした集中型バージョン管理システム
なんでこんなに中央を直接更新するのを恐れてるのか分からない
別にコミットミスしてもその旨をコミットメッセージに書いて元に戻せばいいだけじゃねえの
ローカルとリモートで2重管理して生産性落ちるだけじゃねえの
git使ったら開発期間が延びてコスト増大で会社が倒産するわw
君がsvnに慣れ親しみすぎて他に移りたくないという気持ちはよく分かった。
実際に日本の会社ではsvnを使ってるだけでも褒められるレベル。
VCSすら使ってない会社はごまんとある。
ごまんはねぇよ。
gitのスレでsvnの宣伝にきたのかこの人は
なんだ、最近はgitスレにまでドカタが湧いてんのか
>>246 君が想定/経験している規模の開発だとミスがそんなに大した問題にはならないのかもしれない。
ローカルとリモートで2重管理しているように感じる体制だと確かに面倒に感じるかもしれない。
>>243 patch 何て使わずに rebase -i でいいだろ
remoteに行く前のコミットはいじりまくって良いということに慣れないとな
むしろremoteにぐちゃぐちゃコミット送る人なんなのローカルの概念ないの
git reset --soft HEAD^は、なぜHEAD^なのでしょう?
今の状態をとりやめたいからHEADでいいんじゃないでしょうか?
>>246 試行錯誤だらけのイミフな変更ばかりじゃ履歴見る価値が無いだろ。
まあそう考えないということは履歴なんか見ないんだろうがね。
HEADから一つ戻すからHEAD^なんだろ
テスト済みのコードに変更を加えていく場合とかで、レビュー済みのもののみを
履歴に残す形式で開発する状態になるとgitのスタイルがしっくりくる。
テスト済みなのにぐちゃぐちゃ変な変更が入っていくようなことをやる会社は倒産する。
260 :
241:2011/10/10(月) 12:21:40.40
>>243-244 ありがとう
> 作業中の試行錯誤をgitを活用しながら進めることができ、最終的な修正結果は一つのパッチにまとめてコミットを綺麗な状態で行える。
> >>まちがえたpushで中央の履歴がカオス
> そうなる前との差分をコミットして、その段階までリセットしてやりなおせばいい。
「間違えたpush」ではなくて、「試行錯誤の途中経過を含んだコミット」を別のメンバーがpushしまくる。
で履歴にこだわる俺が「なんでこんなもんremoteにpushするんだよ。馬鹿なの死ぬの?」とイライラする絵が浮かぶ。
もちろん日に(svn基準)数10コミットはあるのでいちいち誰かが修正するのなんか無理。
> >>push忘れで反映されない
> 普通はコード修正が完了したら、まっさきにpushしたいと思うはず。
> もたもたしてると他人の修正とのバッティングで面倒に成りかねない。
なるほどね。この辺の心理はGitで共同作業してないからわからなかった。
導入時のガイドラインとして、svnで意味のある単位でのコミットができていれば、
svnのcommitとgitのcommit(同時にpush)を同じぐらいの粒度ですればいいのではないかと思った。
よく考えたら試行錯誤中のこまめなコミットなんかするわけないしな。
> >>何週間もローカルで秘密的に作業する奴
> 作業量が増えて損をするだけ。
> 秘密的に非公開で作業し続ければ、この差を修正する作業を、(本来各自に任せられてた作業をわざわざ)一人で請け負うことになる。
もちろんそのとおりなんだが、
こういうのは「マージに時間がかかって遅れました」と平気で人事にするからな・・・
これは明らかに人の問題だから啓蒙するしかないか。
結論としてはgitは不要ということだな
あれだろsvnと同じもの作ったらパクッたって言われるから
変な機能付けてオリジナルの画期的なソフトウェアができたとか主張してるんだろw
svnみたいなウンコで満足出来るならDVCSいらない
git reset --hard HEAD^で取り消したコミットに再び行き着くには、
git reflogでコミット一覧を表示して調べるしかありませんか?
svnとgitが同じに見えるならお前の目は不要だな
そんなにsvnが好きならalias使ってgitのコマンドをsvnライクにすればいいよ
>>263 だね。しかも--hardしてるってことは、addしてなかったファイルはもう手に入らない。。。
267 :
241:2011/10/10(月) 12:47:55.40
>>257 > 試行錯誤だらけのイミフな変更ばかりじゃ履歴見る価値が無いだろ。
> まあそう考えないということは履歴なんか見ないんだろうがね。
コミットを気軽にできるGitの方がむしろ「試行錯誤だらけのイミフな変更」が
remoteに入りやすいんじゃないの?
そうならないためにはpushする前にpushする人が整理しないといけないんだよね。
正直、机上で考えてるだけだといい解決策が思い浮かばない。
「いずれ公開されるから、後で整理するのが嫌なら中途半端なコミットはするな」
「gitの便利さを享受したければpushの前に整理しろ」
という運用ルールにすればいいのかな
中途半端なコミットなんかsvnでもgitでもありえるわけで
git使ったら解決されるわけでもないわけで
ステージングとかいうイミフな仕組みに工数とられるgitはうんこ
大体みんなで共有する中央リポジトリが存在する時点で集中型システムだろ
分散型とか言うから中央リポジトリなくてp2pみたいに開発者同士でネットワーク張ったりするのかと思ったのに
ただの面倒な2重管理だもんな糞ゲーだろ
>>267 Gitは「後で整理する」のが容易なようになってるから後で整理するのも良し、
add -p で最初から良い感じのコミット組み上げていっても良し。公開前は個人の裁量。
ただし、プロジェクトの運営ルールは柔軟に決めればいい。超々タイトなスケジュールを
複数人でやっつけるなら奇麗なコミット云々言ってられないだろうし、その状況では
頻繁な公開=中途半端なコミットのpushが必要になる。
その後のリリースの段階ではやはりそういう履歴は不要になるから、いったんsquashなり
するかも知れない。雑だけど有用な履歴だと判断したらそのままにするかも知れない。
>>269 「中央」リポジトリなどGitには無い。使う人がそう決めつけるだけだ。
無知でかわいそうなヤツ。
無くたって現実には作るだろうよ・・・頭の固いやつだな
中央リポジトリがないってことはリリース時はどこから成果物を取り出すの?
成果物を取り出してる場所が中央リポジトリじゃないの
「gitイラネsvnでいい」と個人的に思ってるならまだしも
まわりにそれを押し付けるバカの多いこと
じゃあgitの良いところを教えてくれよ良いものは取り入れたいんだよ
2400円も出して入門git買ってきたのにうんこ掴まされたんじゃ愚痴も言いたくなるよ
>>273 分散型やるならまず概念を変えないと先には進めないぜ
成果物は好きに取り出せ
中央だと思う場所があるなら、そこがお前にとっての中央かもしれんね
「入門Git」がうんこの一言で片付けられたらどうやってGitのいいところを伝えればいいんだよ…
DVCSをいかにして使うかよくわかる名著なのに
入門gitにうんこついてたのか
交換してもらえよ
リビジョン番号も意味不明な文字列になってるし
過去のある時点にソフトウェアの状態を合わせたいときに
意思疎通しにくいだろ
リビジョン番号(笑)
分散してるのに採番とかしねーよ
svn信者はアホってことが良くわかるな
>>268 svnで中途半端なコミットなんかありえねーよ。
おめーtrunkのビルドこけさせたら死んで詫びろ。いいかわかったな
__
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことよりBazaarしようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
結局、gitを使うと、svnで培ったオレ流を他の奴が守ってくれないかも
しれないから嫌だ。っていう文句しか言ってないのね。
どうせsvn使ったってオレ流を人に押しつけてるだけだから
うまくいかないのに、それをDVCSのせいにされてもねぇ。
svnでできることはgitでもできる。
gitでは他の便利なことや柔軟な運用もできる。
それでも最終的な成果物のコミットのポリシーをどうするかは
属人的な問題で人と人の意思の疎通でしか解決できない。
VCSの不便さを利用してようやくポリシーの統一を図ってるようじゃ
いずれプロジェクトは滅茶苦茶になるさ。
それはDVCSのせいじゃない。
富士通ではVCSすら使ってなかったなあ
大きなプロジェクトはPerforce使ってたけど
git使ったら他には戻れないと個人的に思うなあ
ちょっと履歴を遡りたいときにはgit reset HEAD^^よりもgit commit HEAD^^の方がいいかな?
煽ってんじゃねえよてめえ
そうだった。checkout
ギットギトのgit
>>256 よく分からんが今の状態を取りやめたいなら
git reset
でいいんじゃね?
ポインタにNULLを入れて
何回でもギットギトにしてやる
293 :
241:2011/10/11(火) 09:24:33.37
もしかして俺が煽られてるのかなw
>>284 >svnでできることはgitでもできる。
>gitでは他の便利なことや柔軟な運用もできる。
>それでも最終的な成果物のコミットのポリシーをどうするかは
>属人的な問題で人と人の意思の疎通でしか解決できない。
だからそのポリシーをどうすればsvnを使ってるチームが移行しやすいか、
という話なんだが。
運用上svnから劣化する点があれば対策を考えるよね。
運用ルールでなんとかできるのか、どうしようもないのか。
自由度が高いならなおさら「gitにしました。あとは好きにしろ」じゃ
回らないよね
>VCSの不便さを利用してようやくポリシーの統一を図ってるようじゃ
svn使ってたらsvn利用を前提にプロセスを最適化するのは当然だろ
294 :
デフォルトの名無しさん:2011/10/11(火) 09:28:46.16
>>293 > 運用上svnから劣化する点があれば対策を考えるよね。
????????????
とりあえずオープンソースで今時svn使ってるプロジェクトはうんこ
パッチ書いて送ったら「tortoise diffじゃないとヤダヤダ」とかぬかすような連中ばっかり
パッチとか面倒なこと考えずに直接更新すればいいだろ
297 :
284:2011/10/11(火) 12:50:03.08
>>293 あなたを煽ったつもりはないです。
自分のプロジェクトはsvnが合ってるからsvnを使うよというだけの人を
どうこういうつもりはまったくないので。
VCS使わないって選択肢もありだと考えますし。
ただ、そのことをもって、
gitそのものをdisるキチガイが湧いていたので、
それに反論したのみです。
gitは無駄に2重管理する生産性の低いうんこだし
git使って開発してるやつはもっとうんこです
2重管理厨しつこい
かかってこいよ
何をやりたいのか分からないな。
svnを褒め称えてgitをdisればみんながgitを放棄してsvnへ流れてくれるとでも思っているのだろうか。
2重管理地獄の中で悶えて死ね!!!
2重管理したくないやつは、しなきゃいいんじゃね?
304 :
デフォルトの名無しさん:2011/10/11(火) 17:50:07.41
何が2重管理なのか理解できないのだが
2重管理って何?
派遣先用と自社用に2枚勤務管理表を書かないといけないだろ?
>>293 svnでの運用ルールが破綻してgitに乗り換えようとしたが
gitが難解でgitに八つ当たりしているのですね?
二重管理最高だろ。
svnのコミットするのに申請書が必要な環境では
ローカルリポジトリと共有フォルダ内work内のbareリポジトリで
実質的な管理をするもんなんだよ
2重管理求められる環境とか経験ないんだけど申請書?とか必要ない環境だったら2重管理のメリットなんか何もないってことだよね?
2重管理とかマージするときに競合が起きた場合の面倒臭さがより増大するだけじゃないの
310 :
デフォルトの名無しさん:2011/10/11(火) 21:00:21.90
なるほど、svnのマージを使ったことが無かったのか
むしろsvnしか使った事が無いから、必要以上に競合を恐れてるのでは?
マスターリポジトリと各開発者のローカルファイルがリアルタイムで同期していない以上、
svnもgitも多重管理していることに違いは無いと思うけど。その言い方を真似ると。
その上で、君はsvnでは多重管理している意識が無いと言っているわけだけど
同様にgit使ってる人も多重管理してる意識は無いよ。
ローカルコミットは自分の完全支配下にあるブランチ、とでも考えれば理解しやすい?
(あ、svnでブランチ切るのも多重管理だね。trunkしか使ってないってことはないよね?)
svnだと開発者の誰もが好き勝手ブランチ切ったりできないでしょ。不便じゃない?
使ったこと無いのに批判してるように見えるなあ
とりあえず社内がsvn使っててもローカルフォルダだけgitで運用する事もできるし
挫折しないで一通り試してみ
Linux開発向けに大人数でバザール的に作業すること目指してるのが
社内数人のチームで完全に設計してから実装するみたいな用途には
オーバーエンジニアリングに感じるのかも。
パッチ書こうとしてるOSSのリポジトリがsvnだとがっかりするけど
職場のリポジトリがsvnでも若干の不便しか感じない。
svn もまともに使えないのに git は無理だろう
と、思うことはある
バージョン管理は二の次だったりする所もあるからなあ
レベルは決して低くない所だが
316 :
284:2011/10/11(火) 23:49:37.35
>>293 はまともなsvn使いがgitへの移行を検討するに当たって
gitの実運用上の問題を挙げてるにすぎないんだから、
これ以上煽ってやるな、真面目っぽいからかわいそうだ。
いや、svnのコンフリクトを防ぐために運用ルールを定めているのであれば、それはツールに使われている。
欠陥ツールであるsvnを破棄してgitに移行すべきであろう。
俺には
>>298とか
>>309への反論に見えるな
素人考えでもマージするときの面倒さはsvnもgitも変わらないように思えるんだが
マージ作業自体の手間はかかるにしても一旦コミットしてからマージできるから
リモートにブランチつくったりローカルの変更を手で保存したりしなくても
変更が失われないってのは結構な利点じゃない?
320 :
デフォルトの名無しさん:2011/10/12(水) 08:00:56.75
gitはTortoiseGitとmsysgitの2重管理のうんこ
tortoisegit がうんこだったのは同意。ログ見るときと日本語で commit message 書くときくらいしか使ってなかった。
入れ替えるモチベーションなくしてんだが、最近のはどーなんだろ?
もう msysgit のコマンドラインで十分になっちゃってるしなー。
ところでロック厨がわいてくるだろうと蒸し返すw
>>320 2重管理という用語を使ってる君自身がその用語をちゃんと定義しきれていない気がするよ。
もうちょっと正確に言ってもらわないと、君が疑問に思っていることがあっても残念ながら中々答えてあげられない。
意味もわからない覚え立ての言葉を使いたい小学生なんだろ
すぐうんこ言うしな
ローカルにコミットするメリットがさっぱり分からん
いやローカルにコミットできることを分散型だと言ってgitの長所だと主張してんだろ?
そこは納得いく説明をしてくれないと
回線が切れてても大丈夫。
履歴を好き勝手編集しても大丈夫。
パスワードなどの個人情報を入れた状態でcomitするなどの事故を減らせる。
ローカルコミットの何が嬉しいの?って言う時点で分散型を
必要としてないよ。どうせマンドクセーってぎゃーぎゃー言うだけ。
回線が切れてても中央のリポジトリから最新版を取ってきたりコミットできるの
履歴を簡単に書き換えられて過去のある版を取り出したくなったときとか困らないの
事故を減らせる代わりに面倒臭くなってるよね
>>330 履歴の書き換えはローカルだけだから無問題
タグが何のためにあるのか考えよう
タグを見るためにいちいちsvn listコマンドなどを叩いてリモートに見に行く方ががよっぽど面倒
回線が切れてたらさすがにリモートの最新版は取ってこれないが、log,diff,(ローカルに現存してるコミット間での)mergeなんかは使える
というかリモートリポジトリを必要とするpull/push以外の全機能が使えるしそういうコマンドはもともと通信しない
リモートを書き換えないなら何もしてないのと一緒じゃん
ローカルのものをいきなり成果物として客にリリースしたりするの
プログラミングにおいて一切の試行錯誤をしないのか?
ああ、与えられた仕様書をコードに起こすだけのコーダなのか
gitはそういうコーダのためのツールじゃないから
回線切れてるならsvnだろうがgitだろうが手旗信号でも使わないかぎりリモートと通信できるはずないだろw
ローカルでコミットなんかしなくても試行錯誤はできるだろ
試行錯誤をどうやって管理すんの?
log見たり複数の試行錯誤のdiffとったりmergeしたりせんの?
中央にコミットするまでのあるまとまった単位の修正だろ?
そんなもん#if 0 #else #endif とかコメントで十分だろ
え?svn使いってそんなことしてんの?いまどき?
それで十分ならマスターリポジトリもそうやって管理したら?
342 :
デフォルトの名無しさん:2011/10/12(水) 15:00:17.54
ローカルな試行錯誤を小刻みにコミットしながらできるのは便利だよ。
そして、その試行錯誤を1〜複数のコミットに整理してから、管理されているリモートにpullしてやればいい。
管理されるのは、ごちゃごちゃな試行錯誤より、整理された試行錯誤のほうがいいよ。
実際それでうまくいってるし2重管理の必要性を感じない
マージするより#if #else でパッと見で分かる方が早いじゃん
Gitは漠然とした仕様の中手探りで開発するときに向いている。
自分でソフトウェアやプラグインを作るときは仕様の変更や試験的な実装がしょっちゅうあるだろ。
>>335 回線のつながってない客先にどうやって納品するの?
まさかzip?
それで客先で改変してカオスになるわけだ。
いつまで小学生構ってるんだよ・・・
うんこすれですよ
>>335当たり前のことだが、リモートに全く接続しないわけでなく、リモートに接続する頻度が減るだけだからな。
じゃあお前ら#if #elseで処理を有効/無効化したりコメント化したりせずに
わざわざ現状をローカルコミットして処理を消して書き直したりしてんの?
コードに残しときゃすぐ分かるのにバカじゃね
352 :
デフォルトの名無しさん:2011/10/12(水) 15:48:55.65
>>351 Linuxカーネルでは#ifは禁止。
コミットログに書いて十分なものを、コメントに書くのは馬鹿。
コメントはメンテされていないことがほとんど。信用できない。
別にLinuxカーネル作ってるわけじゃねーしw
ローカルコミットの内容だって信用できないものなのに大事に保管しとく意味ねーだろ
もはやVCSそのものを否定してるレベルだな
なんでsvn使ってるんだ?
>>351 そんな意味のないプリプロセッサ付けんな! ソースが汚くなって見辛いし、ほんとに大事なものが見えなくなる。
>>351 ファイルが無駄にでかくなるし、そもそも修正履歴が追えないだろ
#if がどっさりうまったうんこコードを書く小学生がいるスレはここですか?
試行錯誤の段階の話だろうが
最後は綺麗にしてコミットするに決まってるだろ
日本語もまともに読めないカスどもが2重管理地獄で悶絶して市ね
361 :
デフォルトの名無しさん:2011/10/12(水) 18:33:01.30
>>360 その「最後は綺麗にしてコミット」するのが圧倒的に楽なのよ。
Gitで
>>342のやり方をすれば。
ブランチの概念を教えたほうがいいかもしれない
どんだけ大規模な試行錯誤してんの?
#if #else自体もほとんど使う機会ないんだけど
ローカルでそんな大規模な修正してて中央にコミットするときに競合した場合に
ものすごく面倒臭いんじゃないの?競合相手も大規模な試行錯誤してんだろう?
試行錯誤がフィーチャーブランチだったら公開した方がみんなのためだろう
svnはブランチがうんこだからできないけど
コーディング規約で過去コードをコメントや#ifで残すようにとか決まってるんじゃないの?
そういう時にはチーム内管理用のコードと正式コミット用のコードをブランチで分けるんだよ
で、邪魔なコメント過去コードは正式コミット用コードにだけ残しておいて、
プロジェクトリーダーが週例前に内部用コードとマージして一括してコミットする。
ただ宗教戦争したいだけのヤツなんだからもういいかげん相手にするなよ・・・
>>367 神聖なまんこスレからうんこは排除せねばならない
>>364 数行の修正×数箇所とか程度の簡単な修正でもGit使うと楽よ。
エディタでソース修正してローカルなコミットを作った後は、
動作確認して必要なコミットだけをまとめてコメント付け直してリモートに登録するとかを
コマンド叩くだけでできるし。
#if#elseとかでやる場合は最後もエディタでソースを整形しなおすんでしょ?
その段階で修正間違えたりしたら目も当てられない。
たとえば、ファイル a, b, c の3つで、 #if によるコメントアウトを同時に行わないと、効果が無い場合。
a, b, c の修正を採用するか、不採用にするか、いずれにしても、3つのファイルから #if を最終的に掃除する作業を行うことになる。
a, b, c のへの修正を、仮に A とする。
git だと branch A として修正を行ったバージョンを実験できる。
それを採用するならば git merge A として master へ合流させればいいし、不採用なら採用しなければいい。
わざわざ #if を掃除する方法だと、掃除の段階でミスする可能性もある。
たとえば a, b の #if だけ掃除して c の #if を掃除し忘れるような心配も無い。
a,b,c とは別の流れで a, x, y の修正も必要な場合、
git なら a, x, y への修正を仮に B とし、採用なら git merge B すれば良い。
A, B での最終的な採用パターンは4つ。 両方採用、片方採用、両方不採用の4つ。
これを最終的に #if の掃除として行うとしたら面倒。
さらに A, B, C の修正を α 、A, X, Y の修正を β とするような規模になれば、ローカルで自由にcloneできることのメリットを享受できる。
大規模な修正 α, β のために、それぞれclone して独立して修正を行ってしまってもいい。
そして、両方採用(α,β)ならば、α内からβをpullすればいいし、片方採用ならそれをコミットすればいいし、両方不採用なら捨てればいい。
これらは全てローカルでの話。
こうして作ったパッチを最終的に中央へコミットすることになる。 gitには決まった使い方は無い。使い方を自由に工夫できる余地が残されている。
機能A追加、機能Aを使う機能B追加、機能Bを使う機能C追加
のような3つのコミットをしたい時に、機能Cを作りながら機能A、Bもデバッグ
して、きれいにして、最後に3つに分けるんだけど、後から分割するのって大変
なんだよね。そういうのは、gitやhgだとコミットを行ったり来たりしながら作
業できて便利。だから例えsvnでやれと言われても、手元でgitとか使っちゃう
と思う。
GitHub のデザイン変わった?
gitはPerforceが高くて買えない貧乏人に最適
むしろgitの方が優れてるし
つまり、全人類にとっての光明
今度は買い物P4厨を呼び込むための撒き餌か!?
宗教戦争とか政治論争は別のスレでやろうや。
git 1.7.7 の msys版がでたけど、
msysGit-fullinstall-1.7.7-preview20111012.exe からだと
生成されるファイルのサイズが全然違うのはなんでだろうか。
--version の表示結果からして違うせいなのか、
デバッグ用の実行ファイルになってるのかな
>>372 それは誤読もいいところ。
そこに書いてあって1.7で実現されたgit的なものは
.svnがひとつになったことぐらい。
これは無条件に良くなったと言える。
じゃあ相変わらず #if 使う日々が待ってんのか
大変だな
1.7のリリースまでにはまとめられなかっただけだろ。
2重管理とやらをしてないのに。
2重管理地獄の中で悶えて死ね
Git使ってると気持ち良くて悶えちゃう
>>380 お前もローカルでは #if で手動管理してるんだろ?
まあ管理と呼ぶのもおこがましいが
流れ読まずに横から質問…。
ローカルに好き勝手なタイミングでコミットしまくって出来上がった、うまく言語化できない成果物があるとして
それをいわゆる中央リポジトリにキレイな履歴で送りつけたいとき、
みんなは具体的にはどうやって整理してるの?
もしやsvnとかとは、コミットの粒度がケタ違いに違う?
>>383 分離すべきと思う単位で分割するかな。つまり機能毎に。
関数追加〜とかの単位だと意味が無いし、逆に複数の機能が単一のコミットに入っていると
一部だけ採用できない。
また、ビルドが通らないというのは論外だけど、例えば「新機能1」「新機能1のテストコード」
とかは同じコミットにすべきだし、単体で意味のあるバグ修正なんかは別のブランチに
してマージしたい。俺は。
公開リポジトリまたは他人のリポジトリには、基本、
「この機能いらないからこのコミットだけ却下」
ということができるようにローカルで調整してコミットしたブランチを送りつける
いやもちろんプロジェクトのポリシー次第なのだが
単一の機能を実現するためにあちこちいじらないといけないときは説明的なコミット満載の単一のブランチにしたりもする
あちらでsqashしてくれるんだろうと思ったらそのままブランチごと適用されてお茶吹いたりもするのであんまり勧めない
386 :
デフォルトの名無しさん:2011/10/14(金) 06:33:17.19
387 :
デフォルトの名無しさん:2011/10/14(金) 06:35:24.18
>>377 残念ながらsvn1.7ではsvnユーザが行っていた2重管理はできなくなりました。
> **警告**: SQLiteライブラリを通じてSQLiteにアクセスがある間に、SQLiteのファイルをコピーするのは安全ではありません。
> 結果として、 Subversionプロセスからアクセスされているワーキング・コピーの複製を作る事(tar, rsync, cpなどで)は、
> Subversion1.7ではサポートされません。それは壊れている可能性があります。(課題 #3596)
>>383 最終的には科学的な指標なんてなくて、美的センスの問題。
383の改行が、いうなれば、パッチ整理のようなもの。
1改行は、それぞれが強く関連する、小さな意味単位としての分割。
2改行は、それらのグループ間での分割。
パッチの分割も383の文章と同じ要領。結局これは、最後は美的センスの問題になる。
機械的で具体的な数字には示し難い。
今時VCSにSQLiteを使うのは馬鹿だな
>>391 SQLiteはロック前提だから。
そんなことも分からないsvn開発者は馬鹿。
ありがとう。ちょうどsvnスレでその話挙がってるね。スレ違いすまんこ。
きにすんなちんこ
BerkeleyDB依存からは脱却できたのに…
なにか要求をシリアライズしているプロセスをかませばいいのに
それこそhttpdの何かとか
397 :
デフォルトの名無しさん:2011/10/15(土) 15:27:30.20
gitの中にはファイルの所有者の情報を保存できないのでしょうか?
chownしてdiffしても何も変わっていないと言われてしまいます
>>397 できないよ。実行可能かどうかだけ。あとシンボリックリンクはだいじょうぶ。
>>398 そうなのですか
ありがとうございました
Git ってたまたまハッシュ値が衝突しちゃった場合ってどうするようになってるの?
どうもしない
変な動作でエラーになると思われる
(やろうとした処理にもよるが、無言で上書きされて続行されるようなことにはならない、はず)
まあ、エラーになったならそのとき手で修正すればいい
天文学的確率のさらに上をいく事象に事前対処することはリソースの関係上できね
あと、これも前スレで言われてるが、ハッシュに日付とかユーザー名とかくっつけるのは衝突回避確率を強化しない
ttp://progit.org/book/ja/ch6-1.html > すでにリポジトリに存在するオブジェクトと同じ SHA-1 値を持つオブジェクトをコミットしてした場合、
> Git はすでにそのオブジェクトがデータベースに格納されているものと判断します。
> そのオブジェクトを後からどこかで取得しようとすると、
> 常に最初のオブジェクトのデータが手元にやってきます
> (訳注: つまり、後からコミットした内容は存在しないことになってしまう)。
まったく調べずに嘘を書くのはどうかと
おまえみたいに調べて訂正してくれるやつがいるから
ある意味 問題ないな
俺の間違い push も訂正してほしい
うん?コミット時にはエラーでなくてあとで困るってこと?
それってまずくね
その前にオオカミの心配しろよ
SHA1ハッシュが衝突したとしてもオブジェクトの種類が違ったら
たぶんエラーになるから、さらに確率は下がるかな。
悪意を持って衝突させる奴が出たらそんなこと言ってられない
質問です。
git svn clone して以下のように作業しているんですが...
1. branch を作って作業
2. master にマージ
3. git svn dcommit
このあと、
branch は要らなくなったので git branch -d すると
error: The branch '○△□' is not fully merged.
消したかったら -D で消せ
と怒られます。
git svn dcommit すると、
commit のハッシュ値みたいなのも変わりますので
怒られるのは当たり前だとは思います。
・・・が、
2. master にマージ
3. git svn dcommit
の間に要らなくなったブランチを削除しておくのが普通なのでしょうか?
anonymousでpushできる世界の話?
2重管理で悶えてるじゃねーかw
二重管理ってgit-svnのことだったのかよw
>>410 意図的にSHA-1を衝突させるとか何者?
>>410 できないできない絶対できない
やれない気持ちの問題じゃない
できるできる絶対できる!
たとえ将来、自由にハッシュを衝突させることができるようになったとしても
既存のリポジトリの内容を破壊できるわけでもなんでもないその行為になんの意味があるの?
// コメントを外すと何故かコミットできない
>>411 master で dcommit したら topicブランチの方でも git svn rebase とか
git rebase master とかすると、ハッシュ値が違う同じコミットが整理されて、
git branch -d で消せるようになるよ。
>2. master にマージ
これって merge っていうか FastForward だよね?
あと dcommit する前にも git svn rebase するはず。
git svn じゃなくても rebase すると -D じゃないと消せない はぐれブランチが
出来る可能性はある。
>>411 俺はmerge時には--no-ffしてる。
411です。
ありがとうございました。
今日もういちど
しらべたりやってみたりしようと思います。
質問です。
masterからtestブランチをつくってcoし、testブランチのほうであるファイルの内容を
変更しました。statusを見てみると、たしかにadd待ちになっています。
その状態でcoしてまたmasterに戻り、なんとなくstatusを見てみると、
ブランチで作業したファイルが、こちらでも変更されたことになっています・・・
ファイルの内容を確認すると、ブランチでの変更と同じものになってしまっています。
ここでまたcoしてtestブランチに戻り、addしてmasterに戻ると、
こちらでもaddされてcommit待ちになっています。
これはこういうもので、ブランチで作業した場合、
commitせずにmasterに戻るのは間違いということでしょうか。
まだgitを使い始めて日が浅いので、誤操作したのかもしれませんし、
正しく理解できていないところもたくさんあると思いますが、
ちょっと困惑してますので、ご教示ください。
2重管理地獄の中で悶えて死ねw
>>425 addしていないファイルはどのブランチにも属さない
単に管理されていないから、どのブランチにいても「未管理ファイル」として表示される
それだけ
あー、なんとなくわかってきました。
testのほうでadd/commitするとtestが新しくなり、
masterに切り替えると古い版が維持されてました。
最初からやりなおしてまたtestで修正し、今度はmasterに切り替えてこっちで
add/commitすると、masterが新しくなり、testのほうが古いmasterの状態を
維持してました。
こういうものなんですね。co すると、そのブランチの
(こっちが期待している元の)状態に全部きれいに切り替えてくれるものと
思ってましたし、ブランチでの修正をmasterでcommitできるとか
考えてもみませんでした。
たぶん私は「ブランチ」の概念から理解しなおさないとダメですね。
ブランチというか、ステージングの概念じゃない?
ワークツリーの変更を退避したければ git stash でできるよ
でも、とりあえずコミットしておいてあとでコミットを編集・整理するのでも良いと思う
概念がどうとかいうほどのもんかね?
gitってうんこだな
>>431 いやだってbranchとは別物じゃない
434 :
デフォルトの名無しさん:2011/10/18(火) 19:58:28.05
gitはbranchとstashの2重管理のうんこ
あれからあらためてman読んだり自分で考えたりして、それなりにわかりました。
gitにはようするに「コミットオブジェクト」みたいなものしかないわけですよね。
タグはもちろんブランチも、ユーザのための記号みたいなもの。
だからブランチをつくったばかりなら、両ブランチは対等というかおんなじもので、
どちらが親とか、そういう意味もない。コミットした時点で初めて、
新たな「コミットオブジェクト」がつくられる。
あるコミットオブジェクトがどのオブジェクトから派生したか、といった情報は、
オブジェクトがつくられるときに記録される。
こう考えるとすごくわかりやすくなりましたし、シンプルでいいな、と思いました。
こんな感じに理解しましたが、だいたい合ってますでしょうか?
だいたい合ってる
しいていえばタグは特定のコミットをピンポイントで指すけど、ブランチはコミットの歴史(HEADの変遷)を指すってところかな
Git のタグは、軽量 (lightweight) 版と注釈付き (annotated) 版の2重管理のうんこ
バージョン管理システム界にカオスと混乱を招いたgitの罪は重い
>>436 ありがとうございます。
タグとブランチの違いについても考えてましたけど、おおむね間違ってなかったみたいです。
使いかたはまだまだ練習中ですが、いろいろわかってきたので面白いです。
gitを理解できない奴の頭の中がカオスになってるだけだろ。
自分の頭の悪さを罪だと思えw
構うなベアード
>>435 シンプルでいいよね。そこに気づけばもう迷うことはないよ。
必要に応じてコマンド覚えていけばいいだけ。おめでとう。
今一番使われているバージョン管理システムってgitなんすか
ちょっと調べてみて使い方がスっと入ってこない時点でうんこ
>>443 今一番使われてるのはSubversion
オープンソース開発でGitが増えている
一般の開発でもGitが増えつつある。
svn→gitは便利になることもある反面失うものも多いから
単純に置き換えが進むというものではなくてずっと共存すると思う。
過去、cvs→svnはなにも失うものが無かったから一気に移行が進んだ
失うものがないもっと良いやつ作れよ
何が分散型だよ中央とローカルで2つsvnリポジトリ持ってるのと一緒じゃねーかw
失うもの "SVN厨"
何かを得れば何かを失う。人生とはそんなものだ。
状況に応じて使うか使わないかを決めるといい。
失うもの
・コミッタの特権
・リビジョン番号
・svn的なタグ・ブランチ
Linusも開発してて途中でうんこだと気付いたから手を引いたんだろうな
で、あのおっさんがうんこと気づかずにメンテナ面して得意満面にいじくりまわしてるってか?
…ちがうだろ、基本設計が良かったから発展し続けてるんだろ?
俺は単にJunioのことをおっさん呼ばわりしたかっただけだw
>>451 グラフがうんこになるのを推奨している記事か
うんこを押し付けられてせっせとメンテナンスするおっさん…
svnみたいなうんこツール使ってると性格までうんこになるのか
gitは中途半端でめんどくさいツールでFA
たぶん3年後くらいにちゃんとした次世代バージョン管理システムができるから
それまでsvnでいいや
>>456のほざく「次世代」に「SVNと同様の」が多分に含まれてる汚感。
うんこ話は盛り上がるがまんこの方が好き
盛りまん
>>446 Mercurialならgitより失うものは少ないんじゃね
git log --name-status -M
とかやると移動の履歴も見れて素敵なんだけど
ファイルステータスの記号に続く3桁の数字の意味ってなんなんだろう。
R077 R100 とか、合致率とかかな?
>>449 >・コミッタの特権
これかなりメインテーマだよな。
>>461 多分そうだろうなーと俺も思ってた。
TortoiseGitのFormat patchで作ったパッチ、何でファイル名の前に
a/とかb/がつくの?付けさせない方法ないの?
番号飛びすぎワロタwwww
まだ一所懸命やってるようだな。ご苦労なことだ。
>>463 diff.noprefix のことだとは思うが後悔するなよ? tgit で試してないから知らん。
かかってこいよ
さっさとかかってこいよブタ共
__
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことよりBazaarしようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
471 :
デフォルトの名無しさん:2011/10/21(金) 08:14:27.43
gitで管理しているディレクトリの配下に、
他のリポジトリからディレクトリをcloneしたりしたら問題になりますか?
>>471 addしなけりゃいいだけだ。
してもgit的には問題は無いけどまあ普通しないわな。
--reference (objects/info/alternates) に含まれているオブジェクト以外を prune することってできる?
もちろん alternates の先はオブジェクトが消滅せずひたすら追加されていく前提で。
>>474 うわ日本語間違えた。
「alternates が保持しているオブジェクトをローカルオブジェクトから prune」だ。
Bazaarスレ、なんか埋め立てられているし
分散型バージョン管理システムとは3DSみたいなもの
cvs:ゲームボーイ
svn:DS
git:3DS
cvs:ゲームボーイ
svn:ゲームボーイカラー
git:DS
cvs:ファミコン
svn:スーファミ
git:バーチャルボーイ
やれやれだ
サードパーティというかベンダというか、そういう外部由来のソースの小さなバグ直したり、
ちょこっと「自分仕様」を追加したりしつつ利用していくときって、
ブランチはオリジナル版とカスタム版のどっちをmasterにしとくのがいいんでしょう?
オリジナル版の更新も取り込みつつ、カスタム版をメインに利用する、
と考えると、master/vendor っていう分けかたがいいのかな、とは思うんですけど・・・
どうでもいいよ
pull/pushするときに送信ブランチ名と送信先ブランチ名を指定できる(つまり、送受信時に自由にリネームできる)から、手元では好きに名前をつけるといい
もっと言うと master というブランチ名自体に特別な意味はない。
一般的には外部由来のもの、すなわち pull 専用のものを origin/master -> master として
自分用ブランチを設けて好き勝手にやるのが自然。
上流(この場合外部)に自分の変更の一部を反映するための方策についてはまた別の話。
いちおう慣習的なブランチの名前というのはいくつかあったはず
486 :
482:2011/10/23(日) 21:40:50.26
なるほど、これといったルールはないんですね
ただのzipとかtarballでしか配布されてないものなんかも想定しているので、
自分がわかりやすいと思う分けかたでやっていくことにします
他の開発者との中央へのコミット内容が競合した場合の対応ってgitだとsvnより楽だったりしますか
つーかSVNが苦行
うんこよりマシ
>>487 楽だよ。3wayマージ賢い。
さすがに同じタイミングでがっつり同じ箇所ぶつかったら
手でマージすることになるけど、補助ツール使えばなんとかなる。
バイナリ込みで数十 GB とかいける?
いけると思うけどでかいバイナリを頻繁に変更するならちょっときついかもしれない
target ディレクトリを毎回コミットする奴にはどういえば直るだろうか
3wayマージは補助でp4merge使うと、ほとんど手修正しなくていいぞ
開発ブランチ(master)と、リリースブランチ(rel-X.X)とがあって、リリースブランチ(または開発ブランチ)に行ったcommitを、もう一方のブランチにcherry-pickしています。
このとき、両ブランチの間でどのコミットがcherry-pickされていて、どのコミットがされてないかを調べるいい方法はないでしょうか。
git pullを試みたところ、
error: Your local changes to the following files would be overwritten by merge:
と言われました。しかし、今現在worktreeにある変更はどうでもいい些細なものなので、worktreeにある変更を
破棄して、とにかくpullしたいです。どうすればいいですか?
>>499 よーわからんけど、ローカルの変更がどうでもいいなら全部消してcloneし直せばいいんじゃ?
>>499 競合のあるbranch上で git reset --hard origin/upstream_worktree
>>498 git cherry -v branchA branchB
で、ある程度分かるかもしれない
>>502 git checkout rel-X.X
git cherry -v --abbrev=8 master
で望みの結果が得られました。
+ が、rel-X.X にだけ適用されて、masterには適用されてないcommit、
- が、rel-X.Xとmasterの両方に適用されているcommit
のようです。
ありがとうございました。
また2重管理で苦しんでるな
何の罪も無い純粋な技術者がなぜ苦しまなければならないのか
別に苦しんでないだろ
自分で調べるのが面倒なのがここで質問して、おせっかい焼きが答えてるだけ
506 :
デフォルトの名無しさん:2011/10/29(土) 13:35:21.20
HEADだけcloneするにはどうやればいいのでしょうか?
なんだそりゃ
全ファイルの旧編集履歴をひとつの最新コミットに詰め込んで新たに履歴1個だけのブランチを作りたい?
Signed off by って Linus のオナニー以外に何の意味があるの?
ユーザー無視の開発者のオナニーの産物
なんでSigned-off-by:がLinusのオナニーってことになるのか意味不明。
著作権者をtrackするための重要な情報なのに。
511 :
デフォルトの名無しさん:2011/10/29(土) 21:39:58.53
元の作者を尊重しつつ、コード作成とコミットの責任所在をわけることが出来る
仕組みのはずなんだが、Sign-Offに名前が出ることが売名行為に見えてるんだろうね。
名無しさん以外のものを拒絶する2chならではの反応だなぁ、と
author と comitter の違いとは別なの?
>>506 git clone --depth 1
その後出来ることに制限があるのでman見たりググったりしてくれ
>>513 新たにcommitができるような場面では committer が作業者のものになる。
(git-am, git-cherry-pick など).
このとき committer date も更新することになる。
git-commit --amend, conflict merge など、作業者の変更の余地が入るような commit では author も上書きされる。
のような運用だが、 git-commit (もしくは git-commit-tree) にて任意に上書き可能。
$ git pull
Your configuration specifies to merge with the ref 'master'
from the remote, but no such ref was fetched.
というメッセージが出るんですが、これってどういう意味ですか?
「ref」はブランチのこと?
もしそうだとして、これは「masterブランチをとってこようとしたけどリモートには存在しなかったよ」という意味?
$ git tag
としたらタグの一覧が出てきますが、そのタグがどのコミットにつけられたのか知るにはどうしたらいいですか。
今は .git/refs/tags のなかを覗いていますが、さすがに別の方法があるはず。
でも git tag -h してもそれらしいオプションはないし。困りました。
git show タグ名
ローカルのタグを git push --tags でサーバ側にpushしたのですが、
別のマシンで git pull origin master や git fetch をしても、
.git/refs/tags が空のままで困ってます。
しかも、なぜが git tag すると、pushしたタグ名が表示されます (.git/refs/tagsが空なのになぜ?)
サーバ側にpushしたタグ名を、別のマシンにfetchしてくるにはどうしたらいいですか。
>>518 それはコミットとかのオブジェクトの中身を表示するコマンドですよね。
たしかにコミットIDも表示に含まれてますが、タグ名とコミットIDの一覧が表示できればそれでよくて、ファイルの中身とかは必要ないです。
ちょうど hg tags のように表示されればいいだけなんですけど、難しいでしょうか。
gitlab 試したヤシいる?
gitorious と比べてどうよ
>>517 タグだけ列挙する方法は俺も知らんので git-pack-refs して .git/packed-refs をかっさばけw
本末転倒だが git log --format='%H %d'
>>519 .git/packed-refs ができてないかどうかチェキ
つか、
GITDIR/refs/tags の一蘭をふつうに得る。
GITDIR/packed-refs の中身をかっさばく
べたにやっていいんではないかと。refs/tagsの方が優先な。
>>517 g log --decorate |grep "[ (]tag: "
じゃダメ?
525 :
524:2011/11/01(火) 10:31:19.82
あ、"g" は "git" ね
自分のalias書いちゃった
気にするな
俺もalias g=gitしてるw
refs の中覗くのも、
git log --decorate=full |grep "[ (]refs/"
でできるしね
>>527 これいいな
タグと各ブランチのHEADだけ一覧できる
貴様ら git-show-ref を忘れてるだろ!!!
>>529 マジで忘れてたw
つかコマンドとオプション多すぎなくない?
>>529 -d つけないとタグとコミットの対応わかんないし、どっちにしろ同じコミットでも
全部別々の行になっちゃうから、
>>527のほうが俺は見やすいな
A-B-C
\-D
D の親は B になっているのを
A-B-C
\-D
親を C に変えるのは rebase D で行けるけど
これの逆に親が C だったのを B にするにはどうすればいい?
>>532 git rebase --onto B C D
コマンド体系まで二重管理
二重じゃないよplumbing porcelain cogit stgit tortoisegit
もちろんネタです
>>531 tagってtag objectのことだったのか。
--dereference で何が困るんだ?
git diffの結果を、ファイルか変更箇所ごとにマージするにはどうしたらいいんだろうか。
538 :
デフォルトの名無しさん:2011/11/02(水) 20:48:46.59
>>537 ファイルごとにaddしてcommitしてマージすればいいんじゃないの?違う?
539 :
デフォルトの名無しさん:2011/11/02(水) 21:16:28.81
patch当てたあとadd -pかね。
Andoridアプリ開発しようと思ってeclipse落としたら
なんか最初からgit入ってるし
いつの間にかgitが主流になってきてるじゃねえか
まじやべえgitこわいよー
お前も二重管理の苦しみを味わうがよいw
543 :
デフォルトの名無しさん:2011/11/05(土) 22:05:47.33
eclipse, egit, jgit, cygwin, msysgit, tortoisegitの6重管理
544 :
デフォルトの名無しさん:2011/11/05(土) 22:10:46.58
ふらふらするな ぎっとしろ。
gitでも高性能な機能を使わなかったら一重管理できるよね。
俺はブランチも切らずただひたすらcommit -allしてるだけだし。
高性能な機能と単純な機能の二重管理()笑
二重管理言いたいだけなんじゃないかと・・・。
何を今更
eclipseにデフォルトでcvsとgitは入ってるんだけどsvnは入ってないんだよね
svnってオープンソース界から嫌われてるの?
svnはコミット権を持つ者が支配層だからね。
そんな時代は終わりにしたいのさ。
ぎっとなの?じっとなの?
ぎっと、が一応正しい
「じっとはぶ」と読んでる人が大多数だと思うのだが、あれは「ぎっとはぶ」が正しい
>「じっとはぶ」と読んでる人が大多数
それはない
555 :
デフォルトの名無しさん:2011/11/07(月) 21:27:45.63
github は、周囲では ぎっはぶ (トが落ちる)が多いなぁ。
全く知らなかったら ぎさぶ (thの発音で)と読んでしまいそう。
git
音節git 発音記号/git/
【名詞】【可算名詞】
《英俗》 ばか者,ろくでなし.
じっとだろ
ギトって読んでるなぁ。GitHubはギトハブって・・・。
ギットでギットハブの俺にとってはこの流れがカルチャーショックなのだった。
おまいらもういいから
じっとしてなさい
git logだと増減したファイルのファイル名や修正されたファイルのファイル名が出ないのですが、
これを見るにはどうすればいいでしょうか?
562 :
デフォルトの名無しさん:2011/11/07(月) 22:42:58.04
git log --name-status かな。
まずは短めに --stat だな。
俺はwhatchangedよく使うな
特定のコミットに存在しないファイルを自動で消す方法ってないですか?
例えば linux kernel で v3.0.8 をコンパイルした後に
git checkout v2.6.32.46
とかした時に、v2.6.32.46に含まれない余分なファイル
を簡単に消す方法が知りたいです。
>>565 わかんないけど
rm -r *
git checkout v2.6.32.46
とか?
おれは心の中では、ギラハブ
>>567 うお、それそれ。これが見つかんなくて、
>>566 と同じ事してて、
kernel treeだと、3万ファイル以上 checkout するんで
遅くて嫌になってたのよ。
助かったよ、ありがとう。
でも、
>>530 じゃないけど、コマンドとオプション多すぎっつか、
逆引き git マニュアルとか欲しいよね。
ありゃ、ちょっと興奮して言葉遣いが荒くなってしまいました。
>>567の回答で助かりました。ありがとうございます。
git cheat sheet でぐぐって和訳して首吊って生き返れこんちくしょう
無罪!
addで追跡を開始したファイルの追跡をやめるにはどうすればいいでしょう。
ファイルを削除することなしで。
あ。すいません。すでにcommitされていてindexの中だけでなくリポジトリにも記録されてしまっているファイル
についての話です。
git rm --cached
gitむずい
新しいブランチを作ってリモートリポジトリに登録するには、これでいいの?
## ローカルブランチを作成
git co -b newbranch
## リモートブランチを作成
git push origin newbranch
## ローカルブランチとリモートブランチをひもづける
cat > .git/config
[branch "newbranch"]
remote = origin
merge = refs/heads/newbranch
^D
だれか助けて
>>576 git push -u origin newbranch
MAJIRESU
多重管理できないSVN厨は trunk を物故わしてばっかり
580 :
デフォルトの名無しさん:2011/11/09(水) 23:52:17.86
なにこれ
svnみたいな集中型で、コミット権の無いリポジトリから改造版をつくろうとしたら
自分専用のリポジトリを使ってそこにソースコードをエクスポートして、改造版は別ブランチで管理するとか
そういう2重管理地獄に陥る
そうしてできた派生版リポジトリの変更を取り込もうとしたら
またソレ用のブランチ作ってそこにソースコード入れて・・・と3重管理4重管理の地獄行き
GitとかMercurialみたいな分散型なら自分用ブランチ作って、
本家の変更をマージ(リベース)するという形で管理できるのでより簡単
派生版の変更も同じようにマージできる
ディレクトリやファイルがたくさん含まれている中で、ただ1つのファイルだけを追跡したいのだが、
毎回ステージされていないファイル一覧が出てきて嫌だ。
目的のただ1つだけのファイルの他は全て無視するようにするにはどうすればいいだろうか。
583 :
デフォルトの名無しさん:2011/11/15(火) 02:20:00.42
.gitignoreに
/*
/.*
!/追跡したいやつ
1・2行目で全部無視にして、!付けて除外。
ありがとうございます。
.gitignoreファイルと、.git/info/excludeファイルはどのように使い分けていますか?
Gitによるバージョン管理は良い本だな
開発ストーリーに沿ってコマンドを紹介している章があって、理解しやすい
また新しいのが出たのかw
やっぱりみんな分かりにくいと思ってるんだよ
年に1冊ペースで本が出るのを「また」と称する感覚がよくわからない
ROM販売でいつ使ってもバージョンが固定されてるってわけじゃないし(Git2010とか)、
忘れ去られてない感じでいいじゃないかと思うんだが
cvsやsvnはこんなにたくさん出てないだろ
>>589 ちょっと検索したけどSVNの日本語の本は8冊出ている
git svnでcloneして、色々書いてdcommitしたいんだけど、
その間適当なコメントでローカルにコミットしてたから、svnのlogには適当なコメントは反映させたくないんだ
どうしたらいい?
別ブランチ作って--squashでもすれば?
>>592 master は svn 追跡専用と割り切れ。
貴様 branch の上でせっせと禿んで dcommit の直前で squash.
dcommit 終わったら貴様 branch を rebase.
慣れたら branch 上でも svn dcommit を意識したコミットができるようになるってば。
596 :
忍法帖【Lv=8,xxxP】 :2011/11/17(木) 00:00:53.17
「高橋 麻奈 やさしいGit 」
まだ〜?
Software Design 2011年12月号
http://gihyo.jp/magazine/SD/archive/2011/201112 第2特集
まだSubversionで大丈夫?
イケてるGitの使い方
[Git×Subversion&Redmine]
第1章:SVN使いのための
Git入門……岡本 隆史
第2章:git-svnによるSVN包囲戦[戦支度編]
ローカルGitでSubversionを攻略せよ……川西 俊之,正徳 巧
第3章:git-svnによるSVN包囲戦[実戦編]
ローカルGitでSubversionを攻略せよ……川西 俊之,正徳 巧
第4章:RedmineによるGitリポジトリ包囲戦
プロジェクト管理ツールでGitをパワーアップ……岡本 隆史
岡村隆史と空目した・・・。
gitを使い続けていると精神が病むということ
>>598 Git×Subversion なんだな
Subversionのリポジトリで受けるの?
職場がsvnなんで、git-svnで自分だけgit使っているのですが
msysgit内蔵のsvnだと1.4.6でバージョンが古すぎてエラーになる
cygwinのgitだとsvnが1.7.1なので、新しめのsvnサーバーにもアクセスできるのですが
処理が遅すぎるのが微妙
vmwareでlinux起動してそこからgit-svnしたら安定して動くのですが
バージョン管理するためだけに仮想PC起動するのもだるい
git-svn使ってる人、みんなどうしてる?
git-svn 絡むときは windows ホストに git-svn させないようにしてるなあ。
作業領域からインデックスへのコミット
インデックスからローカルリポジトリへのコミット
ローカルリポジトリから中央サーバーへのコミット
の3重管理じゃねえかwgitユーザーって馬鹿じゃないのwww
頭悪そうな発言だ
ツールは使う人の能力次第
Gitは多重度次第w
ビンタワリー
インデックスとかイラネだろ
インデクスはジャマだなーと思うことがある俺ガイル
歴史的には必要だっただろうけど
Gitのインデックスは後付けだが大発明だった。
インデックス使わないでどうすんの。
なんで中央のリポジトリを直接いじることをそんなに怖がってるんだろう
みんなで中央をどんどん更新していって間違いが入ったらすぐ直せばいいだけじゃん
中央に間違いが入らないようにするために3重管理地獄を選ぶとかどうかしてるぜ
作りかけはリポジトリにぶち込むか自分でtarでバックアップするかの二択
三重管理地獄とやらとどっちがいいのかね?
あ、もしかしてLinuxは全ビルドに何時間もかかるからってことなんかな
だったら小規模なソフトウェアでgit使ってるやつは馬鹿ってことになるな
>>614 小規模ソフトは身の程をわきまえてCVSってか?
お前に何を使えとか強要されたくないわ
>>612 そういう発想だから理解できないんじゃないかと思うが? 中央のリポジトリを触るのが怖い訳ではないと思うぞw
617 :
デフォルトの名無しさん:2011/11/19(土) 16:25:19.93
え?
馬鹿には無理
,. ' ´  ̄ ̄ ̄ ̄ ̄ `ヽ、
/ / \
/ / \
/ /―――――――――イノ
/ /: : : : : : : : : : : :| |
,' ,∠ __________/ |
| <__:.:.イ:.`メ、/|:/ |:./\レ:.:.〈 |
ノ! |/リレ',ィrそド"´ レ ィチxV:.!:.V}
/| /!:.:.! 〈. トzリ トzリ }:!::Nリ
/ /ソ:.:.i xx`¨´ , `¨x{:从 }
/ //|:.:.込、 /:.|.ハ∧
/ /厶|:.:.|\ ヽ、 r つ ,. く:.:.:! ∧ ヽ
/ / |:.:.|::::::> ミ 、 <} |::.:| ヽ. }
/i 〃 レ‐‐く\  ̄´ /::! !:.:<フ二ヽリ
./ // / /⌒く:\ イ:::::| |:. 厶--、 }
/ / ( /,. ┤:::::ヽ /::::::| |:.厶--、 /
620 :
デフォルトの名無しさん:2011/11/19(土) 17:00:59.05
君じゃない。
>>611 hgにはインデックスとかないけど、拡張のmqとrecordがあれば特に困らないし
>>612 だから中央のリポジトリはコミットするのに査閲・承認が必要なんだって
あと管理表にない変数名を新規に定義することは許されないから
コミットする前に開発チームでローカルに命名した変数を
管理表にあるフォーマットに変換するリファクタリングのフェーズが必要だし。
おれも最初インデクスたん要らないしメンドクセーなとおもったが
git使い慣れたらこれの有り難みがわかった。
git嫌いな奴に無理にgit使えとは言わんから、わざわざこのスレ来て
ディスるのやめてくれませんかね。
SVNスレで勝手にSVNマンセーしててください。二度と来るな
>だから中央のリポジトリはコミットするのに査閲・承認が必要なんだって
運用ルールの問題ジャン
git使っても同じことだろ
>>625 でもチーム内リポジトリをsvnでつくろうと思ったら結構な手間だよ。
いや、作ること自体は簡単だけど、チーム内と中央のリポジトリの整合をとるのが手間か。
チーム内リポジトリとかいらね
何で2重管理が前提条件になってるんだよ
直接中央コミットで問題起きたら即修正でなんら問題ないだろ
チーム内のはマイナーフィックスしたいときに容赦なくできるから便利ってことじゃないの?
で、メジャーフィックスを中央にコミットする。
>>627 >直接中央コミットで問題起きたら即修正でなんら問題ないだろ
でかい開発したことないだろ。
ちょっとした規模の開発でそんなことしてたら、収拾つかんぞ。
そもそもそうそう問題なんか起きないし
リポジトリ上のプログラムは常にビルドが通るようにしておくのが基本だろ
そんな簡単なこともgitユーザーはできないのw?
>>630 > そもそもそうそう問題なんか起きないし
小さい規模しかやったことがない奴の意見乙。
>リポジトリ上のプログラムは常にビルドが通るようにしておくのが基本だろ
ビルド通るだけでいいと思ってるのが君の想像力の限界なんだな。
Hello Worldしか書いたことないんじゃね?
Hello Worldの管理にはsvnがおすすめですよ^^
大規模ってどのくらいの規模のことを言ってるか分からんが
君らの言い分じゃ大規模開発じゃなければgitを使う利点ないわけね
svnは大規模にも小規模に使えて
gitは大規模にしか使えないうんこw
インデックスに登録するのは初めの一度だけで、あとはgit commit -all使えばいいだけなのに、
何をそんなに騒いでいるのか分からないなぁ。
>>627 いや、だから、何度も言うとおりコミットに査閲と承認が必要な環境があるんだよ
git使ったらコミットに査閲と承認が必要なくなるのかって。
それは運営方法の話だろ
バージョン管理システムの話してるんだけど馬鹿なの
TortoiseGitの1.7.5.0が出てた
もうバグが増えないといいな
チーム内のソース共有とかコードレビューの時にコミットが必要になるだろ
そんな時いちいち承認とかしてられないだろ
で、チーム内ローカルのリポジトリがあって、ひと通りのレビューが終わってから中央リポジトリにコミットすれば楽だろ
そういう時にチーム内ローカル→git 中央リポジトリ→svnだと管理が楽なんだよ
ローカルリポジトリをsvnにしてしまうと中央リポジトリへの反映が大変だし。
本当は中央リポジトリもgitにしてもらうか、承認を簡単にしてもらうほうがいいんだけど
中央は発注元だしあちらさんの社内文化を変えてもらう労力のが大変で、
gitの二重管理で自分たちだけ防衛したほうが工数少ないでしょうとかそんな色々な理由。
Git していろ
SVN使いは、ビルド通らないソースをコミットするカスや
作業コピー以外で編集して他人のコミットを先祖返りさせるボケが
いるから嫌いなんだよな
ソース管理スキルに関していえば
Git使い>>>(越えられない壁)>>>SVN使い>フォルダコピー使い
それだけ広く素人にも使われてるってことだろ
gitがsvnを超えて普及すれば同じ事言われるよ
母数がDebianのパッケージマネージャって時点で、お前の言うカスやボケが含まれると思うか?
647 :
デフォルトの名無しさん:2011/11/20(日) 09:42:36.39
DebianはUbuntuとの2重管理のうんこ
>>645 インストールされていることと、使われていることの区別も付かんのか。
>>648 gitはインストールされているけど、使われていない、使えないのですね。わかります。
>716 :デフォルトの名無しさん [↓] :2011/11/20(日) 08:53:00.84
>コミットA→コミットB→コミットC
>
>上のコミットBに間違えてfoo.txtをaddしてコミットしまって今すごい周りに迷惑かけちゃってまして
>なんとかfoo.txtを自分のローカルのsvnの管理対象から除外して
>新しいコミットDからはfoo.txtがなかったようにしたいのですが、
>この場合どうすればいいんでしょう。。
svnユーザーの現実
A,B,Cで3重管理してるのがそもそもおかしい
>>639 それよりmsysgitのsvnが古いのを何とかしてほしい
svnが1.7で互換性をブチ切ったりしなけりゃ古いままでも問題なかったんだが
無料RPG製作ツール「ロープレジェネレーター」
直感的操作で簡単なゲームが作れます。 簡単に配布可能な状態に出力する
ことができます。(HSP製のソースコード付きで、スクリプトの知識があれば
自由度の非常に高いカスタマイズができます)
他にも仲間預かり機能(100人も)や、仲間の状態/状態異常を細かく設定
できたり、乗り物が作れたり、ゲーム中に画像を差し込んだり、回転や
フラッシュなどのエフェクトなんかも簡単に作れる様です。
移動は矢印キーの他に、キャラがマウスを追っかけたりするとのこと。
戦闘はデフォだとドラクエ系。
・次期バージョンのロープレジェネレーター2.00アルファ版2を公開しました。(2011/10/29)
>>651 >A,B,Cで3重管理してるのがそもそもおかしい
3重管理?
Gitで多重管理とかって何のこと指してんだろ
もはや多重管理言いたいだけちゃうんかと
そもそも分散リポジトリ使ってて、めんどくさいと感じたことなんかないんだが。
むしろ馬鹿が中央リポジトリにヘンなのコミットしても
自分とこだけは一時的に防衛できるので作業効率よくなった
うるせえ、「重管理」NGワードにすっぞ
>>658 してなかったのかよ、NGワード多重管理君。
もちろんもはやn重管理はネタだろ。
NGワード指定するほどレスないだろ、この板。
Linuxのカーネルとかだと100重管理ぐらいいってるかな?w
663 :
デフォルトの名無しさん:2011/11/20(日) 21:46:50.54
ぐしゅぐしゅ。
発狂しそうなパッチ・版多重管理をこなせたのがBKで
それの跡を継いだのがGitだろ?
ただ、CVS/SVNを経験してGitに慣れたヤツがSVNに戻れるか? と言われたら
例外なく戻れないだろう。反例求む。(SVN反Git厨は釣られないように)
周りに合わせざるを得ないので svn はまだ使ってる
git svn は糞なので使えない
戻れるかと言ったら普通に戻れるけど、利点はないな。
強いて言えば日本語の対応とか。
戻るメリットっていったら、日本語ファイル名が正しく使えることくらいか
あとはWindowsで使うときにはSubversionのがすこし安定してる気がする
しかしそんだけのために戻る気はしないな
たすけてください
git commit -m "test"
で間違えてコミットしてしまったのを取り消したくて
git revert HEAD
としたのですが
取り消しを取り消したい場合はどうしたらいいのでしょうか?
git revert HEADの後ににファイルを編集したので
もう一度コミットするとおかしくなってしまいますのでたすけてください
とりあえずdiffとっといてgit reset --hardで、問題ないとこまで戻るとか
状況はわからんけど、やりようはいくらでもありそう
ProGitみたいな親切なドキュメントあるのに読まない奴ってなんなの?
管理の仕方についてアドバイスお願いします
C:\sourcecode\python
C:\sourcecode\ruby
C:\sourcecode\perl
とあります
これら言語別にフォルダ分けがされており、フォルダの中にもまたプロジェクトごとにフォルダが分けられてます
C:\sourcecode\python\helloworld
C:\sourcecode\python\mywiki
C:\sourcecode\python\mycms
こういう場合リポジトリを作成する場合は
コマンドプロンプトでC:\sourcecodeをカレントディレクトリにしてgit initをするものでしょうか?
それとも書くプロジェクトごとにgit initをするものでしょうか?
>>668 git revert HEAD をもう一度。
という身も蓋もない回答は置いといて
git log とか git reflog して、戻したい場所を見つけたら
git reset (所望のsha1)
git reset が怖かったら
git checkout -b tekitouna_ichijitekina_branch (戻したいsha1) だ。
俺はこの手合いの作業は detached branch 上でやっちゃうけどなw
>>671 全部まとめてひとつのリポジトリにしてしまうのが、さしあたっての管理は楽。
git-submodule という機構もあるが、初心者が使うとぜったい事故る。
>>664 mergeしない・branchしないってわかってる用途限定ならsvnに戻れる
他に大きな理由がなければ戻りたくはないが
リモートリポジトリからファイルを取得するときに
git clone C:\test\. ってやってるんですが
ローカルのディレクトリに一つでもディレクトリやファイルがあるとエラーになるので毎回ローカル側のファイルやディレクトリ(.gitも含む)を消してからcloneを実行してます
こういうものなんですか?
676 :
デフォルトの名無しさん:2011/11/21(月) 16:39:04.24
それfetchとかpullとかするところ。cloneは初回だけ。
>>675 そんなものではない。
git clone した後は、簡単な場合 git pull とか git fetch & git merge で済む。
(ついでにいうと pull とか fetch はそれなりに速い)
git clone C:\test\. って git clone (URL) C:\test\. の間違いだよな?
>>676 いろいろコマンドがあるんですね
ちょっとその単語で練習してみます
>>677 すいませんcdを載せ忘れました
本来は
cd C:\local
git clone C:\test\.
です
>>664 commit もしない、ローカルでの変更もしない、だったら戻れなくもないが俺何か道を間違えてるよな。
>>674 svnでbranchしたら二重管理になっちゃうだろ!
681 :
デフォルトの名無しさん:2011/11/21(月) 18:15:31.26
682 :
671:2011/11/21(月) 22:19:49.69
>>673 間違えてへんなことして全部まとめて逝ったら困るので最初は分けて管理して見たいと思います
リモートリポジトリ (Dドライブ)
D:\sourcecode\python
D:\sourcecode\ruby
D:\sourcecode\perl
ローカルリポジトリ (Cドライブ)
C:\sourcecode\python
C:\sourcecode\ruby
C:\sourcecode\perl
MSDOS上からやったこと
cd D:\sourcecode\python
git --bare init
cd C:\sourcecode\python
git init
git add .
git commit -m "1"
git push D:\sourcecode\python master
git remote add origin D:\sourcecode\python
とやってpython用のを作りました,ruby用とperl用も同じようにして作りました
ここで疑問なんですが
git pushってやるとローカルリポジトリのデータがリモートリポジトリに反映されますが
これはgitを実行したカレントディレクトリを見て、どこにpushするか自動判別しているのでしょうか?
例えばpython用のところでgit pushってしたらperl用の所にpushされてしまうってことはございませんか?
git remote -v ってやってみろ
remote が remove に見えた。セフセフ。
685 :
671:2011/11/22(火) 11:31:56.18
あれ?pythonのフォルダでgit remote -vってやったら
origin D:\sourcecode\python (fetch)
origin D:\sourcecode\python (push)
って出ました
rubyとperlでもやったらちゃんと別々になりました
gitってどのカレントフォルダでコマンドを実行したかで自動でpush先を選択してくれるんですね!
今までバージョン管理って怖くていつもzipで全部固めてたんですが(サイズが832MBぐらい)
git使うとHDDの寿命も延びそうだし楽なのを覚えました
.git/objects以下ってコミットするごとにファイル増えていくと思うんだけど、
どの位まで性能でるの?
688 :
デフォルトの名無しさん:2011/11/25(金) 22:19:44.08
復帰
subversionからgitへ移行しています。
ちょっと解らないところがあるので教えてください。
webアプリを開発していて、開発用ブランチと本番環境用ブランチを作成して作業しています。
開発用ブランチに開発用のコード(DB設定やデバッグ用コード)を記述したとき、
subversionでは merge --record-only を使用してそのコードが本番環境にマージされない様にしていました。
git の場合はどのように処理すればいいのでしょうか?
今は本番環境にマージするときに --no-commit を指定して手作業で開発用コードを削除しているのですが、
本番環境から開発環境へマージするときに、今度は開発用コードが削除されます。
いい手があればアドバイスいただけませんか。
>>689 db設定やデバッグ用のエラー出力on/offとかは
アプリケーションの設計時に一つのiniファイルかなんかにまとめるようにしてignore
その他の実験用コードは開発用ブランチからのブランチで隔離実験ってのが基本じゃないですか?
>>689 Subversionの「マージ」という言葉を忘れよう。
あれはマージとは言わない。
Gitで言う所のcherry-pick。
Gitのスマートなマージが理解できたら、自然と運用ルールが定まるだろう。
>>689 環境設定はテンプレだけコミットしておいて実行環境に合わせて別のignoreするファイルに
追い出しておくのがいいと思う。それかコミットする環境設定ファイルは常に本番用に保って
おいて各自はデプロイで上書きするとか。
どこかの開発環境の設定でコミットとか、人によっては激怒するぜ。。。
あとsvnってmergeinfoとかいうのが出来たのか。svkみたいなもん?
693 :
689:2011/11/28(月) 17:01:46.95
アドバイスいただきありがとうございます。
subversionと同じような運営の仕方はできないのですね。
iniファイルの仕様変更とか入ったときに管理しやすいし、
設定項目が多い場合なんかは便利だったんですが。
> どこかの開発環境の設定でコミットとか、人によっては激怒するぜ。。。
ブランチ切って merge --record-only しておけば、
それを防ぎつつ設定ファイルまで管理できてたんです。
> あとsvnってmergeinfoとかいうのが出来たのか。svkみたいなもん?
svk見たいな外部ツールとは違い、標準で組み込まれた機能です。
マージしたときにどのリビジョンをマージしたかがプロパティに記録されるので、
次回マージするときにマージ済みの分は自動でスキップされます。
>>693 本番環境から開発環境へのマージはどういう変分を反映させることを期待しているのだろう?
695 :
689:2011/11/29(火) 17:48:42.12
>>694 開発環境でのテストでは問題なかったのに、
本番環境へ持っていったら動かなかった場合、
本番環境上で直接修正を行う場合があります。
あとは、客先の担当さんが直接変更を加える場合があるので、
それを取り込む場合があります。
その場合、本番ブランチに一旦コミット後、開発ブランチへマージ、
機能修正等を行ったあと本番ブランチにマージといった流れでやってます。
>>695 Gitスレで運用の話をしても満足する回答はないよ。総合スレ行ったら?
Git/Mercurial/BazaarはDAGだから、Subversionと同じ感覚だと違和感があるよ。
それこそ
>>664のようにSubversionに戻れなくなるから。
なんかデスマテンプレートみたいな運用だな
確かに本番だけ動かん、というケースは存在するし、
結果的にぶっつけで本番直すことあるが、
根本的に手順が間違ってる。
スレチすまん。
>マージしたときにどのリビジョンをマージしたかがプロパティに記録されるので、
>次回マージするときにマージ済みの分は自動でスキップされます。
いつの間にかsubversionのマージも進化してたんだな
俺が使ってた頃はリビジョン範囲指定しなければならなくて
使いづれーなっておもってた
調べてみたら各フォルダにsvnができるのも改善されたんだな
>>693 開発ブランチから本番ブランチへは cherry-pick、
その後開発ブランチで本番をマージ。
もしくは開発ブランチでrebaseしてマージで持っていきたくない
履歴を先頭に追いやる。
てか何でろくにドキュメント読まずに移行しようとするんだ。
「svnのように」使いたいなら無理せずsvn使っとけば?
>>695 >451のリリースブランチってのを参考にするとよい。
svnで本番ブランチに直接コミットすることが間違っているとは思うが。
>>699,700
>451のモデルと合わせて考えれば
・開発ブランチからリリースブランチを作るときにcherry-pickでリリース対象のコミットだけ分離
・本番ブランチへリリースブランチをマージするときに開発ブランチへもマージ
で目的を果たせそうだな
一度除外したデバッグコミットは次のリリースからは含まれないし、デバッグコミットのログルールを決めておけば、cherry-pickも自動化出来そう
>>701 ほんとにクソみたいなデバッグログは add -p で除外して stash に溜め込むか、
デバッグのコミットを一個作って rebase してる。
あんま激しくなってくると rebase でコンフリクトしちゃんだけどね。
閑古鳥がないてますなあ
いまのバージョンでも十分安定してるし、機能不足も感じないから
話題がないか
普通に使えてるし特に言うことないな
外注先の奴らに使わせるには日本語がまともに使えることとGUIが必要だな
706 :
デフォルトの名無しさん:2011/12/10(土) 09:57:42.87
SCM のために、慣れないなんちゃって英語でバグ作りこまれた上に
レビューもろくろくできなくなるなんて愚を犯す奴は馬鹿でしょ。
>>707 日本人のレビューアーが馬鹿なだけでしょ。
インド人は英語うまいよ。
ここは、日本で発注者も日本人だって客に言われたら、
SCM の都合でできませんって答えるのか?
馬鹿だろ。
710 :
デフォルトの名無しさん:2011/12/10(土) 10:43:30.68
gitが使えない外注先が淘汰されるのに何が問題なわけ?
問題の理解力もないところの人でしたか、それは失礼。
まあ、せいぜい git で遊んでてください。
分散型普及の壁になっているのは外注より元締め。
開発者は今でもgit-svnとか使っている。
>>711 コミットログは日本語使えるし、GUIはEclipseとか揃っているし、
日本語が問題になるのはWindowsのファイル名だけでしょ。
これのどこが問題なわけ?
>>713 >日本語が問題になるのはWindowsのファイル名だけでしょ。
>これのどこが問題なわけ?
自分で「問題になるのは」って書いてて、「どこが問題?」って頭おかしいのか?
>>714 Windowsのファイル名が問題になるのだったら、それまでのプロジェクトが問題であって、
その問題を解決すれば問題にならない。
だからお客さんの都合だとどうしようもないだろって書いてるんだが、
やはり理解力が相当足りないみたいだな。
windows のファイル名に日本語が使えないと致命的に駄目
>>716 お客さんが日本語ファイル名ファイルをscmで管理するように要求しているのか?
ならば、そのファイル名ファイルだけ、日本語ファイル名で問題無いと思われているscmのままにしておけば良いじゃないか。
それ以外のところはgitに移行して何ら問題ないわけだ。
git のために、別々に管理しろって?
構成管理理解してない馬鹿のたわごとだな。
>>719 svnのように全部一ヶ所にまとめろって?
危機管理理解していない馬鹿のたわごとだな。
Bazaar の出番ですね。
そもそも受託開発なんて底辺仕事なんざ興味ねぇよ
底辺は勝手にやってろよ
受託開発の底辺はsvnの一元管理で悶えて市ね
多重管理地獄で悶えて氏ね
>>720 >危機管理理解していない馬鹿のたわごとだな。
別地保管も知らんのか...。
git だと分散だからと言ってバックアップもイラネーとか言い出したりしてな。(w
>>722-723 はいはい、こんな馬鹿なところじゃ受託すらできんわな。(w
>>725 危機管理=バックアップだという認識なのか、おめでたいな
>>725 > 別地保管も知らんのか...。
svnで別置保管がどうすれば可能なのか教えてくれ
>>725 > git だと分散だからと言ってバックアップもイラネーとか言い出したりしてな。(w
hgだと要らないね。落ちた前スレで議論されている。
gitの場合、ブランチを消せるから全く要らないわけではないが。
>>726 >危機管理=バックアップだという認識なのか、おめでたいな
じゃあどういう意味か書いてみな。
>>727 適当なデータセンタに電話して聞いてみればいいと思うよ。
うちは、支社があるから自社でやってるけど。
>>728 > hgだと要らないね。
まだ、こんなこと言ってるアホがいるのか...。
>>729 >
>>726 > >危機管理=バックアップだという認識なのか、おめでたいな
> じゃあどういう意味か書いてみな。
Linusがsvnを叩いた講演。
どこかの馬鹿が馬鹿なコミットをすることを防ぐこと。
>
>>727 > 適当なデータセンタに電話して聞いてみればいいと思うよ。
> うちは、支社があるから自社でやってるけど。
svnだとデータセンタが必要なわけね。
分散型ならそんなの必要ない。
>
>>728 > > hgだと要らないね。
> まだ、こんなこと言ってるアホがいるのか...。
アホはおまえだ。
hgは全リビジョン同期でリビジョンの削除はしないから、
同期されていれば、バックアップなど必要ない。
>>730 >どこかの馬鹿が馬鹿なコミットをすることを防ぐこと。
まともな運用もできていない組織だとツール側で必要なんだろうな。
>>727 >分散型ならそんなの必要ない。
結局複数サーバーで管理するってことだろ?
まさかとは思うが、ローカルにあるからいいジャンとか本気で言ってそうだな。
>>728 >同期されていれば、バックアップなど必要ない。
管理者のミスとか SCM 自体のバグとか考えたこともないんだろうな...。
素人乙。
>>731 >
>>730 > >どこかの馬鹿が馬鹿なコミットをすることを防ぐこと。
>
> まともな運用もできていない組織だとツール側で必要なんだろうな。
外注先、オフサイトで馬鹿なコミットされるの防ぐために、
わざわざコードレビューしに出張するわけか。
高コストなこと。
>
>>727 > >分散型ならそんなの必要ない。
>
> 結局複数サーバーで管理するってことだろ?
> まさかとは思うが、ローカルにあるからいいジャンとか本気で言ってそうだな。
分散型にサーバという概念はありませんが?
>
>>728 > >同期されていれば、バックアップなど必要ない。
>
> 管理者のミスとか SCM 自体のバグとか考えたこともないんだろうな...。
> 素人乙。
gitにバグがあったらLinuxはこの世に存在していないけど。
分散型の管理者って誰?
git/hgはリポジトリフォーマットはほとんど変わっていないけど、
その論理だと、リポジトリフォーマットが頻繁に変わるsvn/bzrなんか使ってられないね。
>>732 >わざわざコードレビューしに出張するわけか。
TV会議システムもない職場乙。
>分散型にサーバという概念はありませんが?
まさかの方だったな。(w
>gitにバグがあったらLinuxはこの世に存在していないけど。
今までがよかったからこれからも大丈夫って言うわけね。
笑うしかないが。
>その論理だと、リポジトリフォーマットが頻繁に変わるsvn/bzrなんか使ってられないね。
意味不明。
>>733 > TV会議システムもない職場乙。
TV会議システムがないと品質も保証されない職場乙。
> >gitにバグがあったらLinuxはこの世に存在していないけど。
> 今までがよかったからこれからも大丈夫って言うわけね。
> 笑うしかないが。
大丈夫。
分散型を理解していないみたいだからこれ以上説明しても無駄みたいだけど。
それよりもsvnの将来心配したら?
> >その論理だと、リポジトリフォーマットが頻繁に変わるsvn/bzrなんか使ってられないね。
> 意味不明。
svnのbdbが壊れやすかったって知らないのね。
svn1.7でまた変わったんじゃないの?使ってないから知らないけど。
バージョンアップしたら過去のバックアップが使えないんだったら、
バックアップの意味ないけど。
>>734 >TV会議システムがないと品質も保証されない職場乙。
ひょっとして貧乏会社なの?
最近結構まともな奴が安いから入れたら?
>大丈夫。
それは、よかったな。
まあ、ビジネスに使ってないこと祈るよ。
>svnのbdbが壊れやすかったって知らないのね。
そうだね、壊れやすかったな。アホが使うと。
申し訳ないが、うちでは壊れたことはないよ。
そもそも今時 bdb なんて使ってないし。
>バージョンアップしたら過去のバックアップが使えないんだったら、
>バックアップの意味ないけど。
馬鹿は bdb は知ってるのに svndump には思いが至らないらしい。
まあ、よくいる中途半端な知ったかなんだろうな。
>>735 >
>>734 > >TV会議システムがないと品質も保証されない職場乙。
>
> ひょっとして貧乏会社なの?
> 最近結構まともな奴が安いから入れたら?
日本人は欧米とTV会議するため毎日夜勤ですか。
お疲れ様です。
>
> 馬鹿は bdb は知ってるのに svndump には思いが至らないらしい。
> まあ、よくいる中途半端な知ったかなんだろうな。
あなたのその理屈だと、そのsvndumpにバグがあったらどうするの?
svndumpが動いていると信じていたら実は取れていませんでした、
ってそれこそ管理者のミスを心配しないと。
なんか盛り上がってるところ水を差すようだけど
野良パッチ使えばwindowsのgitでも日本語ファイル名使えるんだけどね
GUIしか使えないとかいう馬鹿を除けば、現状で全く問題ない
>>737 野良パッチどころか、msysgitはutf-8対応に向けて驀進中です
>>736 >日本人は欧米とTV会議するため毎日夜勤ですか。
必死に考えたんだね、お疲れ。
まあ、普通に定時間内にできてるから、心配しなくていいよ。
>svndumpが動いていると信じていたら実は取れていませんでした、
>ってそれこそ管理者のミスを心配しないと。
バックアップ取ったら、リストアのテストするのは常識なんだが...。
>>739 > >日本人は欧米とTV会議するため毎日夜勤ですか。
> 必死に考えたんだね、お疲れ。
> まあ、普通に定時間内にできてるから、心配しなくていいよ。
日本人は深夜が定時間か。
24時間営業のファミレス・マクドナルドのような勤務体制なわけだ。
> >svndumpが動いていると信じていたら実は取れていませんでした、
> >ってそれこそ管理者のミスを心配しないと。
>
> バックアップ取ったら、リストアのテストするのは常識なんだが...。
バックアップ・リストア、そのテストと、凄い高コストだ。
>>740 >日本人は深夜が定時間か。
正直君がかわいそうになってきたよ。
自分で書いてて恥ずかしくない?
>バックアップ・リストア、そのテストと、凄い高コストだ。
まあ、必要なコストだからね。
そもそもこの手のコストが高いと感じているってことは、
他もいろいろ手を抜いているんだろう。
たぶん素人さんだと思うけど。
普通に質問なんだけど、みんなレポジトリのバックアップってどうとってる?
>>741 svnを使っている所は分散型で必要ない膨大なコストをかけている
ボッタクリだってことが分かったから、今度から発注することはやめるよ。ありがとう。
>>743 はいはい、こういう脇の甘い馬鹿なところから受注するのは実はおいしいんだが、
疲れるのも事実だから、今後は是非そうしてくれ。(w
githubに上げてる
盛り上がってますね
他人と共同で作業する為に中央にリポジトリ作る時点で分散型でもなんでもない単にリモートとローカルで2重管理してるだけw
スレの流れがよく読めんのだが
ソースコード(C#やJava)とかDBファイル(.sqliteとか)の名前に日本語使うのはよくあることなのか?
底辺とか事実を指摘するもんだから発狂しちゃっただろ
>>751 無いよね。だからドキュメント類だけsvnとかに置けば良いと思う。
エクセルとかパワポとかどうせマージできないしね。
定期的にfetchしとけばバックアップとしてはいいのかな?
あれ、トラックしてないブランチはfetchされない?
諦めるのは底辺の仕事しか無い自分の人生では?
底辺に馬鹿にされてる君の人生って...。(w
君って何人?この板は連投規制があったはずだけど。
自分の胸に聞いてみればわかるんじゃない?
自分の胸に聞いてみた。svn使いは馬鹿だって言っていた。
それはよかったね。(w
svn で満足できるなら git 使える人達をうらやましがってこのスレを荒らさずに自分の領分で満足してればいいと思う(´・ω・`)
msysGitがUTF-8対応するなら、もうsvn使うメリットは皆無だな・・
ループするたびに底辺とバカにされるsvn使い可哀想
>>765 Git-1.7.7.1-unicode-20111202
Git-1.7.8-preview20111206
上の二つ試してみたけど、特に改善しているように思えないなぁ
git config core.quotepath false
しても文字化け状態で表示される
windowsの場合コンソールがSJIS使うようになっているから
そっちも設定をいじる必要がありそう
770 :
769:2011/12/11(日) 01:34:55.76
コマンドプロンプトからはフォントをMSゴシックに変えて
chcp 65001したら日本語ファイル名いけるようになった。
bashのほうからも同じことをやったがこっちは
フォントが強制的に日本語含まれないフォントに変更されて
使えないようだ
gitで秒単位とかでファイルの変更箇所のログを取ることはできますか?
>>771 gitはそういうツールじゃない。
というかその手段自体があまりよろしくないように見える。
それでもやるならスクリプトでどうぞ。
ファイル改竄検知ソフトウェアあたりの仕事な気がする
git initすると.gitがつくられますが、
これを別の場所に置くことは出来るのでしょうか?
>>774 --separate-git-dir=<git dir>
はいはい
780 :
778:2011/12/12(月) 21:09:57.78
Gitスレに誤爆してしまった。
bitbucketは、個人も5人までのチームも、無料でプライベートリポジトリも含めて容量制限無しなんで、
ぜひ使ってくださいね♡
>777はsvnスレに張らなくて良いのかね?
Mercurialに続きGitもUnicode対応になるのか。胸熱だな...
あとはrename問題が解決すればGitで何の不自由も無くなるのに
>>771 ひょっとして git blame とかかな?
コミット単位だけど秒も出ているといえば出ている。
GITは自分一人が使う分には全く問題ないが、この複雑なコマンド体系を
チームメンバー全員が使いこなせるとは到底おもえないのがネックなんだよな・・
HGはそのへんSVNライクだし、SVNユーザーが移行する分には生涯なさそうだが
正直Hg使うくらいならSVNで十分だろって議論もあるしブツブツ・・
>>783 > 正直Hg使うくらいならSVNで十分だろって議論
さすがにそれはない
よく使うコマンドってなんですか?
git init
git add
git commit
git clone
しか知らないんですが、全てを覚えるのはきついので最低限覚えておくべきコマンドを教えてください
その4つで困ってないならお前にとって必要なコマンドはその4つだろ
お前がそう思うならそうなんだろう
お前ん中ではな
788 :
785:2011/12/13(火) 15:40:43.34
789 :
デフォルトの名無しさん:2011/12/13(火) 15:42:18.00
こうしてclone厨が生まれるのであった
git status
git branch
git checkout
git merge
git mergetool
git pull
git push
これらと
>>785のコマンド以外を使うときはマニュアル見てしまう
791 :
デフォルトの名無しさん:2011/12/13(火) 20:52:02.85
rebase -iを堪能しないとgitの意味がない(個人の見解です)
俺的にはadd -pだな
git reset なしで生きられない俺は間違った使い方をしているのだろう
1日に何度もgit pullしちゃう
795 :
デフォルトの名無しさん:2011/12/13(火) 21:30:18.30
最近pullよりfetch && rebaseだなー
add
↓
commit
の流れでバックアップして、最新のバックアップが欲しいときにcloneしてるけど
このやり方で合ってますか?
797 :
デフォルトの名無しさん:2011/12/13(火) 21:49:14.44
こうしてclone厨が生まれたのであった
798 :
デフォルトの名無しさん:2011/12/13(火) 23:26:41.52
リポジトリの複製が欲しいならcloneでいいが、
ある時点のスナップショットのアーカイブが欲しいだけなら git archive
リポジトリをgithubからbitbucketに移行したいんだけど、やり方が分からない。
.git/config を書き換えるだけでいいのかなあ。
だれか教えて。
>>795 git-pull --rebase じゃダメな領域? tracking branch じゃなかったらたしかに rebase は別途やるな、俺も。
俺ブームは detached branch での作業あんど detached branch(要はsha1)に対する rebase.
最近は git pull より git pull --reabese 使おうぜってのをよく見かける
>>799 remote追加してpushするだけじゃないの?
困ったときのgit bisectとか
毎日使うgit log --all --graph --decorateとか
git grepも無いと困る。
gitでlogを見た時に、どのブランチに対するコミットなのかを調べるには
どうすればいいんですかね?
具体的には、GitXでBranchをAll branchesにしてコミットを発見したんだけど
そのコミットがどのブランチに対するコミットかわからない状態です。
SHAはわかっているのでログは見られるけど
ブランチが多すぎてどれに対するコミットかわからないんです。
コマンド名や検索ワードだけでも教えてもらえると助かります。
>>804 何故ブランチが多いのだ?
マージが終わったらブランチは消そう。
>>804 一個上のレスにある
git log --all --graph --decorate
じゃダメなん?
gitx使ってるっていうんだから、どのブランチに繋がっているかは分かってるんでしょ?
きっと問題は繋がっているブランチがマージコミットを通して複数あって、そのどのブランチで作業しているときにコミットしたもんだか分からないってことだと思う。
マージコミットの一つ目の親の方向から辿れば分かると思う。
わからないです
TortoiseGit1.7.6.0
RHEL6.1入れたらgitがすでにインストールされていた
git rebase -i head^ で出てきた一行だけを、くっつくかなと
思って squash に変更したらコミットが消えたし…
reflog で救出したけど
未コミットの変更を git reset --hard で消してしまった場合って救出不可能?
git歴1日の俺がちょうど今調べてたのがgit reflogだ
cd c:\test\code\
git init
git add .
git commit -m "testdesu"
までやりました
そしてためしにc:\test\code\内のファイルを部消しました(.gitは残してます)
ここからなんですが
どうやってgitからファイルを取得するのでしょうか?
git checkout .
できました!ありがとうございます
>>812 addしてたファイルはlost-foundで救出できる
gitってテキストファイル以外にもexeファイルや画像などのバイナリファイルも保存できるのですか?
壊れたりしませんか?
>>817 なるほど、ありがとう
未addはさすがに無理か…
訳あって work tree を全部削除したので clone し直したのですが、
git remote add って手動でやり直さないとダメなんでしょうか?
>>822 .git/ を消してないならcloneし直さなくてもcheckoutで復旧しますよ
824 :
【東電 81.2 %】 :2011/12/28(水) 22:11:22.83
825 :
デフォルトの名無しさん:2011/12/28(水) 23:19:18.38
先頭の7文字だか10文字だかしか保存してないとでも思ってるのか?
ブロガーを信用するってまぬけだな
自慢気にrubyコミッタて書いてるわ…
>>824 SHA-1ハッシュのリスクもメリットも一切理解出来てないんだな。
痛いなあ…単にアーアー聞こえないなのかも知れないが。
>>824-828 「id:nurseはGitの内部でSHA-1ハッシュの先頭数文字しか使っていないと勘違いしている」
とでも勘違いしてるのか?
うむ、読めばそういう話じゃないことはわかるのに、何ファビョってんだかw
無限ハッシュ値地獄で悶えて市ね
>>829 じゃ何の問題も無いのに何でGit全然ダメになるんだ?
るbystはぎtとpyてょnが嫌い
>>833 日本語でおk
マジレスするとshyouheiのGithubレポジトリがあるしmatzはquilt使ってる
649 デフォルトの名無しさん [sage] 2011/12/29(木) 14:50:37.28 ID: Be:
学生プログラマ日本一決定戦(予選は社会人も参加可)
ttp://codevs.jp/howto.html 現在予選開催中
応募締切 2012.1.6 12:00
おもしろいことやっているじゃん。誰か今から参加しろよ。
オオカミは絶滅した。そういうことになってる
それニホンオオカミ
>>836 お前はなんでそんなとんちんかんなことをドヤ顔で語ってるんだ?
gitはまぬけって結論がなあ
841 :
デフォルトの名無しさん:2011/12/30(金) 06:17:03.77
結論: git はうんこ
>>839 よく読めば引用だとわかる
なんか計算の問題(の解釈)のような気がする
>>840 間抜けだろう。
元々linuxカーネルのソースコード管理目的で作られてるのに、
本来の目的の使用であまり良いとは言えない局面が存在するんだから。
>>844 佐藤がクラスに5人いるのに名字で呼んだら誰だか分からない。
フルネームとまではいかなくても名前(の一部)も付けて呼べばいいんや
あだ名(タグ)つけてしまうって手もなくはないぞ
>>844-845 そこは「同じクラスで誕生日が同じ人がいる可能性は高い」の方が良いかとw
>>847 デフォルトの表示の七桁が「まぬけ」なんだから名字でOK
デフォルト7桁って何のことを言ってんだ?
単に40文字を省略して途中まで表示してるだけだぞ?
それに省略表示されるのはほんとに表示領域が狭い時だけ。git logとかやってみろよ。
省略表示しかされないからどっちのオブジェクトだか分からないなんてことは、無い。
>>849 だから、メールの本文とか、デプロイツールとかで、どのリビジョンってのに、七桁だと衝突する可能性があるって話なんだから、
「佐藤」では短すぎるって例えなのに。
苗字だけじゃなくて名前も呼んでくれって話なの?
852 :
デフォルトの名無しさん:2011/12/30(金) 13:20:16.65
>>850 デプロイツールって何のことか分からんけど
plumbingで7桁でやり取りするようなのは無いよ。
>>852 onelineの指定は一行で表示する為に自分で明示して
省略させてるだろ。意味分かってる?
七文字じゃ足りないのは初めから分かってたことで、
単に見やすさの為に省略してるだけなんだから、
linuxカーネルみたいな巨大プロジェクトは省略せずに
フルで表記。それだけの話だよ。
>>853 > onelineの指定は一行で表示する為に自分で明示して
> 省略させてるだろ。意味分かってる?
git branch -v
ああ
ようするにファイルのタイムスタンプとかで
年を省略したらどうなるかって話か
>>855 branchはporcelainだろ。UIの為のコマンドであって、
ツールキットとして使うようなものじゃない。
>>854 ファイル名がどうかしたか?
>>857 git rev-parse --short HEAD
>>858 で?
>>859 わざわざ --short なんてオプション付けといて「省略されてんじゃねーか!」
って文句言うのか?w
馬鹿には無理
>>860 --short, --short=number
Instead of outputting the full SHA1 values of object names try to abbreviate them to a shorter
unique name. When no length is specified 7 is used. The minimum length is 4.
>>862 だから?
「SHA1を途中で省略して短く出してね」って自分で指示しておいて
「省略したらユニークにならなかった!Gitダメじゃん!」って頭おかしいだろ。
最近「頭悪い質問で釣ってみた」の投稿多いな。
>>863 When no length is specified 7 is used.
__
, ‐' ´ ``‐、 / ̄:三}
. /,. -─‐- 、. ヽ / ,.=j
_,.:_'______ヽ、 .! ./ _,ノ
`‐、{ へ '゙⌒ `!~ヽ. ! /{. /
`! し゚ ( ゚j `v‐冫 , '::::::::ヽ、/ そんなことよりBazaarしようぜ!
. {.l '⌒ ゙ 6',! / :::::::::::::::/ __
. 〈 < ´ ̄,フ .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
. ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠. ヽ_} ゙ヽ
,.r` "´ /:::::::::::::::::::ィ´ `ゝ !、 /
/ / :::::::::::::::: ; '´ /´\ / r'\
. i ! ::::::::::::::/ 墨 | .!::::::::/ヽ、.._!ヽ. ヽ、
{ {:::::::::::;:イ / ‖i:::::::/:::::::::::::/ \
. ヽ ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
で?
知り合いがネット上ではネカマのふりをしてたほうが
アホな男が優しくしてくれるって言ってた。
>>865 デフォ7桁なのが問題だって言いたいのか? 10桁なら良かった?
ハッシュの衝突は原理的にどうやったって起こりうるけど、
そこが理解できないんですか?
あとめんどくせーから引用だけのレスはスルーするわ。
ハッシュの衝突はどうやったって起こりうるけどデフォ7桁は問題です
1234abc
1234cde
の2つのコミットがあったときに、
1234
って指定した場合ってどんな感じで怒られるん?
872 :
デフォルトの名無しさん:2011/12/30(金) 19:10:12.16
ぎっとはうんこ=7文字
gitのデフォルト7桁は運命だった
873 :
デフォルトの名無しさん:2011/12/30(金) 19:20:03.22
UbuntuでVimを愛し、Githubでソースを公開し、
気に入ったプロジェクトがあればPull Requestを送り、
Haskellを勉強し、Pythonのブログを書いていたとしても、
俺は依然として無職だし、WIndowsでメモ帳でPHPを書いていても仕事は貰える!!
>>873 Ubuntu->Bazaar
Vim->Mercurial
Haskell->(元)Darcs
Python->Mercurial
WIndows->VSS
あなたがgitを使う理由はありません
VSSそれはひょっとしてギャグで言っているのか?
877 :
デフォルトの名無しさん:2011/12/30(金) 22:18:22.02
G党ハマ抜け
来季のセ・リーグのスローガン
Git を使って2週間です。バージョン管理システム的なものをさわるのは初めてです。
Subversion も使ったことがありません。
うちの会社では社員がサーバーを勝手にたてられず Git サーバを使えません。
Windows の共有フォルダならばRead/Writeで開放されているのですが、
"\\xyz.net\\課フォルダ\偶数\3242\"
という日本語混じりのウンコなパスが設定されています。xyz は会社名です。
ここに repos というディレクトリをつくって
"\\xyz.net\\課フォルダ\偶数\3242\repos\"
DOS窓からアクセスしてみました
c:\develop\prj > pushd "\\xyz.net\課フォルダ\偶数\3242\repos\"
z:\課フォルダ\偶数\3242\repos > git --bare init
z:\課フォルダ\偶数\3242\repos > popd
c:\develop\prj > git push "\\xyz.net\課フォルダ\偶数\3242\repos\" master
2行目で、共有フォルダにベアなリポジトリを作成することは成功したのですが、
4行目で、fatal: does not appear to be a git repository で失敗してしまいます。
日本語混じりのパスをうまく切り抜ける方法はございませんでしょうか?
c:\develop\prj > net use z: "\\xyz.net\課フォルダ\偶数\3242"
c:\develop\prj > git push z:\repos master
>>879 さん
あした会社でためしてみます。ありがとうございました。
git cat-file tree 1234567 > hoge
git add hoge
としてもハッシュ値が衝突しないのはなんで?
882 :
881:2012/01/06(金) 00:46:48.48
883 :
878:2012/01/07(土) 10:03:22.79
会社でためしました。
ウインドウズの共有フォルダで Git 使うのうまくいきました、ありがとうございました。
もう一つ、今度はgit cloneについての質問です。
git clone を実行するとき、出力先ディレクトリが空でないと失敗します。
これで失敗せず、既存のファイルを残す設定はないでしょうか?
svn checkout --force のような。
以上です。よろしくおねがいします。
>>884 ページャを 'lv -c' にでもすればとりあえずは解決しそうだけどそれじゃ駄目かな?
887 :
884:2012/01/07(土) 10:48:31.28
>>886 なるほど、このやり方で、単体で起動した場合はうまく行きました。
ありがとうございました。
後出しですみませんが、実は私は、普段はmagitというEmacsの
Gitフロントエンドを使っておりまして、これはlogとdiffを
混在して出力しますので、
diffだけをUTF-8に変換する必要があるのです。
It's Magit!
http://philjackson.github.com/magit/
888 :
884:2012/01/07(土) 10:52:20.13
はじめてのGit導入で初コミット
git add .
git commit -m "a"
〜 数日後ファイルの更新 〜
git add .
git commit -m "b"
〜 数日後ファイルの更新 〜
git add .
git commit -m "c"
〜 数日後ファイルの更新 〜
git add .
git commit -m "d"
ここでcomitt "b"のときのデータを取得したい場合はどのように取得するのでしょうか?
>>890 git checkout HEAD^^
>>891 ありがとうございます
git checout HEAD^^をやって2つ前のに戻した場合、cとdのは消えちゃうのでしょうか?
>>892 NO
checkoutでは履歴は変化しないだろ
resetしてブランチを古いコミットに移動したら消えたように見えるけど
reflogを使ってハッシュを見れば復元できる
resetした後gcしたら古いコミット消えるかもしれないけどわけんね
894 :
デフォルトの名無しさん:2012/01/07(土) 17:33:06.98
reflog地獄で悶えて氏ね
895 :
893:2012/01/07(土) 17:35:43.92
到達できなくなったコミットはgcすると、
デフォルトで2週間前以上のは消えるみたい
--prune=<date>
Prune loose objects older than date (default is 2 weeks ago, overridable by the config variable gc.pruneExpire). This option is on by default.
地獄言いたいだけちゃうんかと・・・。
そんなに大事なことだったかね。
899 :
デフォルトの名無しさん:2012/01/07(土) 18:43:01.95
reflog hellで悶えて氏ね
リフログってカタカナで書くと魔法っぽい
901 :
デフォルトの名無しさん:2012/01/08(日) 08:54:10.17
りふろぐってひらがなで書くとうんたんっぽい
githubにあげるとニートがばれるので
非公開で無料でgitできるオンラインサービスありませんか?
非公開できないじゃん><
905 :
デフォルトの名無しさん:2012/01/08(日) 10:06:55.52
private っていう単語の意味分かる?
>>904 https://bitbucket.org/ > Unlimited DVCS Code Hosting, Free
> Store all of your Git and Mercurial source code in one place with unlimited private repositories. Includes issue tracking, wiki, and pull requests
*private*
ニートで無教養か…頑張れよ
ついにニートもgitを操る時代か
胸熱
無料版で非公開に出来るサービスはBitbucketだけ?
無料じゃうっかりミスで公開されても文句言えねえから使う気せんがな
>>911 Githubなら有料で非公開にできるぞ
やったね!
Bitbucketってクソだな
無料版は5個しかリポジトリ作れないのかよ
915 :
デフォルトの名無しさん:2012/01/10(火) 19:29:55.49
ニートで無教養地獄で悶えて氏ね
916 :
デフォルトの名無しさん:2012/01/10(火) 19:35:08.51
"Sign up for a free 5 user account(五人までの面子で使える無料1アカウント)"
を読んで早合点したと思われる。
Bitbucketって一定日数利用しなかったらデータ削除とかありますか?
Dropboxは3ヶ月
git commit --amend しても直前の「間違ってた恥ずかしい」コミットは内部に残るのね…
>>918 残ってて良かった例
$ edit neko.dat
$ git commit -m 'ねこかわいいにゃん'
# 上矢印キーでシェルヒストリ呼び出し
$ git commit -m 'ねこっていうかトラだった' --amend
# 上矢印キーでシェルヒストリ呼び出し
$ git commit -m 'てかメスのライオンだった' --amend
$ edit inu.dat
# 上矢印キーでシェルヒストリ呼び出し
$ git commit -m 'いぬかわいいわん' --amend
Σ(゚Д゚|||) amendツイテタ!!
$ git reset HEAD@{1}
$ git commit -m 'いぬかわいいわん'
>>918 しばらくすればpruneできる
でも「しばらくする」前にpruneするにはどうすればいいんだろう
prune のオプションで時間指定できるだろ
>>919 分かりやすい!こういうの好きだわw
そのノリで他にもなんかタノムw
919についてもう少し詳しく知りたいんですが、
何をキーワードに検索してみれば良いでしょうか?
どうもです。
帰ったら調べてみます。
gitを使う前にgitkを起動してけばHEAD@{1}なんて文法を知らなくてもいいので便利
mオプション怖いからいつもviでコミットログ書いてる。
怖いというか、書き損じが恥ずかしいというか。
スペルチェッカ通さないと、いらん恥かきそうで。
git clone --mirror した場合。
A -> B -> C
といった感じで A から B に mirror して C で作業。
C に commit して B に push。そして B から A に push した時に、
別の人が A に push した後だとログも何も出ずに push が
出来ていない状態になってしまいます。
どこまで A に push 出来たかよく判らなくなるんだけど
mirror は読み取り専用を想定していて push は直接 A にしてね。
っていうのが正しい使い方なのかな?
そもそも push は fast forward しかできないから A に他の人の commit があるなら
先に B (か C) で A の commit を取り込んだ merge commit を作ってから push しないと
いけないんじゃないかな
>>930 そう、その通りです。
なので B で fetch して C で pull すれば良いのですが、
B で push 出来なかった時にエラー表示も何も出ないので
fetch pull が必要どうかが判らないんですよ。
しつもん
git でブランチ間を移動するとき、実際のファイルシステム上では rm や cat > や cp 相当のファイル書き込みが連打してたりしますか?
git checkout branch とするとき、100個のファイルが「現れる」ならば、ファイルシステム上では100個のファイルが作成されていますか?
HDD への書き込みが頻繁になるのがやだなあと思うので、git で開発するディレクトリをいわゆる RAM ドライブにしようかと思ってるんですが
>>932 その通りなんで、必要だと思うことをすればいい。
>>932 .git/以下はほとんど書き込みはないが、それ以外は変更されるファイルはまる
まる書き換えられるよ。気になるなら.git/以下だけHDDとかにすれば。
>>932 よく考えりゃ当たり前なんだが、そうするとあんまり気持ちのいいものではないな…
メモリが余ったら俺も考えよう…
Gitblit ってどうなの?
イントラで使う場合に Gitorious から乗り換える価値ある?
>>932 linux kernelでブランチをまたがって開発してるとかなら、
たしかにRAMディスク使いたくなるだろうけど、
ファイル数の増減が100くらいなら、気にしなくてもいんじゃね。
起動時と終了時(と定期的)にHDD内容と同期させることができ(て不意の電源断に泣かない根性があ)るのなら、
gitで管理する開発ディレクトリをRAMディスクに展開するデメリットは特にないと思う
もちろん活発にコード書かないとご利益は薄いけど…
>>936 君んとこで評価して結果を晒してくれたら
喜ぶ人がけっこういるんじゃないかな。
bitbucketを使ってgitで設定ファイルをdotfilesというリポジトリで管理したいんです。
で、マシンごとに微妙に設定が違うので、たとえばフォントの大きさが違うとか、
そういうのを管理するにはフォークとかブランチとかが使えそうなのかなと思ったんです。
そこで、マシンごとの設定ファイルをいじっててこの設定はどのマシンでも使いたいとなった場合、
どういう風にすると楽に管理できますか?
>>941 紹介ありがとう。
>>1の入門のマニュアルを見ながらブランチとマージを試してみたら、
意外と手軽に扱えることが分かったので、
ブランチとマージで行ってみようと思います。
マシンごとの各ブランチに、
共通設定であるmasterをマージして回ることになりそうだけど、
1つのワーキングコピーでできそうなので、まあいいかな。
初心者がgithubでコードを公開するときに使えておきたいコマンドの一覧を教えてください
コマンドというか、公開ブランチを綺麗にしておくこととコミットログをきちんと書くことが最重要
それができればなんでもいい
…だから、とりあえずgithubで公開してから考えるというのは全くお勧めしない
ローカルで間違えまくって修正の経験を積んだあと、満を持しての公開がベター
>>944 先生、ご指導ありがとうございます
綺麗にするというのはちゃんと動くコードのバージョンごとにコミットする事、よくわからないような改変のコードはコミットしない。これがきれいという認識でよいでしょうか?
コミットログは何を書いておけば嫌われなくなりますか?
bitbucketのRepository detailsに
No public forksっていうチェックボタンがありますがこれはなんですか?
公開ブランチの育て方というのはどっかにページなかったっけ
bitbucketでGitやりたいんですが
日本語マニュアルってないですか?
まとめwikiみたいなのお願いできませんか
ここから先は有料です
どうかたすけてください
git add .
git commit -m "commit1"
ってやったあとファイルを編集してさらに
git add .
git commit -m "commit2"
でリビジョンが2つある状態になりました
そこで
git checkout HEAD^
で一つ前のリビジョン(commit1)に戻して
git checkout .
ってやって編集前のファイルを取得しました
そこで2つ目のリビジョンに戻りたいのですが
git logを見るとリビジョンが一つしかありません
消したらやばいコードがあるのでたすけてください
git checkout master
消したらまずいコードの管理に使い方のわからないツールを使うところからまず見直したら。
uruse-ks
955 :
デフォルトの名無しさん:2012/01/24(火) 16:54:58.67
消したらまずいコードの管理に使い方のわからないツールを使う地獄で悶えて市ね
>>956 これはヒドイ
公開しといてこれはないだろ
>>956 MIT Licenceって公開されてるじゃん
読めないの?
あ、いま訂正されたみたい
英語だけどつまりどういうこと?
教えてエロイひと
>>936 インストールは楽だったが、機能的には最小限のようなので既に環境あるなら
今のところ様子見でいいよ。
962 :
デフォルトの名無しさん:2012/02/02(木) 18:30:30.24
EGitってrebaseとかstashとかサボートしてないんですか?
>>940 一本化して可能な限り条件分岐で済ませた方がメンテは楽だよ。
条件分岐ができない類の設定ファイルならどうにもならないけど。
条件分岐できる設定ファイルの方が少ないと思うけど。
.profile とかのスクリプトとかのことを言ってるのか?
普通そういうコード書く側のマシン固有の設定ファイルはコミットしなくない?
ケースバイケースだと思う。
管理する場合にブランチ使うのは、悪くない考えだと思う。
そうなのか、俺はテンプレートだけコミットしておいて、別マシンで編集したあと手元でignore指定してる
968 :
デフォルトの名無しさん:2012/02/04(土) 15:31:25.22
* local環境はmasterをbranchして作る。
* local固有のものはlocalにコミットを足していく。
* 全体で共用可能なものはmasterブランチにコミットし、localをrebaseする。
* 部分的に共用可能なトピックはmasterからブランチを作って、localに明示的にマージする。
ドットファイルじゃないけどこんな感じでやってる。
.vim をgitにしてるよ。んでmacとLinuxで微妙に設定変えたいのでbranchにしてる。
そんなに面倒ではないんだけど、submoduleはやっぱ使いにくいな。なかなか慣れない。
ドットファイルは分岐とか細工しない方が楽な気がしてる。
昔は凝りに凝って色々やってたけど、今は基本ホスト別だわ。
git管理するドットファイルはHOMEに置かないで、HOMEに置いたのからsourceするようにしてる
sourceできるのじゃないと使えないけど
HOMEにおかないのは同じだけど、
シンボリックリンク張ってる
973 :
デフォルトの名無しさん:2012/02/04(土) 19:14:29.06
シンボリックリンク地獄で悶えて氏ね
よほどのアホでもない限り、悶えることなんてないし。
>>969 俺の場合.vimrcはgitで管理してるけど、
.vimはneobundle.vimに任せてある。
githubにあるプラグインもhgなプラグインも扱えるし、
バージョン管理のないプラグインも使える。
ちと、スレ違いか。
976 :
969:2012/02/05(日) 03:51:52.70
>>975 お、そういうのあるんだね。俺は pathogen.vim 使ってる。
どっちかというと gitを生で操作するほうが好きなんだよね。
977 :
デフォルトの名無しさん:2012/02/11(土) 00:55:07.15
gitosis とか gitolite って OS のユーザとしては一人しか作成しないのに、SSH 公開鍵だけでユーザを識別するのってどうやってるの?
SSHって認証時の公開鍵の選択を他のプログラムからフックできたりする?
そこの仕組みがイマイチ釈然としなくて・・・詳しい人いたら教えてください。
>>977 authorized_keys で公開鍵に対応するユーザのコマンドが書いておく
979 :
デフォルトの名無しさん:2012/02/11(土) 13:05:51.40
>>978 おお!
ありがとうございます。
gitolite ユーザの ~/.ssh/authorized_keys を見たら、追加した全ユーザの公開鍵が書いてあり、
それぞれに「command="/usr/bin/gl-auth-command user1"」のように書いてありました。
authorized_keys ってこんなことできるんですね。
入門記事を読んでると、commitとかchangesetとか単語が出てくるんですけど、
commitとchangesetって違うものなんでしょうか。
今まで同じものだと思ってたのですが、もし違うなら教えて下さい。
TortoiseGit-1.7.7.0
982 :
デフォルトの名無しさん:2012/02/14(火) 06:11:51.48
commitとかchangesetとか単語が出てくる地獄で悶えて詩ね
あーコミットや、あーチェンジセットや。
そがものは、我を惑わしたもうのは我が業たるゆえんなるか。
我今地獄に至りてこの答えを求めたもう。
いかなる御仁にお聞き申す。この答えやいかに。
願わくば啓示を示し給え。
まんこスレ保守
まんこまんこ
初めて使ったがStashめちゃ便利なんだな。
もっと先に試しておくべきだったわ
987 :
デフォルトの名無しさん:2012/02/14(火) 18:23:32.43
まんこまんこまんこ
msysgitの最近のコミットにapplied utf-8 patchesと書いてあったが
msysgit公式でunicode対応来たの?
まんこまんこまんこまんこ
だれも
>>980に答えてくれない。。。というか、答えられないのか?
>>980 >入門記事を読んでると、commitとかchangesetとか単語が出てくるんですけど、
>commitとchangesetって違うものなんでしょうか。
>今まで同じものだと思ってたのですが、もし違うなら教えて下さい。
別にみんな答えられないわけじゃないと思うが…
ちなみに違う。
commitは変更を記録する操作のことで、changesetは変更単位の概念。
まんこまんこまんこまんこまんこまんこまんこまんこ
コミットしたことでできたsnapshotとコミット関連のメタデータを合わせてgitでは「commitオブジェクト」と呼ぶ。
changesetはgitとして特別な意味は無い。一般的な意味。
"commit"ができあがったsnapshotを表すのに対して
"changeset" は一つ前のcommitとの差分に注目した呼び方。
でも結局同じようなものを指していることもある。
"revision"もいろんな使い方をされる。本当に正しくは文脈によるとしか言えないかな
994 :
デフォルトの名無しさん:2012/02/15(水) 00:46:22.27
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
いつの間にかmsysgitのサブモジュールのURLgithubに変わっていた
submodule update成功しないのってこのせいだったのか
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
まんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこまんこ
git log で、ファイルが作成された・削除されたことを表示するにはどうしたらいいですか。
たとえば、testディレクトリ中のファイルが、どのコミットで作成・削除されたかを知りたいばあい、どうしたらいいでしょうか。
まんこ