git スレッド

このエントリーをはてなブックマークに追加
1login:Penguin
ソースコード管理を行うバージョン管理システム、git について語ろう。

あの、リーナス・トーバルズだって、バージョン管理を始めたんだ。
http://www.kernel.org/pub/software/scm/git/

git チュートリアル (バージョン 1.5.1 以降用)
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial.html
2関連スレ:2007/12/16(日) 18:46:21 ID:f7tgD3+1
バージョン管理システムについて語るスレ
http://pc11.2ch.net/test/read.cgi/tech/1193332500/

ところで Windows ユーザはお呼びでない?
GUI でコミットできたりする?
今は犬糞自鯖の Subversion リポジトリを
TortoiseSVN でつかってるんだけどさ.

あと,Merナントカと比べてどっちがいいの?
3login:Penguin:2007/12/16(日) 19:11:29 ID:qBPtEO0s
関連スレ

Linux 板
subversion バージョン管理【サブバージョン】
http://pc11.2ch.net/test/read.cgi/linux/1154701996/
UNIX 板
CVS 1.3
http://pc11.2ch.net/test/read.cgi/unix/1093611448/


>>1
乙。
4login:Penguin:2007/12/16(日) 20:26:49 ID:QXy/zVCN

























5login:Penguin:2007/12/16(日) 22:42:28 ID:GNrc/MYC
>>1
乙。
バージョン管理システムについて語るスレから誘導されてきました

>>2
すまん、犬がLinuxを指すんだろうなーというのは感じてたんだが、
犬糞とは?
6login:Penguin:2007/12/16(日) 22:50:22 ID:QXy/zVCN























7login:Penguin:2007/12/17(月) 00:08:13 ID:xELccl5q
L I N U  X
  ~~~~~~~~ ~~~
8login:Penguin:2007/12/17(月) 00:40:00 ID:W6zCTNJq
>>7
そか、それで犬糞かー
しっかしイメージわるっ
9login:Penguin:2007/12/17(月) 07:56:26 ID:L6um+ERc
そりゃ悪いイメージを表すための言葉だもの
10login:Penguin:2007/12/17(月) 08:06:29 ID:0XEJOpmd




























11login:Penguin:2007/12/17(月) 21:48:16 ID:/yrR25Cr
お前らstash使ってますか?
1.5.3から使えるようになったんだっけな、けっこう便利。
12login:Penguin:2007/12/17(月) 22:28:16 ID:IgqbHlu/















13login:Penguin:2007/12/19(水) 03:32:13 ID:dXqKwU0p
WHITESPACEのサンプルコード張るのはヤメロ
14login:Penguin:2007/12/21(金) 02:00:12 ID:6o0qhWXw
> If there are uncommitted changes in your working tree, commit them first before running git pull.
なんでやねん
15login:Penguin:2007/12/21(金) 03:25:07 ID:AYJ4T+a5
愚痴っぽいヤツだな
checkout -bして逃すか、stashしてpullするのがgitのやり方
それにコンフリクトしてなきゃpullできるだろ
16login:Penguin:2007/12/23(日) 14:53:44 ID:fi/RmBMC
git-hogehoge
コマンド多すぎ!git hogehoegに統一しろよ。かなわんわ。
17login:Penguin:2007/12/23(日) 15:03:11 ID:N2RrqJDE
git-add
git-am
git-branch
git-checkout
git-clone
git-commit
git-diff
git-format-patch
git-log
git-push
git-rebase
だけ分かればなんとかなる。きっとなる。
18login:Penguin:2007/12/23(日) 16:34:13 ID:RyBdHHBH
つgit-init
19login:Penguin:2007/12/23(日) 16:43:09 ID:K9KsPcXg
>>16
git-hogehoge は git hogehoge でもいけますが?
20login:Penguin:2007/12/23(日) 16:55:21 ID:R7YWvlFy
21login:Penguin:2007/12/23(日) 17:27:52 ID:CF8f6C8u
$ git-
zsh: do you wish to see all 144 possibilities (49 lines)?
22login:Penguin:2007/12/23(日) 19:34:11 ID:fi/RmBMC
>>19
いけるに決まってるだろアホか
そういうことがいいたいんじゃないんだよ
23login:Penguin:2007/12/24(月) 01:12:48 ID:a5pJldP1
>>22
>git hogehoegに統一しろよ
って書いてるけど。じゃgit-hogehogeを無くせってか?
それともコマンド減らせって?
使わなきゃいいだけじゃん。
24login:Penguin:2007/12/24(月) 07:35:31 ID:SQuGm0vv
「@




















25login:Penguin:2008/01/30(水) 02:00:10 ID:bXVdZXGP
gitいいね
いきなりこんなの作れるLinusはやっぱすげえな
彼がバス事故とかにあったらそれでLinux終了なんだろうか
26login:Penguin:2008/02/01(金) 19:08:57 ID:rSw2dtTK
>>25
作者が死んでもソースは志しあるものに引き継がれる。
彼並みのマネージスキルというとあれだけどな。
27login:Penguin:2008/02/07(木) 20:40:32 ID:iRLnulYw
28login:Penguin:2008/02/09(土) 01:28:18 ID:tqDiHypG
ム板からキマスタ
windows版落としてみたら、意外に普通にうごいてびっくりした
29login:Penguin:2008/02/10(日) 03:36:35 ID:HUyz7WXT
git で、svn revert に相当するコマンドは何でしょうか。
git revert filename とすると、fatal: can't find hoge.c と言われます。
30login:Penguin:2008/02/10(日) 03:38:43 ID:HUyz7WXT
>>29
書いたとたん、git reset というのを見つけてしまったorz
31login:Penguin:2008/02/10(日) 14:09:33 ID:irmoOUSW
>>30
gitはreset、rebase、cherry-pickを使い始めると、かなり良い感じになってくると思うヨ
32login:Penguin:2008/02/11(月) 18:21:30 ID:biU+/9KY
git revert で、checkin を簡単に取り消せると聞いて試したのですが、
なんか checkin を取り消すんじゃなくて、checkin したのと逆のパッチを適用するみたいなんですけど、
これってそういうもんでしょうか。
個人的希望としては、直前の checkin を取り消してもとの状態に戻したいだけなんですけど。
33login:Penguin:2008/02/11(月) 18:40:40 ID:huZqSBbS
>>32
その場合はreset使うんだお

まずはチュートリアル見てみたらいいんじゃまいか
http://www8.atwiki.jp/git_jp/
34login:Penguin:2008/02/11(月) 19:04:33 ID:biU+/9KY
>>33
あれ、git reset は commit していない checkin を取り消すものじゃないですっけ?
35login:Penguin:2008/02/11(月) 19:50:44 ID:huZqSBbS
>>34
resetはどこにでもリセットできるよ。これがけっこうアツいんだ。
こうすれば今のブランチの1個前にリセットされる
git reset --hard HEAD^
リセットを取り消すのはたいてい出来ないので注意

まあゆっくりドキュメント詠みなって
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html#fixing-mistakes
36login:Penguin:2008/02/22(金) 23:38:57 ID:qDG1xDNv
>>39
git checkoutだよ。
37login:Penguin:2008/02/23(土) 19:57:04 ID:54b7Idwq
さて>>39に何て書けばいいんだ
3836:2008/02/23(土) 20:03:15 ID:bAJ3y1XW
>>29宛ての間違いだった…… orz
39login:Penguin:2008/02/25(月) 00:48:26 ID:ew7Eacri
git で、svn revert に相当するコマンドは何でしょうか。
40login:Penguin:2008/02/25(月) 15:31:38 ID:f8BCtTFE
checkout
41login:Penguin:2008/03/06(木) 21:02:14 ID:oj0m+NVr
http://gihyo.jp/magazine/SD/archive/2008/200804
SD 4 月号は git 特集らしい。
42login:Penguin:2008/03/20(木) 18:23:26 ID:NvgN5uBF
Git特集きたこれ
43login:Penguin:2008/04/04(金) 16:51:51 ID:VtK1I9PC
HEADは何を表してるんですか?ブランチ名?コミット名?
チュートリアル読んでたら、なんの説明もなしに登場してくるので、教えてください。
44login:Penguin:2008/04/04(金) 18:27:28 ID:JdXMDd2F
>>43
現在作業してるブランチに対する最新のコミットのIDのエイリアス
45login:Penguin:2008/04/04(金) 21:30:33 ID:rtdSSa+F
>>44
最近HEADって大文字で書くのがちょい億劫になってきた
46login:Penguin:2008/04/05(土) 02:49:47 ID:uV0eyb6h
HEADがコミットIDでいえば何番なのかを知るにはどうしたらいいですか
47login:Penguin:2008/04/05(土) 03:01:18 ID:zGo20/US
>>46
git show-ref
とか
cat .git/refs/heads/master
とか
git show HEAD
とかか?
48login:Penguin:2008/04/06(日) 12:09:53 ID:o13Td3py
>>47
さんくす


Gitのmapページで index という用語がでてくるんですが、これは何を意味していますか?
49login:Penguin:2008/04/06(日) 19:21:49 ID:AhVxVw+d
>>48
mapページて何だか分からないが、indexはGit特有かもしれない
ワーキングコピーとリポジトリの中間に位置する場所で、
コミットする前にいったんここに保存する感じになる。
けっこう便利に使えます。
今月号のSD見てみたら? ムズ目かもしれないけどかなり秀逸な記事ですよ。
50login:Penguin:2008/04/07(月) 19:20:32 ID:EqyCSPuz
>>49
mapページじゃなくてmanページでした。
説明ありがとうございます。
index は、RDBMSでいうところのredoログファイルみたいなもんですかね。
SDってのはSoftwareDesign誌のことでしょうか。ちょっと買ってみます。
それにしてもSoftwareDesignはタイミングよい記事を載せますね。前回のYAMLとJSONも良かった。
51login:Penguin:2008/04/16(水) 11:34:13 ID:RilLZEQp
>>45
見て気になったんだけど、
head って 小文字で書いてるんだけど弊害あるの?
52login:Penguin:2008/04/16(水) 13:20:16 ID:bD0WIhMf
gitを最近使い始めて、便利そうな気になっています。

ただ一点気になっていること:
subversion の自分のレポジトリから svn:externals 指定で他のモジュールの
最新版を取得する使い方が多いのですが、gitのレポジトリの場合も外部のsvnを
参照する方法があるのでしょうか?
53login:Penguin:2008/04/16(水) 17:12:38 ID:LOLPT6Jl
>>51
マジheadでいけんの!? ってやってみたらいけなかたorz
GIT 1.5.5
54login:Penguin:2008/04/16(水) 21:38:44 ID:s50cdEQt
>>52
それは、Gitから他のGitのリポジトリってこと?
それとも、Gitから他のSVNのリポジトリを参照したいってこと?
前者はできるし、後者は git-svn使えばできそう。
55login:Penguin:2008/04/17(木) 08:41:42 ID:pfpWBVyH
リモートのリポジトリにいくつかブランチがあってgit pullする
時にmaster以外にそれらのブランチのデータも一緒にとってきたい
(でも普段checkoutするのはmaster)んだけど、それってどう設定
するのが正しいの?
56login:Penguin:2008/04/17(木) 09:03:47 ID:pfpWBVyH
>>55 自己レスですが、refspecを間違っていただけでした。
ちゃんととってきてました。
よくわかりませんが
git log origin/BRANCH_FOO

git log BRANCH_FOO
で内容が違うようです。
5752:2008/04/17(木) 09:04:29 ID:IE4XG+iQ
>>54
Gitから他のSVNレポジトリを参照したいです。
git-svnですね。調べてみます。
58login:Penguin:2008/04/17(木) 09:09:28 ID:ZMgRHVN7
>>53
普通はできないのですか…
バージョンは、cygwinのgit 1.5.4ですね。

使っているのは、
git reset --hard head
git show head
git diff head..head~5
くらいです。
検討違いのコマンドでしたら申し分けないです
59login:Penguin:2008/04/17(木) 10:36:55 ID:/nSY839j
>>58
windows はファイル名の大文字小文字を区別しない。
HEAD って .git/HEAD

さてさて?
60login:Penguin:2008/04/17(木) 12:44:33 ID:ZMgRHVN7
>>59
なるほど

HEADって.git/HEADを差していたのですね

windowsのファイル名大文字小文字無視が原因かなとは
疑っていましたが、なぜなのかがピンときてませんでした。
ありがとうございます。

今(windowsで)は良いけど、混乱の元になりどうなので
HEADって打つようにします。
61login:Penguin:2008/04/17(木) 14:45:07 ID:QJd9vB8f
>>56
>git log origin/BRANCH_FOO
>と
>git log BRANCH_FOO
>で内容が違うようです。
そりゃorigin/BRANCH_FOOはリモートのブランチで(git commitは出来ない)
BRANCH_FOOはローカルのブランチ(git commitできる。たまたま同じ名前なだけ)
内容が違うこともあるよ。

>リモートのリポジトリにいくつかブランチがあってgit pullする
>時にmaster以外にそれらのブランチのデータも一緒にとってきたい
git fetch origin とかでいけると思う。
62login:Penguin:2008/04/18(金) 20:38:42 ID:zn32tz08
>>52
svn:externalsはgit submoduleで似たようなことが出来るみたいだけど、
git-svnでsvn:externalsを透過的に使えるワケではないし、使い勝手はだいぶ違うようです。

>>60
逆に小文字でheadでいけるのが少し羨ましかったり。。。
63login:Penguin:2008/04/20(日) 17:34:50 ID:T155+Ikm
>>62
どーしてもっつーなら、シンボリックリンクでも
ためしにはってみれば。.git/headとか?
64login:Penguin:2008/04/20(日) 21:19:59 ID:cyoem7vw
>>63
それでいけた! (・∀・)
refs/headsをごにょごにょしなきゃダメかと思ってたんだけど、
この方法で名無しブランチでもheadでいけたよ。ありがとう!
65login:Penguin:2008/04/23(水) 13:18:56 ID:c9i8hTSf
cygwin版 git で、emacs git.elが動くpatchって、まだ存在しない?
66login:Penguin:2008/04/23(水) 19:21:41 ID:WOoYuez/
git checkout -f branch って打とうとして
git branch -f branch って打っちゃった

これ復旧させることってできますでしょうか;;
67login:Penguin:2008/04/23(水) 19:44:50 ID:RWYW/w1F
reflog -> checkout -b branch hash
あたりじゃどう。
68login:Penguin:2008/04/23(水) 20:04:29 ID:WOoYuez/
>>67
いけました。
ありがとうございました。

一ヶ月分の作業を失ってしまったかと かなり 涙目になってました
69login:Penguin:2008/04/23(水) 23:27:56 ID:9XenftLj
70login:Penguin:2008/05/15(木) 00:35:10 ID:CKsV7vhr
特定のブランチについてるタグだけをリストするにはどうすればいい?
71login:Penguin:2008/06/02(月) 01:28:01 ID:K7GwLnsR
gitとsvnだとどちらが使いやすい?
それと svnのレポをgitからアクセスしてコミットやらチェックアウトやらって出金の?
72login:Penguin:2008/06/02(月) 08:55:36 ID:+7cXOACL
どちらが使いやすいかは状況次第。初心者ならsvnかな。
git-svnでgitからsvnにコミットもチェックアウトもできるが
svn:externalsやsvn:ignoreなどは対応してない。
73login:Penguin:2008/06/03(火) 01:58:33 ID:QWA+WrFc
gitに慣れてからsvnを使い始めたせいかgitの方が使いやすく感じる。
74login:Penguin:2008/06/09(月) 19:08:58 ID:qzPjR4/M
初歩的な質問でですが
git-clone でクローン作って、そこで何回かコミットして
マスタへクローンの全履歴を反映させたくないんだけれど、
どうしたらいいの?
git-push したら全履歴が反映されてしまった。
75login:Penguin:2008/06/09(月) 20:21:25 ID:k9rgwIu8
>>74
クローン元と同期しておきたいブランチを作っておいて、そこをpushすればいいんじゃないかな。
俺最先端ブランチの途中までpushしたいなら、checkout -b してそこをpushとか。
76login:Penguin:2008/06/10(火) 08:46:37 ID:KgejrtZo
squashがあったような。
77login:Penguin:2008/06/13(金) 01:09:33 ID:0qkio06U
git って、リポジトリにコミットした時の元ファイルのタイムスタンプって
保存されてるの? そのタイムスタンプでチェックアウト
できたりできる?
78login:Penguin:2008/06/13(金) 21:59:18 ID:BTTXLp//
>>77
タイムスタンプを保存して何したいのかを言ったほうがいい。
79login:Penguin:2008/06/13(金) 23:34:10 ID:0qkio06U
>>77 で書いた通り、インポートした時のタイムスタンプのままチェックアウト
したいんですが。
80login:Penguin:2008/06/14(土) 08:26:20 ID:AfqaBG/Z
>>79
だからタイムスタンプが復元できて何がうれしいのかな?
どのように利用したいのか目的がわからずに適当に
答えても正しい答えなのかわからないよ。
81login:Penguin:2008/06/14(土) 11:15:56 ID:qEnbIax8
ここでもタイムスタンプ厨か。お前バージョン管理システムでも湧いてなかったか?
自分の意見押しつけんのも大概にしろ。
82login:Penguin:2008/06/14(土) 14:09:39 ID:vfIs0VcC
>>80
了解です。

>>81
>自分の意見押しつけんのも大概にしろ

おまえ良くいる頭にウジ湧いてる決めつけ厨だろ?
誰も意見押しつけてないっつーの
出来るかどうかを聞いてるだけだろ?良い悪いは問題にしてない。
意味無いレスならするなよ
83login:Penguin:2008/06/14(土) 14:15:37 ID:jfP/Z0Kj
何が目的で質問してんのか明かさない>>82にも問題あると思うけどな
84login:Penguin:2008/06/14(土) 14:25:30 ID:9U0IMmLW
そうかなあ?やり方を聞いてるわけでもないし、
出来るか出来ないかを聞いてるだけなんだから、
ちょっと過剰な反応のような気がするけど。

みんな、マ板の方でうんざりしてるってだけかなw
85login:Penguin:2008/06/14(土) 15:10:17 ID:nckv2fL3
俺はcp -pなんて絶対使わない
男ならcpだろ、jk
86login:Penguin:2008/06/14(土) 15:16:30 ID:cIQ+spTz
>>85
まったくだ。cp -pなんて使ってる奴は糞だ。
cpには-pを付けろだのなんだのと自分の意見を押し付けんのも大概にしろ。
87login:Penguin:2008/06/14(土) 20:41:25 ID:ni3Z2Orf
88login:Penguin:2008/06/21(土) 18:12:50 ID:pkTfrc9v
v1.5.6
http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.txt

* "git branch" (and "git checkout -b") can be told to set up
branch.<name>.rebase automatically, so that later you can say "git pull"
and magically cause "git pull --rebase" to happen.

これってbranch.autosetuprebaseのことなのかな…よくわからん
89login:Penguin:2008/06/25(水) 08:24:38 ID:mw46d4A7
>>81
世の中にはお前や俺よりバカな奴が一杯いるわけだ。

それを理解していないお前はバカだと思うが、どうだろう?
90login:Penguin:2008/06/28(土) 13:45:49 ID:1ufqpgyz
「ギット」なんだね。
ttp://jp.youtube.com/watch?v=8dhZ9BXQgc4
91login:Penguin:2008/06/28(土) 15:12:06 ID:/LJ+f5Il
「ジット」だと思ってた?
92login:Penguin:2008/06/28(土) 16:03:19 ID:CQHvNqo2
.gifを岐阜と読む漏れにしたらなんともない。
93login:Penguin:2008/06/28(土) 16:15:49 ID:5Ndx9bZb
co-git
なんてものもあるんだから、ギットだろう
94login:Penguin:2008/06/28(土) 18:16:30 ID:2P6N18bt
>>93
それは cogito というラテン語を知らないと通じないかも。
いや、Cogito ergo sum. くらい常識か。
95login:Penguin:2008/06/29(日) 13:18:38 ID:XN4+BjuC
gifを岐阜と読んでる奴は何人いるんだろうか
gitをギットと読んでる奴よりジットと読んでる奴の方が多いんじゃないか
96login:Penguin:2008/06/29(日) 18:28:25 ID:qzoCJb7s
日本語としてはギットよりジットの方が自然な気がする。
97login:Penguin:2008/06/29(日) 21:02:31 ID:OYNO3DBf
>>93-94
digitは「ディギット」かい?
98login:Penguin:2008/06/29(日) 23:08:37 ID:c9hvQ/j5
英単語の発音に統一感を求めてもしょーがないな。
99login:Penguin:2008/06/30(月) 01:35:35 ID:tzC6XB0G
ghoti
100login:Penguin:2008/07/01(火) 02:52:00 ID:ne12KqOW
ghoch と書いてフィッシュと読むという話なら知っているが……
同じようなもんかな。

101login:Penguin:2008/07/08(火) 22:11:40 ID:LSu++xNc
新スレ移行のお知らせ

バージョン管理システムについて語るスレ2
http://pc11.2ch.net/test/read.cgi/tech/1215520728/


夜露死苦ー
102login:Penguin:2008/07/08(火) 22:38:13 ID:7zg8vwOw
統合する必要あんのか?
別に総合スレと個別スレがあってもいいじゃん。
それとも単なる荒らし?
103login:Penguin:2008/07/08(火) 22:39:53 ID:LSu++xNc
いや、統合とかそんなんじゃなくて、単なる挨拶回り
104login:Penguin:2008/07/08(火) 22:44:59 ID:7zg8vwOw
>>103
すまん、強制的に移動しろっていう荒らしが立てたスレかと思った。
勘違いで煽って悪かった。
105login:Penguin:2008/07/08(火) 22:51:37 ID:LSu++xNc
>>104
イイヨイイヨー
106login:Penguin:2008/07/09(水) 11:03:24 ID:XO23tYI8
マルチうぜぇ。
107login:Penguin:2008/07/09(水) 18:38:40 ID:xXnuy0X6
>>103
「挨拶回り」ってどういう意味?w

いや、言葉自体はもちろん知ってますが。
108login:Penguin:2008/07/11(金) 22:53:51 ID:ozTGhgN0
http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.2.txt
1.5.6はバグ修正多いなぁ
そのうち落ち着くかな?
109login:Penguin:2008/07/12(土) 10:26:18 ID:VXCpKRyP
svnでいうところの(というか、cvsでいう)キーワード置換はないですか?
$Id:$
とか、ソースに埋め込まれたのを変更してくれるやつです
110login:Penguin:2008/07/12(土) 11:28:28 ID:LefsuGz6
>>109
man gitattributes |less +/ident
111110:2008/07/12(土) 11:44:01 ID:LefsuGz6
実際に試してみると、CVSやRCSとは違ってcommitした時に
キーワードを変更してくれないな。
$ mkdir foo
$ cd foo
$ git init
Initialized empty Git repository in .git/
$ echo '* ident' >> ./.git/info/attributes
$ echo '$Id$' > TEST
$ git add TEST
$ git commit -m TEST1 TEST
Created initial commit d1fae63: TEST
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 TEST
$ cat TEST
$Id$
$ git checkout -f
$ cat TEST
$Id: 055c8729cdcc372500a08db659c045e16c4409fb $
112login:Penguin:2008/07/13(日) 01:43:59 ID:+ZlfHzsH
>>111 ありがとうございます
113login:Penguin:2008/07/13(日) 20:34:30 ID:sgALKsd0
git-logでHEADだけ(あるいは特定のversion)だけを取り出す
書式はあるのでしょうか。一応試した限りでは
git log ${version}
とやると現在のブランチで最初から${version}までを全てリスト、
git log HEAD^..HEAD
とやるとHEADだけを取り出せるのですが、versionを二回
書かないといけないのはちょっと面倒です。
114login:Penguin:2008/07/13(日) 21:00:20 ID:9od32cQM
git show --summary HEAD ではどうかな?
115113:2008/07/13(日) 22:34:10 ID:sgALKsd0
>>114
あー、そんなコマンドがあったんですね。ありがとうございます。
git show --name-only と
hg tip -v
がだいたい似たような感じですね。
116login:Penguin:2008/08/05(火) 11:09:27 ID:dlGR6/hK
age
117login:Penguin:2008/08/10(日) 04:43:49 ID:wkdEdvb8
gitええわ ヽ(´▽`)ノ
今までCVSしか使ったことなかったもんで、軽くカルチャーショックだわ。
末永く使わせてもらいますわ。
118login:Penguin:2008/08/10(日) 12:26:34 ID:UwEAQmwP
日本語ファイル名は大丈夫ですか? UTF-8に限定して使おうとは思ってますが。
119login:Penguin:2008/08/10(日) 15:40:41 ID:d1U1Jm8D
>>117
どんなところが良いですか?参考にしたいので。
120login:Penguin:2008/08/11(月) 01:18:40 ID:Dizr7UnM
>>119
gitはまだ個人利用しかしてないし、他の分散型も全く使った事が
ないので、あくまでcvsとの比較なんだけど。

・使い始めるまでが拍子抜けするぐらい簡単
・ブランチの扱いもすっげー簡単
・ワーキングディレクトリ下にデータベースができるのも管理が楽
・ファイルのリネームもできる

多分、これぐらいはgitでなくてもいいんだろうけど、EmacsのVCが
対応してたので使ってみた。
当然、分散型のメリットも計り知れないと思うけどまだ実感できず。
(メリットは十分理解はしてはいるよ )
121login:Penguin:2008/08/12(火) 22:11:50 ID:LzxYrnrK
cvsからの移行だとコマンド体系が似ているのでmercurialの
ほうが(最初の時点では)楽だと思う。
gitで好きなのはsharedなリポジトリを作れることかな。
cloneした時のディスク消費量が小さくて済む。
122login:Penguin:2008/08/12(火) 22:37:04 ID:jyLw7NZh
>>121
RCS,CVS->svn->hgって来てる。
gitも使っているけど、hgの方が好み。
ローカルレポジトリでの使用でもgit/hgは便利だと思う。

>>120
> ・ワーキングディレクトリ下にデータベースができるのも管理が楽

これってRCS/CVSもそうじゃないっけ?
svnは違うけど。
123login:Penguin:2008/08/13(水) 04:13:01 ID:klCDf59B
>>122
CVSは違うな
124login:Penguin:2008/08/13(水) 13:23:04 ID:j62J0KFJ
gitってCVSより遅いんだね
cvs updateでぶっ壊れて止まることはなくなったけどションボリだよ
125login:Penguin:2008/08/13(水) 14:13:32 ID:wGlbYnYo
>>124
そんなことはないと思うが。Windowsで使ってるとか?
126login:Penguin:2008/08/13(水) 14:53:37 ID:j62J0KFJ
cvs -z3 -d:pserver:[email protected]:/sources/emacs co emacs-cvs 2.70s user 2.19s system 3% cpu 2:11.01 total
git clone git://git.sv.gnu.org/emacs.git emacs-git 187.51s user 5.78s system 22% cpu 14:19.61 total

du emacs-cvs|tail -n 1
107M emacs-cvs
du emacs-git|tail -n 1
241M emacs-git

まるごとcheckoutするのが遅いだけでしたねごめんなすって
127login:Penguin:2008/08/13(水) 20:11:56 ID:wRv5KoSx
>>126
そりゃそうだw
CVSリポジトリをrsyncでとってきてそこからcheckoutする時間と
比べれば公平になるんじゃないかな。
128login:Penguin:2008/08/14(木) 00:14:12 ID:0EGHDgT1
はじめてgit使った時に手始めにlinux kernelをcloneしたんだが、
まるごと履歴取ってきてるのにあの時間で終わるのはすげーと思った。
129login:Penguin:2008/08/19(火) 02:06:32 ID:EJ+ka2Ia
130login:Penguin:2008/09/10(水) 15:46:19 ID:JtA0GFrH
gitでlogを取る方法が分からない
具体的には
git log git://git.videolan.org/x264.git

で svn log svn://ほにゃらら
と似たような結果になると思ったが

fatal: Not a git repository

となる・・
一度cloneで取り込んでgit-logすると直近の変更点は表示されるが、全ての変更点は見られない。
gitは考え方がsvnと根本的に違うみたいでよくわからない。
131login:Penguin:2008/09/10(水) 16:16:38 ID:3qB8R8zP
commit 5dc0aae2f900064d1f58579929a2285ab289a436
Author: Laurent Aimar <[email protected]>
Date: Thu Jun 3 19:29:33 2004 +0000

* all: re-import of the CVS.


git-svn-id: svn://svn.videolan.org/x264/trunk@1 df754926-b1dd-0310-bc7b-ec298dee348c

.cvsignore | 3 +
AUTHORS | 35 +
COPYING | 340 +++++
Jamfile | 67 +
Makefile | 58 +
Makefile.cygwin | 52 +
TODO | 65 +
build/cygwin/Makefile | 102 ++
build/win32/libx264.dsp | 742 +++++++++
ry
結構昔まで見えるようだが。
svnでcvsから取り込んだときにログはドロップしてるのか分からないけどここから。
132login:Penguin:2008/09/13(土) 21:59:14 ID:hiNgxRSE
gitにsvn st -u相当の動作をさせるにはどうすればいいですか?
133login:Penguin:2008/09/13(土) 22:26:25 ID:yne4uVAN
>>132
git help
134login:Penguin:2008/09/15(月) 01:43:26 ID:Vn95ZDDR
135login:Penguin:2008/09/15(月) 21:12:16 ID:autoD5Br
せっかくの分散管理なのに、pushしたら自分の変更内容とかログが全部あがって
恥ずかしい思いをしたよ。
最初の変数がかなりマニアックだったとか、コメントに入れてた人生の悩みとかばれまくり。

で聞きたいんだが、手元でがしがし変更→commitしている場合、その途中ってみんなどうしてるの?
ぜんぶpush?
なんかいい方法あったら教えて。

136login:Penguin:2008/09/15(月) 21:30:13 ID:RrauyvJB
push用のブランチ作って置くんでは?
やったことないけど
これなら公開できると思ったらpush用ブランチに
merge?マージだと履歴も逝ってしまうっけ?
137login:Penguin:2008/09/16(火) 14:00:17 ID:sfm/svzZ
つーかコメントに余計なこと書くなよ。
138login:Penguin:2008/09/17(水) 07:07:39 ID:mi6NTA+s
古いchangesetの最初の方を掃除することは可能でしょうか。
いまファイルサーバ上のツリーを記録するためにmercurialを
使っているんですが、mercurialにはそういう機能はないので
(MQ用のコマンドstripはあるがそれは直近の数changesetを
消すもの)結局移し替えのためのスクリプトを書いて対応しました。
gitにそういう機能があればhg->git移行するんですが...
139login:Penguin:2008/09/19(金) 00:47:51 ID:gbQDBJFb
>>138
Mercurialでもqimport→qfold→qdeleteでできるよ。
めんどくさいけど。
140login:Penguin:2008/09/19(金) 22:53:44 ID:oBiMratP
>>139
$ hg qimport -r 1
abort: revision 1 has unmanaged children
141login:Penguin:2008/09/22(月) 01:27:56 ID:lsYav/dy
>>140
$ hg qimport -r 1:tip
$ hg qgoto 1.diff
$ hg qfold 2.diff 3.diff
$ hg qpush -a
$ hg qdelete -r qbase:qtip
142login:Penguin:2008/09/22(月) 01:40:43 ID:lsYav/dy
スマン、ここgitスレか。
スレ違いだったな。
143138:2008/09/23(火) 00:27:41 ID:1BYKayXP
>>142
なるほど、勉強になりました。バイナリファイルが混じってる
時は--gitがないとえらいことになる、というのも分かりました。

ところでgitだったらそういう操作は可能でしょうか。
144login:Penguin:2008/09/23(火) 15:08:29 ID:T3gMcMGA
git remote add bob /home/bob/myrepo
で作った「bob」を/home/bob/myrepo2に変更したいんだけど
どうすればいいの?
145login:Penguin:2008/09/23(火) 16:42:01 ID:BgTvVXV1
一旦消して追加しなおす?
ローカルでリモート使ったことないけど、、、
リモートの概念は自分のワーキングコピーからアクセスできるprefixを
簡単に使うことができるようにする為のもの、と理解してるんだけど。
146login:Penguin:2008/09/24(水) 09:59:21 ID:dxz6iP6w
remote -dとかで消せるかな
試してないけど
147login:Penguin:2008/10/01(水) 00:27:09 ID:R6cOiuz/
git clone で例えば home/red/blue/yellow と取ってきたとして、
加えて git checkout origin/colors でブランチ "colors"に居ますと。

その後の作業で、いくつかのディレクトリでブランチをmaster/colorと切り替えてたんですが、
全ディレクトリのブランチを一気にmasterにする方法ってありますか?
148login:Penguin:2008/10/02(木) 10:48:37 ID:jWmFY2RS
git introduction, yugui Ustream.TV: git introduction rails meeting @ tokyo.
http://www.ustream.tv/recorded/746377
149login:Penguin:2008/10/10(金) 16:24:54 ID:s0rmxUVr
git age .
150login:Penguin:2008/10/12(日) 06:30:09 ID:jJgFADl+
151login:Penguin:2008/10/18(土) 03:07:31 ID:dDb45WJS
git
152login:Penguin:2008/10/23(木) 01:32:11 ID:HvfmsSww
153login:Penguin:2008/11/04(火) 13:32:06 ID:3alaTQXX
addしたファイルの一部を、あ〜これ別の修正だなーと思ってcancelしたいん
だけど、どうすればいいかわかりますか?

checkoutすると修正差分消えちゃうし、stashの部分的versionがあれば
いいのかもしれませんが。

まぁ、diff取って手patchでもいいので、今回はそれでやりますが、
後学のために教えてください。
154login:Penguin:2008/11/04(火) 14:30:15 ID:pgRYNcfN
>>153
git reset
155login:Penguin:2008/11/04(火) 23:09:57 ID:3alaTQXX
>154
ありがとうございます

156login:Penguin:2008/11/05(水) 00:32:36 ID:l+PE2hcd
>>153
それよくあるわー
あるファイルをいじってる最中に関係ないバグなんかを見つけて、
つい流れでそのままやっちゃうんだよね。
でもコミットする時には別々にしたくなる...
俺の場合、修正が少ない時は、エディタでundo出来るようにしつつ2回に分けてコミット、
修正が複数ファイルだったり込み入ってる時は、stash使ったりdiff出して後からpatchしたりしてるな。
157login:Penguin:2008/11/14(金) 23:25:39 ID:Op12tx9f
158login:Penguin:2008/11/14(金) 23:29:20 ID:4rtpLX5i
gitはじまったな。hgとの戦いもこれで決着したか?
159login:Penguin:2008/11/14(金) 23:48:00 ID:Lmgx2Pjw
本家 sf.net はまだ git をサポートしてないよね。
この点では sf.jp が先行しているんだ。
160login:Penguin:2008/11/15(土) 06:24:15 ID:PSPQtBpR
tortoiseが無いから決着無理でしょ。
161login:Penguin:2008/11/15(土) 18:00:52 ID:MUmWX/Lu
あるコミットの親コミットのidはgit log -1 foo^1とかでわかるんだけど、
あるコミットの子コミット一覧をなるべく高速に得る方法ってある?
162login:Penguin:2008/11/22(土) 09:30:29 ID:ZDTHO6y7
>>159
ほんとはこういうプリミティブな分野ほど保守的なはずだけど
svn が出てからと言うもの乱世になっちゃった感があるね。
そう言う意味では svn の功績も大きいかも。
そんな中で日本は一般の追従が早かったりするのかな?
ただ sf.jp が勇み足ってこともあるかもしれないけどw
163login:Penguin:2008/11/22(土) 22:19:54 ID:f114SqWJ
>>161
原理的に無理なんじゃないの?
コミットすると、その親のレポジトリに通達する仕組みが無いと
164login:Penguin:2008/11/25(火) 21:33:58 ID:2oYcDe4N
>>163
mercurialには`hg children'っていうコマンド(extension)が
あるけど、そういう機能のことじゃない?
165login:Penguin:2008/11/29(土) 21:53:13 ID:x6WDXIQW
カーネルにおけるリグレッションの特定/ユメのチカラ
http://blog.miraclelinux.com/yume/2007/10/post_d748.html
166login:Penguin:2008/12/12(金) 11:43:38 ID:M6DfFnZx
「git add .」の時にemacsのバックアップファイル(hogehoge~)を含まないようにするのはどうすればいい?
167login:Penguin:2008/12/12(金) 14:32:02 ID:WlMynC7N
168login:Penguin:2008/12/12(金) 23:20:38 ID:fQQDEn/S
fast-forwardって「早送り」って意味だよな... > wiki
169login:Penguin:2008/12/13(土) 13:26:24 ID:OASQvN2r
>>167
ignoreあったのか、dくす
170login:Penguin:2008/12/14(日) 08:48:06 ID:Z9GwfQdj
171login:Penguin:2008/12/14(日) 12:48:29 ID:x3iOnWd3
>>170
wktk
172login:Penguin:2008/12/20(土) 01:31:20 ID:vKNATyou
質問なのですが

svnでいうチェックアウト(svn co)はgit cloneで合ってますか?
gitではユーザ名を登録しますが、ここで登録したユーザ名を頼りにチェックアウトできますか?

自分で調べた内容は、 http://www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial.html を見て
「共同開発における git の利用」で git clone /home/alice/project myrepo ってコマンドを探せたくらいです
173login:Penguin:2008/12/20(土) 02:56:48 ID:rjvGH0/G
>>172
git cheat sheet でググレカス
174login:Penguin:2008/12/20(土) 09:37:26 ID:ei1zjot9
現在mercurialでwebデータのスナップショットをとっています。
ignoreファイルで管理対象にしたくないファイルのパターンを
指定してhg commit -A すると、消えたファイルは削除扱い、
新しいファイルは追加扱いでうまくやってくれるんですが、これを
gitでやるにはgit statusの出力をスクリプトで処理するしかない
でしょうか。
175login:Penguin:2008/12/20(土) 20:34:52 ID:D7NqFLzp
add .
commit -a
でいいのかな?
176login:Penguin:2008/12/25(木) 17:46:05 ID:waBObvDn
1.6.1キタ━━━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(  )━(゚  )━(∀゚ )━(゚∀゚)━━━!!
177login:Penguin:2008/12/25(木) 20:41:00 ID:Lvzi1Kt9
>>176
ほんとだ。
http://git.or.cz/ にはまだ出てないけど、Tagは昨日打たれてるんだね。
さっそくビルドしてみよっと。
178login:Penguin:2008/12/25(木) 21:51:01 ID:xGFcU4xY
クリスマスプレゼントきてたか。
俺もビルドしてIYH!!
179login:Penguin:2008/12/28(日) 10:56:17 ID:M6Jmnnag
は?
180login:Penguin:2009/01/07(水) 13:35:45 ID:yljPTwi+
どーもくんwwwww
181login:Penguin:2009/01/07(水) 22:12:42 ID:w9oQRMMI
そういやGit、ドーモくんパクってるな。
なんかみたことあるなーとは思てたけど。
182login:Penguin:2009/01/08(木) 00:35:09 ID:Lnbl1Hh0
きっと、ライセンス問題に業を煮やしたリーナスが
新キャラクタを一から作り始めると見た
183login:Penguin:2009/01/08(木) 18:22:06 ID:ZbvVG/Dm
で新キャラのライセンスもGPLなんかな。
世界中で使われまくりんぐ
184login:Penguin:2009/01/08(木) 21:38:12 ID:+tvvOsmO
とりあえず年末にやっていたどーもくんテレビシリーズは面白かった。
185login:Penguin:2009/01/12(月) 21:00:52 ID:WcSLRQ7m
git-cloneをしてもエラーが出てできません。どなたかお助けください。

環境
Ubuntu_1 こいつに"mysite"リポジトリがある(git init で作ったリポジトリ)
Ubuntu_2 こいつにgit-cloneをさせたい

Ubuntu_02でコマンド
:git clone ssh://name@Ubuntu_01/home/name/git/mysite/

で結果がこうなる
remote: Counting objects: 366, done.
remote: Compressing objects: 100% (150/150), done.
remote: Total 366 (delta 262), reused 296 (delta 213)
Receiving objects: 100% (366/366), 53.82 KiB, done.
Resolving deltas: 100% (262/262), done.
error: Trying to write ref HEAD with nonexistant object 73f8...(省略)
fatal: Cannot update the ref 'HEAD'.

このようなエラーが出て、mysiteフォルダが作成されませんでした。
Ubuntu_1のHEADのハッシュは73f8...です。

不思議なのが、nonexistant(nonexistentの間違い? 存在しない)といわれても、Ubuntu_1側でlogを見ても内容はあるように思えるのですが。謎です。
どなたか解決方法をご存知ありませんか。よろしくお願いします。
186login:Penguin:2009/01/12(月) 21:05:09 ID:WcSLRQ7m
OSとgitのバージョンを書き忘れていました。すいません
Ubuntu_1(Ubuntu8.04.1) : git version 1.5.4.3
Ubuntu_2(Ubuntu8.10): git version 1.5.6.3

です。gitの最新では問題ないとか、そういうものなんでしょうか・・・
187login:Penguin:2009/01/12(月) 22:47:45 ID:Uq2UYoFZ
--no-checkoutでやってみたらどうなる…?
188login:Penguin:2009/02/16(月) 23:10:31 ID:YaLIe5U3
こないだネカフェで漫画読んでたら、隣の席の人がマック取り出してなんかやり始めた。
しばらくたってチラ見したら、Gitチートシート見ながら使い方勉強してるようだった。
emacsでメモ取りながら。
Railsのおかげか?マックの人にも浸透してきてんだねー
189login:Penguin:2009/02/17(火) 00:20:11 ID:6D8Af0Ge
gitを使うような開発者がマックを選ぶようになったというほうが近いかと
190login:Penguin:2009/02/17(火) 00:51:17 ID:ju3lrvVQ
そのおかげかどうか知らんが、Rubyの開発もsvnからgitに移行しろと
ぎゃーぎゃー騒ぐ連中がrubyのMLでノイズをまき散らしている(た)

191login:Penguin:2009/02/17(火) 01:50:48 ID:p0vzD+Qg
まぁ、そうしょっちゅう変更されても困るけどな。

未だにCVS使ってるプロジェクトがあることを考えると、
まぁSVNへの移行はそれなりに適切だったよな。

すれ違いスマソ
192login:Penguin:2009/02/17(火) 21:51:55 ID:mqqNODDH
最近人気のVCSって大体リポジトリの相互変換機能があるんで
svnだからどうとかgitだからどうとかってあまり問題ないん
じゃないかと思うんだけど... 騒いでるのって実際自分では開発
してる人なのかな?
193login:Penguin:2009/02/18(水) 02:42:16 ID:/eQIK6gR
>>192
クライアントだけみても結構違いはあるよ

というか、むしろリポジトリ変換できるからどれでもいいだろと言う人の方が
自分で開発してるのか疑わしい
194login:Penguin:2009/02/18(水) 07:55:24 ID:DFCGO0mb
>>189
漏れもmac使いだけど、多い日には8割ぐらいX11で作業してるなぁ
linux板で言うことじゃないけど、最強のunix osだと思ってる
195login:Penguin:2009/02/18(水) 08:09:04 ID:m9oJRtIs
ギャグ?
目悪くなるよ、あれ。
196login:Penguin:2009/02/18(水) 11:17:34 ID:83SU7AOt
macbook air使ってる人見たことあるけど、
パワポの起動に数十秒かかっててわろた。
197login:Penguin:2009/02/18(水) 12:43:10 ID:/eQIK6gR
AirはAppleへのお布施だってばっちゃが言ってた
198login:Penguin:2009/02/18(水) 12:54:38 ID:XFrEXlX0
Windowsは目に優しいのにな
199login:Penguin:2009/02/18(水) 19:20:17 ID:d2HDJA0J
Windows -> MSゴシック代
OSX -> ヒラギノ代
200login:Penguin:2009/02/18(水) 23:34:07 ID:0GUjr6IS
>>193
>クライアントだけみても結構違いはあるよ
違いがないとは書いてないよ。問題がないとは書いたけど。

>というか、むしろリポジトリ変換できるからどれでもいいだろと
>言う人の方が自分で開発してるのか疑わしい
なんでそこで「言う人の方が」とか出てくるんだろう...
リポジトリ変換の手段があれば普段の開発は最も自分に都合がよい
VCSを使える。プロジェクトのリポジトリを移行するのは単なる変換
以外のエネルギーが必要なんだよ(commitlogとかリポジトリのミラーとか
開発支援のためのスクリプトやドキュメントの修正とか)。その労力や
時間は開発にまわしたほうが合理的。
201login:Penguin:2009/02/19(木) 00:18:13 ID:PdrPyNp0
>>200
相互変換つっても、git-svn使ってるけどかなり寂しい状態だからなぁ…
使ったことないけどhgやbzrとならいい感じにやり取り出来るんだろうか。
202login:Penguin:2009/02/19(木) 01:00:15 ID:EG8D4dSl
git-svnはたまにclone中にSEGVることがあってちょっと困る。
どうも変換できないパターンが存在するらしいのだが、詳細が不明。
203login:Penguin:2009/02/19(木) 01:45:08 ID:ytISsoJv
>>202
gentoo user なら、

Per Gentoo bugs #223747, #238586, when subversion is built
with USE=dso, there may be weird crashes in git-svn. You
have been warned.

って、message がデルよ。
204login:Penguin:2009/02/19(木) 07:31:39 ID:EG8D4dSl
>>203
Debianだけど、もしかしたら同じかもしれない。豚々。
205login:Penguin:2009/02/21(土) 13:27:13 ID:4lfOqpcB
git使いたいけどまわりにCVSしか使ったことないのがいるので、
まずはsvnに移行したよ。
自分自身は、git-svnつこてる。

CVSから一足飛びにgitを使ってもらうのは、酷かなと
206login:Penguin:2009/02/21(土) 13:39:00 ID:yqrw3Axq
cvs を理解して使えてるなら、git ぐらいすぐに使えるようになると思うけど。
207login:Penguin:2009/02/21(土) 13:52:33 ID:4lfOqpcB
そうか?
CVSは難しいからね。
A: CVS使い
B: CVS,SVN両使い
C: CVSは忘れたSVN使い、gitは少し

こんなメンバーで開発してるんだが、
A、Bにpush,pullを教える自身がなかったというか
Cも共同開発系操作は怪しかったので

svnになってしまった。ちょっとチキンだったか
208login:Penguin:2009/02/21(土) 15:02:07 ID:Bpq3TsWG
gitをしばらく使ってみて、リモートリポジトリを用意することになりました。

ローカルA
ローカルB
リモートリポジトリ

とありまして、ローカルAにmaster、v0.1の二つのブランチがあります。

ローカルAからリモートには、push --allですべてのブランチをリモートにおきましたが、
ローカルBからリモートへのpullはmasterしか行えない気がしますが、どうなんでしょうか。
理想は、リモートを通してすべてのローカルリポジトリにブランチの共有を行いたいのですが、どんな操作方法があるでしょうか?
よろしくお願いします。
209login:Penguin:2009/02/21(土) 15:27:28 ID:vsW8bIWn
>>208
話がいまいち飲み込めないんだけど、
そのリモートをcloneじゃダメなん?
210login:Penguin:2009/02/21(土) 17:17:05 ID:Bpq3TsWG
>>209
ああそうか、cloneのことを忘れていました。ありがとうございます。
211login:Penguin:2009/02/21(土) 17:47:07 ID:vsW8bIWn
>>210
cloneというか、git remote add でいつでもリモートの追加は可能だよ。
権限に問題がなければ、remoteにpushすることもできる。
212login:Penguin:2009/02/21(土) 21:53:30 ID:Mctk+V93
cvsやsvnにはwindowsで使えるクライアントがあるから・・・
213login:Penguin:2009/02/21(土) 22:56:24 ID:4lfOqpcB
全部emacsから使えるが何か?
214login:Penguin:2009/02/22(日) 00:56:10 ID:T3tENWac
>>212
tortoisegitdozo-
215login:Penguin:2009/02/22(日) 03:05:15 ID:Xj5AqDY8
>>207
ブランチの扱い考えると CVS な人は SVN より GIT の方が
なじみ易いんでは?
216login:Penguin:2009/02/22(日) 14:26:08 ID:mBjWyYz+
確かにsvnはリビジョンがブランチも本流も共通だったり、
気持ちわるいところはある
217login:Penguin:2009/02/22(日) 15:03:08 ID:1XxXXSjk
こないだ久々にCVS使おうとしたらさっぱりワケワカんなくなってたよ…
CVSのブランチってファイル毎じゃなかったっけ。今となってはもう無理な気がする。
218login:Penguin:2009/02/22(日) 19:13:59 ID:8lvMl2P/
>>216
それがsubversionのいいところ。
たとえばあるブランチの開発がすすんでそっちを本流にしたくなった場合、
trunkにマージするという断絶ではなく
本流を切り替えるという操作がそのままできる。
219login:Penguin:2009/02/22(日) 23:21:39 ID:mBjWyYz+
>>218
それ気持ち悪い
ブランチ担当者が1ファイル毎にcommitするとか、
コンパイルも通らないソースcommitしてくれたりして、
怪しいリビジョンが増えんだよね。svn

gitだったらブランチ替えるのもrebaseすれば
問題ない
220login:Penguin:2009/02/23(月) 01:45:32 ID:7ybypk05
>>219
使い方が悪い場合にツールに文句付けても仕方ないな。
221login:Penguin:2009/02/23(月) 08:47:31 ID:tJXsAqHt
>>218 のようなケースは分散型ではそれこそ
「本流にしたくなったブランチを本流とみなす」
だけになるのではなかろうか。
222login:Penguin:2009/02/23(月) 09:12:05 ID:PfEahPoc
本来のmasterブランチを別名に改名して別のブランチをmasterに改名すればいんじゃね?
223login:Penguin:2009/02/23(月) 22:04:17 ID:RXJ8Zkdl
すみません、教えてください。
git pull したときに、一部のファイルだけ、自分の修正を破棄してリモートのファイルをそのまま適用することは
できないのでしょうか?
SVNで、updateしてコンフリクトした時の tf みたいなイメージです。
224login:Penguin:2009/02/23(月) 22:33:08 ID:Abtbk8hJ
git reset?
225login:Penguin:2009/02/23(月) 22:56:28 ID:RXJ8Zkdl
あー、いや、そういうんじゃなくて、ソフトの翻訳をしていて、ja.poだけは自分で修正するんですが、
make update-poとかすると、他の言語のpoファイルも更新されてしまいます。
それやっちったあとにリモート側でpoファイルが更新されるとカオスになります。
なので、コンフリクトした時にマージとかしないで、リモート側(かローカル側かどっちか)を採用みたい
なのができないかなと。
226login:Penguin:2009/02/23(月) 23:31:25 ID:3S3xpgxH
>>220
gitだったら、自分専用になるから他のブランチのcommitポリシー
関係なくなるじゃん。
まともになったらpullしてやんよと言うだけで、
教育する手間がいらんということだ。
227login:Penguin:2009/02/23(月) 23:47:39 ID:qE2tArP5
>>223
git mergeのドキュメントを--strategyあたりでgrepすると良いと思う。
git pull = git fetch + git mergeね。
228login:Penguin:2009/02/24(火) 22:25:50 ID:7lWKoCOb
>>225
>make update-poとかすると、他の言語のpoファイルも更新されてしまいます。
他の言語のpoファイルを更新しないようにMakefileを修正する。
229login:Penguin:2009/02/26(木) 21:09:00 ID:c1Dg6ivC
230login:Penguin:2009/02/28(土) 18:19:24 ID:tKEdSpX5
>>223
もどしたいファイルはcheckoutすればいいだけじゃね?
あとは自分の修正はstashするとか色々
231login:Penguin:2009/03/04(水) 22:33:23 ID:qIzLJZaT
FTPに1.6.2正式版来ました
232login:Penguin:2009/03/06(金) 23:57:38 ID:op+ZMKgY
git-cloneとgit-remote addとgit-svnを使い分けてると

 このフォルダで更新するためのコマンドなんだっけ?

とミスることが多発するんだけど、こういうのって同じコマンドで
管理できないんでしょうか?今は

- git-clone の場合 -> git-pull で更新
- git-remote の場合 -> git-remote update で更新
- git-svn の場合 -> git-svn update で更新

とバラバラで、しかもlsしただけでは判定できないしで
誤実行しては.git/config調べて「ああそうだった」の連発です。

もしかしてもっと便利な統合コマンドがあったりするでしょうか?
233login:Penguin:2009/03/07(土) 01:39:30 ID:ZWrd4H3R
それぞれ役割が違うだろうに。
あと更新とかじゃないよ。
234login:Penguin:2009/03/07(土) 08:32:02 ID:ovs/dmRV
他の人のリポジトリからチェンジセットを引っ張ってくるために打つコマンドという
意味で同じように使っているのですが、もしかしてこの使い方・理解自体が
間違ってるんでしょうか?
235login:Penguin:2009/03/07(土) 09:38:44 ID:u/rVLzU8
>>232
いずれの場合も更新のためのシェルスクリプトを書いとけば
悩む必要がなくなるよね。
でgit-pullはfetch+merge --ff、git-remote updateはgit fetchと
ほぼ同じなんで役割が違う。git-remote addで追加したremoteだと
git-pullで更新してくれない、というのであればそれはローカル
ブランチの設定が正しくできていない、refspecの設定が変、とか
そんなところだと思う。
git-fetchでなくgit-remote updateをあえて使う利点はremoteを
複数設定している時にいっぺんに更新できることぐらいかな
(このあたりの動作はgit-remote(1)のupdateのところに書いてある)
236login:Penguin:2009/03/12(木) 08:16:17 ID:76FRS4+8
darcsから乗り換えるといいことありますか?
237login:Penguin:2009/03/12(木) 09:29:53 ID:XKHVHsT3
>>236
pull したときに、いっぱい yes/no 聞かれずにすむ。
238login:Penguin:2009/03/14(土) 11:44:17 ID:juJwYmYq
hg から乗り換えるといいことありますか?
239login:Penguin:2009/03/14(土) 11:58:11 ID:i8Be0VVA
>238

まーきゅりある、って難しいスペルを覚えなくても良くなる。
覚えてないけど。
240login:Penguin:2009/03/14(土) 15:19:18 ID:+0rKDWfW
>>238
高速.
241login:Penguin:2009/03/22(日) 22:31:18 ID:/27zAYWE
git svn clone -s で Subversion からレポジトリをコピーしてみたのですが、
Subversion の tags が Git の tag にならずに branch になってしまうのは、
そういうものなのでしょうか。

Subversion のタグは、タグといいながらただのディレクトリだったりする変態仕様なので、
しょうがないのかなぁ…という気もするのですが…。
242login:Penguin:2009/03/26(木) 16:23:33 ID:XSnWphDj
社内の git リポジトリを表示するのを探してます。
( github が許されなくて… )

Git Browser と ViewGit を見つけました。

Git Browser は見た目派手だけど実用度に疑問なので
ViewGit を検討しています。

ほかに何かいいのありませんか。
github クローンがあれば最高です。
243login:Penguin:2009/03/26(木) 16:35:56 ID:g3Z2bRWJ
244242:2009/03/26(木) 17:37:03 ID:XSnWphDj
おお、こんなにあったんですね。ありがとうございます。

うーん、ざっと見た限り GitHub や ViewVC レベルってないですね。
定番はデフォルトの gitweb なのかな?
245login:Penguin:2009/03/28(土) 01:25:21 ID:TZ6DBfAq
>>242
微妙に違うかもしれないけど
redmineに付属のリポジトリブラウザなんてどうよ?
246242:2009/03/30(月) 15:37:27 ID:A3cN4vHE
>>245
ありがとうございます。
trac & redmine は使ってます。
チケットとコミットを連動させるために。

差分のリッチな diff や、フォークの流れ、パッチ管理が
github を知ってしまうと、どれも霞んで見えて。。。
247login:Penguin:2009/04/01(水) 12:33:50 ID:TObhm5N5
linux関係者はgitを使うのが多いという認識でいいのかな
248login:Penguin:2009/04/01(水) 20:55:16 ID:LojNH9iG
linux 開発者は git しか使わないだろ常考
249login:Penguin:2009/04/01(水) 21:18:58 ID:jmcNlx3x
>>247
Linux(狭義の=カーネルそのもの)開発のために作られたのがgit
250login:Penguin:2009/04/01(水) 21:54:39 ID:MKGzQ4EB
GitHubでソース管理している人に聞きたいんですけど、
プロジェクトのホームページやリリース物件置き場やITSってどこつかってます?
251login:Penguin:2009/04/01(水) 22:12:24 ID:AOF7SCh+
>>250
>プロジェクトのホームページ
githubでホストできる

>リリース物件置き場
適当にタグ付けしておけばzip等でダウンロードできるようになってる

>ITS
>>252に任せた
252login:Penguin:2009/04/01(水) 23:53:33 ID:I1/8jsAx
checkpadかRTMでおk(マテ

253login:Penguin:2009/04/02(木) 01:51:26 ID:L6Skfqgr
>>246
GithubのUIってそんないいかなーあんま好きじゃない。。。
俺は普通にGitwebがいちばん分かりやすいと思う。
じっくり見るならCUIだけど。git show-branchとかけっこう分かりやすいと思うな。
254login:Penguin:2009/04/03(金) 00:48:36 ID:pDtVIzVu
>>250
ditzがいいと思います
255login:Penguin:2009/04/03(金) 18:00:14 ID:uOZV7ek8
>> 250
lighthouseじゃだめ(´・ω・`)?
もしくは、ticgit。
256login:Penguin:2009/04/06(月) 09:58:37 ID:JCLhMxPh
xrea に入れてる人って自前でコンパイルしてるのかな。
うちは面倒になったやめてmercurialをいれてgitweb形式で
使ってるわ。インストールはこっちのほうが簡単だったから。
xrea用のバイナリを公開しているところがあればなぁ。(ぶつぶつぶつぶつ)
257login:Penguin:2009/04/06(月) 23:28:22 ID:eHpElSRS
xreaでgit入れられるの?makeでリソース不足になるかと思っていた。
258login:Penguin:2009/04/06(月) 23:51:46 ID:JCLhMxPh
>>257
いれてる人はいるみたい。
259login:Penguin:2009/04/07(火) 18:44:33 ID:HQC4Ps4f
xreaに自前で入れるっていう人は、ホスティングじゃ嫌な理由があるのん?
260login:Penguin:2009/04/08(水) 00:50:22 ID:QNjBH7lc
>>259
githubってプライベートリポジトリが作れないし。そのへんじゃないのか。
容量も桁ちがいになるって事実もある。それは大きくないか。

>>257
サーバーでmakeをやってるんだろうか?てっきりクロスコンパイルかなにかだと思った。
261login:Penguin:2009/04/08(水) 01:10:30 ID:5zwafMgz
>>260
「タダでは」作れない、と一応補足。
262login:Penguin:2009/04/08(水) 16:50:09 ID:mCOhjIt8
>>260
XREAにコンパイラはなかったと思う。クロスコンパイルしてるんでしょう
263login:Penguin:2009/04/09(木) 02:02:38 ID:PTQTRrqa
クロスってわざわざx86以外でコンパイルするんかいw
パッケージ作って持ち込んだらいいんちゃう?
264login:Penguin:2009/04/09(木) 02:14:06 ID:CHi6WPmY
xreaにgit入れてみたいけど、
違う環境でコンパイルしたものを持ち込むのって
やってみたことないなぁ
265login:Penguin:2009/04/09(木) 02:34:36 ID:FnIYwStd
>>263
それも試した。そのためにはosの環境を知るひつようがあるが。
266login:Penguin:2009/04/09(木) 02:36:23 ID:FnIYwStd
>>264
mercurialは簡単に入ったけど、どうしてもgitとなれば、git-mercurialを使うか
svn-gitを使うかって方法もあるよ。svnは入ってるから。
267login:Penguin:2009/04/09(木) 02:41:28 ID:PTQTRrqa
gitを導入できそうなのに、OSが不明ってどういうことなんだ?
xrea昔使ってたけどわすれちゃったい
268login:Penguin:2009/04/09(木) 09:19:35 ID:FnIYwStd
>>267
サーバーで違うからね。
269login:Penguin:2009/04/19(日) 19:40:35 ID:EpTMRFi2
githubのIssueって使えてる?
どのrepoをみても、ず〜っと「Loading」のままなんだけど‥‥‥。(´Д`)
270login:Penguin:2009/04/19(日) 21:02:55 ID:vX0fbY2N
issues(0)のものならLoadingにはならなかった。
10個ぐらい探したけどissues(0)でないものは見つからなかった。
Safari4Beta
271login:Penguin:2009/04/21(火) 09:03:12 ID:WkK6/Gbo
WEB+DB PRESS vol.50のgit特集って現メンテナの記事なんだな。
272login:Penguin:2009/04/21(火) 19:01:11 ID:KUyr8Kra
浜田さんですね
273login:Penguin:2009/04/21(火) 22:05:48 ID:yPrR70Fe
>>270
あれ?そう?
じゃあ、自分だけかぁ。
誰もどこにも不具合報告してない感じだし。
Firefox 3.0.7
274login:Penguin:2009/04/21(火) 23:48:13 ID:k6LFvaa1
javascript切ってる、とか
275login:Penguin:2009/04/23(木) 12:52:20 ID:OS8mDzFU
>>274
ありがとうございます。

javascript関係とcookie関係は(NoScriptも使っているし)真っ先に疑っていろいろ設定値を変更してみたんだけど、
変化なし。
で、今朝帰宅後に何気なくみてみたら、(再読込とかもしていないのに)Loadingが消えていたよ。
読み込みに何時間かけたんやって感じだけど、とにかくCreate Issuesボタンを押しても反応するし、
よくわからんが使えるようになったので、よしとした。
# 自分は、「動けば何でもいいや」サンデープログラマなので。

ちなみに、IEでも確かめてみたが、IE6でもIE7でもLoadingのまま。(´・ω・`)
まぁ、普段は使わないから(ry
276login:Penguin:2009/04/30(木) 22:30:43 ID:to8eVmEB
すいません、2つ質問したいことがあります。

branchとdiffには --color オプションがあるのに、statusだけ無いので、
これだけ

[color]
status = auto

と指定しなければいけないのを避けたくて、出来ればstatus --colorなどしたいのですが、可能ですか?

また、svnでいうリビジョン指定のupdate、たとえば svn up -r4などをしたいのですが、
revertを使うと勝手にコミットされてしまいます。コミットせずに、ただリビジョンを戻したいときはどのコマンドを使えばいいですか?
277login:Penguin:2009/04/30(木) 23:48:05 ID:16J7B4JZ
>> 276
∩( ´Α`)< 276、「git config --global ui.color auto」ってどうよ?

2個目のは
git checkout 〜
かな?
# よくわからんが。
278login:Penguin:2009/05/01(金) 00:27:11 ID:gzznyDiQ
>>277
ありがとうございます。
>git config --global ui.color auto
centos4.2 / git 1.5.2.1 で効かない模様です・・

2個目は、例えばsvnで、リビジョン5が最新だとして、リビジョン5の時点で、「svn up -r3」と打つと、リソースがリビジョン3の時点のものになるのです。
その後「svn up」と打てば、リビジョン5に戻ります。
gitの場合、「git revert コミット時のハッシュ」で、前回のコミット時の状態に戻すことが出来ますが、revertは「前回との差分を反映した上でコミットする」ようなのです。
以前の状態に戻してもらえれば、別にコミットしなくてもいいのですが、そういうことをしてくれるコマンドを探しています。
279login:Penguin:2009/05/01(金) 02:11:17 ID:UyxRnjCJ
>>278
git checkout {commit} -- .

git reset使っても良いけどreflog変わっちゃうから私はお勧めしない。
280login:Penguin:2009/05/01(金) 23:16:38 ID:N/KL5AXz
二つ前だったら
git checkout HEAD^^
とか書けるのがいいやね
281login:Penguin:2009/05/02(土) 03:42:35 ID:jDKFtoWO
git help svnなどでヘルプが見られるはずなのに、No manual entry for git-svnとしか出ません。
バージョンによってヘルプが無かったりするんでしょうか・・?
282login:Penguin:2009/05/02(土) 08:23:07 ID:ww11tj+4
make man してないってオチじゃなくて?
283login:Penguin:2009/05/02(土) 17:53:08 ID:jDKFtoWO
>>282
cdとかlsのmanはあります。
centos5.1で、gitはyumでインストールして、バージョンは1.5.2.1です。
284login:Penguin:2009/05/02(土) 19:16:03 ID:9M7bqe9L
>>283
じゃあドキュメントは別のパッケージになってるとか。
285login:Penguin:2009/05/07(木) 10:52:48 ID:PyUwUZuU
試してないけどgit-svnパッケージを入れないとコマンド自体無いよね。
286login:Penguin:2009/05/07(木) 21:35:53 ID:0VojICGT
面倒だからgitで最新版落としてコンパイルしてインストールしたら?
287login:Penguin:2009/05/07(木) 22:37:33 ID:09tnqhRR
1.6.3出たぞ
288login:Penguin:2009/05/17(日) 01:00:54 ID:ePLSrhR8
1.6.3.1
289login:Penguin:2009/05/19(火) 00:05:14 ID:5BgkgMmK
キーを作って、

Enter file in which to save the key
(/c/Documents and Settings/Administrator/.ssh/id_rsa):


ってメッセージが出るのですが、
該当のディレクトリを探しても、

/.ssh/id_rsa):

が存在しません。

どこにいったのでしょうか?
290login:Penguin:2009/05/19(火) 00:45:40 ID:3rv5JzN1
>>289

まだない。
その文の訳は「鍵を保存するファイルを入力してね」だ。
カッコ内は、名前を指定しなかったときにこの名前になるよってこと。
291login:Penguin:2009/05/19(火) 00:58:18 ID:5BgkgMmK
んじゃあ、ENTERを押せばよかったってこと?
292login:Penguin:2009/05/19(火) 01:31:25 ID:zZo+QRSM
そゆこと
293login:Penguin:2009/05/26(火) 12:25:38 ID:lz1Hno2I
git clean -fx したときにでも特定の虫ファイルが生き残るようにする設定ないかなあ。
294login:Penguin:2009/05/26(火) 12:56:04 ID:F7u3ZQup
>>293
まさかGitリポジトリの中で虫を飼ってるやつがいるとは・・・。
はっ!なるほど、バグを飼ってるんですね、わか(ry
295login:Penguin:2009/05/26(火) 15:02:12 ID:lz1Hno2I
そうそう、鈴虫だけは駆除したk…ってのはおいといて。
設定ファイルをgitで管理してて、
パスワードとかはいっててリポジトリに入れるのはなんかいやなファイルがあるんだけど、
git clean -fxとかしちゃうとそれまで消えちゃうんだよね。
makeの.PRECIOUSみたいな設定ができると嬉しい。
まあ需要なさそうだよな…
296login:Penguin:2009/05/26(火) 20:43:46 ID:dhhqSphP
>>295
何の設定ファイルか知らないけど、そういう場所でclean -fx
するのはそもそも間違いじゃないの?
297login:Penguin:2009/05/26(火) 23:19:27 ID:lz1Hno2I
まあね。そうなんだけど。
でもauthorized_keys~とか消したくね?ね?
298login:Penguin:2009/05/26(火) 23:48:37 ID:KnIgZeet
うだうだ言ってないで、自分で改造しろよ
299login:Penguin:2009/05/26(火) 23:51:18 ID:Aiox/6VI
俺なら、レポジトリの外においとくけどなぁ > 設定ファイル
300login:Penguin:2009/05/27(水) 01:55:32 ID:h/OEez6w
色んなところの設定をリポジトリに突っ込んで管理してるのです。
>>298の言うとおり、そのうち改造してみることにします。
301login:Penguin:2009/05/27(水) 10:46:25 ID:V1RGq7PO
clean -f じゃだめなの?
302login:Penguin:2009/05/27(水) 17:11:06 ID:h/OEez6w
まあそういう解もあるけど。
でも、hogehoge~とかがUntracked filesと表示されるのはいや。
303login:Penguin:2009/05/27(水) 18:40:50 ID:NsMBl7Do
>>302
.gitignore で除外指定するのも手かと。
304login:Penguin:2009/05/27(水) 19:10:26 ID:V1RGq7PO
>>302
普通にcleanしてもhogehoge~とか消えないの?
hogehogeがignoreされてるの?
305login:Penguin:2009/05/27(水) 21:29:16 ID:h/OEez6w
つまりですね、.gitignoreされているhogehoge~を消したいが、
.gitignoreで一緒に除外されているid_rsaとかは消したくない、と。
そういうことです。
git config clean.precious とかで設定できるようにしようかと思っている。
306login:Penguin:2009/05/27(水) 22:07:16 ID:Jwgt63tk
git cleanを使わない。
307login:Penguin:2009/05/27(水) 23:24:03 ID:IDa+cPEF
ownershipを自分以外にしておく(対症療法...)
308login:Penguin:2009/05/28(木) 00:04:05 ID:+ifPU4jK
聞いてくるのはディレクトリのuidな罠
309login:Penguin:2009/05/28(木) 18:03:13 ID:iCE9wfb7
>>305
なるほどねぇ…俺はset nobackupなんで全く気にならなかった。
PRECIOUSいいかもねー。
末尾~のファイルを一括削除するタスク作るのが手っ取り早いような気もするが。。。
310login:Penguin:2009/05/28(木) 23:23:15 ID:+ifPU4jK
それだけのためにMakefileを書くのもどうも。
311login:Penguin:2009/05/29(金) 14:40:20 ID:qJp0/nmk
自分は.bashrcで
  alias rmtilde='rm -f *~ .*~'
としておいて rmtilde と打てばカレントディレクトリのバックアップファイルが消えるようにしている

毎度 rm *~ と打ってるとミスってファイル全消しとかやりそうで怖いからこうした
312login:Penguin:2009/05/29(金) 15:27:50 ID:HgM+30FZ
バックアップファイルは、別の場所に保存するようにすれば?
313login:Penguin:2009/05/29(金) 22:22:50 ID:2y8c1+1L
gitコマンドで見えないものは、気にしない。
314login:Penguin:2009/05/30(土) 14:50:11 ID:dqOmA8jR
見えないからこそ、ついgit clean -fxってやっちゃいそうで怖い。
-fつけるな、っていう反論は尤もだけど。
315login:Penguin:2009/05/30(土) 17:05:06 ID:9brHsk7F
実際clean -fdx するのはGitをビルドする時ぐらいかなぁ。
make cleanで良いだろうとは思うんだけど。

あとコーディングしてるとUntracked filesがどんどん増えていってしまう
性分なので、気軽にcleanはできない…。
316login:Penguin:2009/05/30(土) 17:05:50 ID:uf3CgwBV
>>311
シェルでワイルドカード使うときはC-x * で展開してから実行するだろ
317login:Penguin:2009/05/31(日) 10:32:14 ID:K6LNij6T
318login:Penguin:2009/05/31(日) 11:00:18 ID:0DzzHN4o
>>316
いや?
319login:Penguin:2009/06/01(月) 11:52:10 ID:rqA2erQu
>>316
rootで作業するときは
echo rm *~ みたいなことをして確認している。
320login:Penguin:2009/06/01(月) 12:51:51 ID:Lgjwq8a5
俺もalias作ってるな
321login:Penguin:2009/06/02(火) 13:07:04 ID:qa3GkTXX
debian系ならtrash-cliパッケージをインストールして、
alias rm trash
見たいなのを.bashrcに書いとけば、Windows見たいなゴミ箱のシステムが使える。
これでいざというときも安心。
322login:Penguin:2009/06/02(火) 13:54:30 ID:D8d0YmW8
>>321
trash-cliなんて便利そうなの知らなかったよ、あんがと。
323login:Penguin:2009/06/02(火) 21:16:03 ID:x7ntZyXz
そしてそれが入ってないシステムでいつもの癖が出て悶絶するw
324login:Penguin:2009/06/03(水) 09:06:05 ID:XMOgq/dG
>>323
trashコマンドはオプションがないので、rm -rf *とかしなくてもrm *でいい。
だから、rm *と打つ癖を付けとけばtrashがない環境でも削除するかダイアログで聞かれるはず。
325login:Penguin:2009/06/04(木) 11:13:39 ID:gFmd/ycH
どっちかというとそういう小細工するよりはちゃんとバックアップとっといた
ほうがいい気がする。>>323みたいなのはあるし。
326login:Penguin:2009/06/04(木) 12:39:36 ID:TWd6diqQ
俺は、~/以下のファイルを/home/$USER.bk以下にぜんぶハードリンクする
スクリプト書いてバックアップにしてる。
zshつかってるのにrm * したんだよね……
327login:Penguin:2009/06/04(木) 15:06:54 ID:vC6RyzlI
スレチ・ガイ登場の予感
328login:Penguin:2009/06/05(金) 17:33:49 ID:0gYSyA33
>>293 わかったよ。.gitignoreとは別の除外リストがあるらしい。 $ git help repository-layout |less +/exclude
329login:Penguin:2009/06/08(月) 23:17:07 ID:ZitoZgZ1
ttp://github.com/yhara/sinatbbs/tree/magazine
これをcloneしたいんですが、表示されているclone urlでcloneすると
ttp://github.com/yhara/sinatbbs/tree/master
こっちをcloneしてしまいます。
多分ブランチでmagazineが存在するんだろうと思うんですが、masterをcloneしてgit branchしてもmasterしか表示されません。
どうすればmagazineをcloneできますか?
330login:Penguin:2009/06/08(月) 23:54:18 ID:C1ERIbGC
試してないけど clone はできてるんじゃね?

リモートリポジトリの magazine ブランチで遊びたいなら、
git checkout -b magazine origin/magazine とかしてみたらどう?

リモートリポジトリのブランチは git branch -r で確認できると思うよ。
331login:Penguin:2009/06/09(火) 00:07:59 ID:AyjP2z0q
>>329
git clone git://github.com/yhara/sinatbbs.git magazine

じゃない?
332login:Penguin:2009/06/09(火) 07:51:55 ID:xJxgLqqZ
$ URL=git://github.com/yhara/sinatbbs.git
$ git clone -n $URL
$ git checkout -b magazine origin/magazine

magazine以外取ってきたくもない、という場合はこうかな。
$ mkdir sinabbs
$ cd sinabbs
$ git init
$ git remote add -t magazine origin $URL
$ git fetch
$ git checkout -b magazine origin/magazine
333login:Penguin:2009/06/10(水) 00:58:47 ID:KXr3oHi6
>>332
いけました、ありがとうございました。
334login:Penguin:2009/06/18(木) 15:44:21 ID:5DrDTVn8
1-2-3 … master
 +-a-b-c-d-e … experimental

で、 experimantal のうち a と c だけ master に適用して github に push したいです
master で experimental をマージしたら a b c d e 全部 master に入ってしまうのが困るです
335login:Penguin:2009/06/18(木) 19:01:04 ID:2Ebk94KK
>>334
>>74>>76あたり
336login:Penguin:2009/06/18(木) 20:18:53 ID:cCav561R
>>334
cherry-pickが手軽だと思う
337login:Penguin:2009/06/18(木) 21:43:20 ID:Ntg4BqVh
git-pushのデフォが--dry-runで、本当にpushする時だけ
--no-dry-runっていう動作にするにはソースをいじるしか
ないのかな。そういう需要ってあまりないんだろうか。
338login:Penguin:2009/06/18(木) 21:57:41 ID:eLD/FLhK
>>337
git config --global alias.p 'push --dry-run'
としてpush使わないとか
339login:Penguin:2009/06/21(日) 20:28:22 ID:lOVS9wsZ
charset という名前の github の唯一のリポジトリを削除する方法は

  git push [email protected]:USERNAME/PROJECT.git :charset

でいいよね?
charset は予約名で、作ったら絶対に消せないとかそういうのないよね

  git push 場所 master

でも master が GitHub の USERNAME の PROJECT のページに出てこないんだけどなんだろう
ttps://github.com/USERNAME/PROJECT/tree にアクセスすると
ttps://github.com/USERNAME/PROJECT/tree/charset に飛ばされるんだが
ちなみに ttps://github.com/USERNAME/PROJECT/tree/master は 404
340login:Penguin:2009/06/21(日) 22:41:22 ID:zEt58fLN
間違ってるかもしれないけど、github からプロジェクト消したいなら
ウェブ上のインターフェイスからできるよ。
341login:Penguin:2009/06/22(月) 06:17:19 ID:dUjEbQcZ
>>339
最近のGitHubは微妙にレスポンスが悪い
pushしたら2時間くらい放置することにしてる
たぶん、今日見たら消えてると思う

質問、トライアルごとにブランチ切るような使い方してるんだけど、
一応完成して、メインストリームブランチに入れて、
倉庫みたいな物置ブランチにコピーしておいて
という使い方をすると、「もう必要ない使用済み」のちいさなブランチができるよね
これを
「"圧縮"してどこかに退けておいて git-branch で表示されないようにしておく」
ということはできない?
git branch すると20個くらいだーっと表示されてもうわけわからん状態になってるん
ブランチを消してもいいんだけど、なんか操作ミスとかでマージしたメインブランチが消えたときとかの予備にみたいな貧乏性
342login:Penguin:2009/06/24(水) 21:35:59 ID:2QUgEiwr
>>341
まったく同じだw
俺も貧乏性というかビビりなんでブランチやたら残ってる。
pushの際にfast forwardできた時はまだ良いんだけど、rebaseとかcherry-pickした時は
古いブランチを念のために残しちゃうんだよねぇ。
やり方としては、必要なくなったブランチがある今の場所を他からremoteで
fetchさせておいて、そっちでcheckout -bしておくとかかね…めんどくさいな。
343login:Penguin:2009/06/25(木) 21:57:36 ID:Onb9g2E7
git-daemonについて質問です。
開発用と同じPCにgit-daemonをセットアップしようとしています。
基本的にはこちらにある通りに設定を行いました。
http://d.hatena.ne.jp/amacou/20090113/1231831940
わたしの環境はgit-1.6.0.2、opensuse11.1です。

git cloneやcommitはできたのですが、
git pushを行うと以下のエラーメッセージが表示され、結局pushが行われません。
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 219 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
error: unpack failed: unpacker exited with error code
fatal: read error (Connection reset by peer)

>>1にあるマニュアルの日本語訳は見たのですが、
git-daemonについてはまだ訳されておらず、よく分かりません。
すみませんがよろしくお願いします。
344343:2009/06/25(木) 22:08:30 ID:Onb9g2E7
上のエラーメッセージはLAN内のプライベートIPを用いてgit pushとしたときで、
127.0.0.1に対してgit cloneをした後、git pushとしたときは
Counting objects: 5, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 258 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
error: unpack failed: unpacker exited with error code
To git://127.0.0.1/hobby/git_test.git
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'git://127.0.0.1/hobby/git_test.git'

ネットワークの設定がおかしいのかもしれません。ちなみにps aux | grep gitすると、
git-daemon --syslog --detach --reuseaddr --user=git-daemon --group=nogroup --pid-file=/var/run/git-daemon.pid --base-path=/srv/git --enable=receive-pack --export-all
というコマンドで実行されているようです。
345login:Penguin:2009/06/25(木) 23:07:10 ID:E5OhASqI
>>343
うーん、git-daemonの書込みパーミッションとか?
git-daemonにreceivepack設定してpushさせると匿名フルオープンになるみたいなので、
sshのほうが良いんじゃないかと思う。
てかgit-daemonでpush出来るとは知らなかった…
346343:2009/06/25(木) 23:54:48 ID:Onb9g2E7
>>345
gitを使い始めて浅いもので理解していないのですが
> sshのほうが良いんじゃないかと思う。
これはどういう意味でしょうか?man git-pushで
ssh://[user@]host.xz/path/to/repo.git/
という表記は見かけましたが、このコマンドでpushするべきだとことでしょうか?
347343:2009/06/26(金) 00:48:11 ID:sI4GnV0X
書き込みパーミッションが無いことが問題だったようです。

まず、自分ユーザの権限が及ぶところにbareレポジトリ(~/repos/git_test)を作ってみたら
$ git clone ssh://127.0.0.1/~/repos/git_test
は出来ました。そこに編集後、$ git pushすることもできました。

>>344のプロセスにあるように、
git-daemonはgit-daemonユーザ権限で実行されているのですが、
git-daemonユーザが/srv/git以下に書き込み権限がないことが理由だったようです。
レポジトリ以下のファイルをgit-daemonユーザにchownしたら、
git push git://....ができるようになりました。

ところで、gitレポジトリに書き込み権限のあるユーザに
新しいレポジトリを作ってもらうようなコマンドって存在しますでしょうか?
例えばですが、git create git://host.xz/path/to/repo.git/
を発行すると、新しくrepo.gitというレポジトリを作ってもらうようなものです。
348login:Penguin:2009/06/26(金) 01:20:59 ID:uHyKMR0H
>>346
このへん参考になるかも
http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/user-manual.html#pushing-changes-to-a-public-repository

Gitの操作に慣れるという意味ではgit-daemonもsshも使わずに普通に同じホストで
pushとかしても大体同じなので、それでもいいと思う。
gittutorial(7)
http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/gittutorial.html

LAN内少人数で中央集権の置き場として運用したいということなら、
git-daemonで匿名pushOKにしてやっても良いかもしれないですが。

sshでpushはさせたいけどシェルは使わせたくないとか、本格的にGitを
ホスティングしたいのであれば、Gitosisが便利ですよ。
349login:Penguin:2009/06/26(金) 02:03:14 ID:uHyKMR0H
>>347
>例えばですが、git create git://host.xz/path/to/repo.git/
>を発行すると、新しくrepo.gitというレポジトリを作ってもらうようなものです。
よくわからないけど、あったっけなぁ。ブランチを作るのはできるけど。。。
sshできるならそこのホストにログインしてgit initすれば出来る。
それか管理者が作っておいてあげるとか。
Gitosisはそのへんの管理が柔軟にできるようにはなってましたが。
350login:Penguin:2009/06/26(金) 14:12:47 ID:2GlKWaVl
Windows に cygwin 入れて使ってます。
ls ~ して出るところに .gitignore を置いているのですが、
git status すると、ignore 指定したファイルが

# Untracked files:
# (use "git add <file>..." to include in what will be committed)

に出てきます。どのように設定すればよいでしょうか。
351login:Penguin:2009/06/26(金) 17:37:09 ID:JV5Aa+Hk
>>350
git config [--global] core.exludesfile ~/.gitignore
352login:Penguin:2009/06/26(金) 17:46:31 ID:2GlKWaVl
>>351
ありがとうございます。
それでも変わらず…。
353login:Penguin:2009/06/26(金) 18:38:46 ID:iVeHZqbP
>>352
core.excludesfile だよん
354login:Penguin:2009/06/26(金) 23:51:12 ID:p2TqTPM6
>>348
お返事ありがとうございます。

> Gitの操作に慣れるという意味ではgit-daemonもsshも使わずに普通に同じホストで
> pushとかしても大体同じなので、それでもいいと思う。
git://~~~とかssh://~~~でなくともgit clone ~/path/to/repo.git/
という感じにネットワーク越しの操作じゃなくても使えるのですね。
こういうことができるなら、
わたしの使い方ならgitデーモン立ち上げなくともよさそうです。

いただいたURL、Gitosisについても今後の為に読ませていただきます。
ありがとうございました。
355login:Penguin:2009/06/29(月) 00:33:12 ID:cM4lxNQ+
linuxデスクトップユーザーの特徴

@インストールしただけで選民思想
Aやっていることはwindowsと同じ。しかもめんどくさくなっただけ。
Bコマンド打ち込んでプロだと勘違い
C黙ってwindowsでも使ってろと間口を狭める
D素人がだのなんだのとwindowユーザーを馬鹿にする
Eカーネルいじればいいだろと無茶を要求
Flinux開発者とのずれを認識できていない
Gwineを使うくせにlinuxを再現しようとする動きがあるとたたく

       冫─'  ~  ̄´^-、
     /          丶
    /             ノ、
   /  /ヽ丿彡彡彡彡彡ヽヽ
   |  丿           ミ
   | 彡 ____  ____  ミ/
   ゝ_//|    |⌒|    |ヽゞ
   |tゝ  \__/_  \__/ | |    __________
   ヽノ    /\_/\   |ノ  /
    ゝ   /ヽ───‐ヽ /  /  linuxはめんどくさくて難しい分だけ、
     /|ヽ   ヽ──'   / <  自称プロが悦に浸るためのツールとして最高なんじゃないだろうかwww
    / |  \    ̄  /   \
   / ヽ    ‐-            ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
356login:Penguin:2009/06/29(月) 11:19:14 ID:ZvxokV6H
>>353
ありがとうございます。うまくいきました!
357login:Penguin:2009/07/02(木) 10:56:24 ID:jjJW7RlL
git status を git st にしようと

git config --global alias.st status

しました。

git status では何も変更がないのに
git st すると膨大な modified: が出ます。
( modify してないのに )

git status = git st にするにはどうしたらいいでしょうか。
358login:Penguin:2009/07/06(月) 14:19:12 ID:6WnxlUWF
BがAをcloneしているとして
B→Aにpushしたとき、warningがだだっと出て、Aではgit reset --hardしないとpushした内容になりません。
resetせずとも良いやり方はありますか?
(A→Bは操作できません)
359login:Penguin:2009/07/06(月) 14:59:26 ID:qaJTybW2
>358
warningの内容が分からないので適当だけど、
A側に変更がある状態でpushしてるんじゃないかな。
pushする先はbareリポジトリのほうがいいよ。
360358:2009/07/06(月) 18:06:27 ID:6WnxlUWF
>>359
Thanks!
bareリポジトリにpushすれば良いのですね
今まで勘違いしてたけど調べて分かりました
361login:Penguin:2009/07/06(月) 19:01:30 ID:tXUbQGaL
>>357
分かる方いらっしゃいませんか
362login:Penguin:2009/07/09(木) 08:58:11 ID:neFt6wMr
>>357
俺は ~/.gitconfig にこうやって書いてるけど、全然問題なし。
[alias]
st = status
363357:2009/07/09(木) 09:41:44 ID:spRnDxWI
>>362
ありがと。そうか。。。
正しい git status の結果になるディレクトリと、
長大な modified が出るディレクトリがあることが分かりました。
仕方なく git status と書かれた gitst.bat を使ってます。
364login:Penguin:2009/07/09(木) 14:45:00 ID:neFt6wMr
>>363
…もしかしてWindows?
ここLinux板だし、こっちでも聴いてみたらどうだろう。
http://pc12.2ch.net/test/read.cgi/tech/1242918130/
365login:Penguin:2009/07/09(木) 14:53:30 ID:spRnDxWI
>>364
Windows ( cygwin ) です。
そっちで聞いてみます。ありがとうございました。
366login:Penguin:2009/07/20(月) 12:59:20 ID:y3l+3ouD
GitHub で公開されてる fork 元で、バカみたいに大規模なファイル構成とファイル内容の全変更がありました
いちおうこれに追随しなければならないんですが、
手元の適当なブランチに試しにpullしたら衝突解消がとってもめんどくさいことになって泣きました

手元にブランチが20個くらいあります。全部に対してこれを繰り返すのは嫌です
きっとなんか便利な方法があるんだとは思うんですが、何をすればいいものなんでしょうか?
367login:Penguin:2009/07/20(月) 14:29:02 ID:/rqSq1cX
>>366
WWW::Mechanize?
368login:Penguin:2009/07/20(月) 19:07:11 ID:q2y5p7aG
大量の衝突をうまくマージする方法じゃないの?
取得を自動でやる方法じゃなくて
369login:Penguin:2009/07/20(月) 19:18:33 ID:/rqSq1cX
>>368
ごめんなさい、>>367は「バカみたいに大規模なファイル構成とファイル内容の全変更」があったものについての予想です。
370login:Penguin:2009/07/20(月) 20:05:55 ID:ma9OV7L+
Ruby版の?

module WWW
 class Mechanize
 end
end

class Mechanize
end
# と外出しして
module WWW
 Mechanize = ::Mechanize
end
で後方互換性を保つとゆー大顰蹙。

# nbsp の使い方はこれであってるのだろうか
371login:Penguin:2009/07/20(月) 22:36:14 ID:1OZrXuJk
うぉーなんだそれは…
372login:Penguin:2009/07/21(火) 04:43:12 ID:nT3Auy6R
論理構造的にはともかく、diffの各行的には単にインデントが浅くなっただけじゃん
module WWW と end のとこだけだろ、それ引っかかるの
373login:Penguin:2009/07/21(火) 12:41:57 ID:Y7zra871
>>366
git rerere --help
374login:Penguin:2009/07/21(火) 13:52:37 ID:HzmMUGDt
GitHubに試しに登録してpushまで終わったんだが、
検索にかからない、自分のIDすらかからない・・・なんだこりゃ
375login:Penguin:2009/07/22(水) 06:38:32 ID:dp/16pzu
>>372
これ、lib/www/mechanize/ 以下のファイルが全部 lib/mechanize/ に移動してるんだよね
手元では lib/www/mechanize/ の中に編集されたファイルがたくさんあるだろうから、
rebase で遡って差分適用するたびに衝突起こすな
376login:Penguin:2009/07/24(金) 14:17:45 ID:6MAoexAT
git commit したら自動で -v オプションを付ける方法はなんでしょうか
377login:Penguin:2009/07/26(日) 10:29:12 ID:r004HONT
>>376
aliasを設定するとか。
378login:Penguin:2009/07/29(水) 21:06:50 ID:NqWOLxIQ
1.6.4 age
379login:Penguin:2009/08/02(日) 06:28:58 ID:ANiJcqBB
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06767-9
原書はどんなできなのかな?
380login:Penguin:2009/08/02(日) 09:08:14 ID:1MTX0arw
>>379
Pragprogの原書なのでブランド買いした。

CVS/Subversion/Mercurialを使った経験ありの俺的にはそれなりに
使えるようになった。

管理オブジェクトの話とかplumbingコマンドのレイヤーについては
さほど載ってなかったはず。
381login:Penguin:2009/08/02(日) 19:51:08 ID:ANiJcqBB
>>380
レビュー、ありがとう。
この訳本が出たら、立ち読みしてみて、考えよう。
382login:Penguin:2009/08/03(月) 14:34:54 ID:RIRtotud
gitとsquidを連携したwebキャッシュ作りたいんだけど
gitを改造しないでsquidと連携させることできる?
383login:Penguin:2009/08/03(月) 16:11:32 ID:T85XxxMu
git cvsimport
でCVSリポジトリを変換しようと思ったらメッセージが化けました。
今までTortoiseCVS SJIS版(あろはだよCVS版)を使っていたのでそうなったんだと思いますが、
このメッセージをUTF8に変換するにはどうしたらいいんでしょう?
どなたかお助けいただけますと幸いです。よろしくお願いします。
384login:Penguin:2009/08/03(月) 20:24:19 ID:6y63jn1e
>>382
「連携」が何か他の人に伝わってる、と思うのはなぜ?
385login:Penguin:2009/08/06(木) 07:01:18 ID:KCKgFcNy
>>383
おれはEUC-JPなcvsからcvsimportしたやつは、
git config i18n.commitEncoding EUC-JP してるけど。
まああたらしいログをUTF8で書くとやっぱり化けるけど。
基本自分は英字でログかくから気にしてない。
386login:Penguin:2009/08/06(木) 07:05:35 ID:KCKgFcNy
とカキコしてから気になって調べたら、
git config i18n.logOutputEncoding UTF8すると
あたらしくUTF8で書いてもしっかり全部化けずにいけますた。
387login:Penguin:2009/08/10(月) 17:32:11 ID:2cu11IQe
ずっと思ってたんだけど、merge って意味なくね?
一意なハッシュで管理されてるなら cherry-pick だけで十分じゃね?
ローカルなブランチが晒されるしコミットメッセージの編集もできないし merge は害悪しか思いつかないんだが
388login:Penguin:2009/08/10(月) 17:41:46 ID:+bQVdOii
うん、やっぱ言葉が悪いよな

私たちが図を書かず頭のイメージだけで考えるところの「ブランチのマージ」は、
たいていの場合、適切な方向に rebase することで達成される
git を使っていて「マージ」したいと思ったなら、まずは rebase を検討すれ
389login:Penguin:2009/08/10(月) 17:42:14 ID:Ln/irodm
>>387
cherry-pickしたらハッシュ変わるけどどうすんの?
390login:Penguin:2009/08/10(月) 17:59:06 ID:+bQVdOii
たぶん、衝突するようなマージばかりを経験してるのだと思われ
391login:Penguin:2009/08/10(月) 18:11:48 ID:Ln/irodm
公開したらrebase出来なくなって、FFできそうなやつでもmergeするしかなくなるってのは
どうにかならないもんかとたまに思うことはあるな。まあしょうがない気はするけど。

FF出来ない時にマージコミットつくらずに1つの新しいコミットにまとめてしまって、
その上で便宜上だけでも元のコミット群はこれらです、って感じに参照させることが
出来ればいいなーと妄想することがある、けどそれって結局マージと同じことなんだよね。
ただ、受け入れ側でマージコミットを嫌がる場合も多いので、そんな機能もあったら便利かも
しれないとかまた妄想。
392login:Penguin:2009/08/10(月) 20:56:04 ID:i4bAM8hh
えーと、こっちのブランチでcherry-pickしてないのどれだっけ?
とかなる希ガス
393login:Penguin:2009/08/10(月) 21:07:20 ID:IbZ/Z+oA
cp はブランチ作り切った最後に行う
cp を頻繁に行う人はコミットメッセージも cp 時に有機的に書き換えてるはずなので
よっぽど変なまとめ方しない限り大丈夫

ウィンドウ2枚開けて片方に git log の結果を常に表示しながら cp しないといけない状況ばかりなのには同意はしておく
394login:Penguin:2009/08/10(月) 23:47:00 ID:nFA1XbhB
>>391
公開してるリポジトリに直接commitしたりとかしてんの?
395login:Penguin:2009/08/10(月) 23:57:49 ID:Ln/irodm
>>394
いや、pushしてるよ。ただフォーク元も公開してるから。
396login:Penguin:2009/08/11(火) 00:18:25 ID:gCZov+kt
mergeっていけないことなのか?必要悪なのか?
397login:Penguin:2009/08/11(火) 01:51:55 ID:9aVIR9qR
pushしたブランチの履歴は変更してはいけないというルールがあるからな

>>396
衝突しない理想的な世界であれば好ましい
衝突が起こったとたん別のコミットになるからシステムデザイン上は駄目
「AをしてBをしてCをする差分適用」であるコミットが衝突後
「AをしてBをしてXをしてCをする差分適用」というコミットに摩り替わっちゃやっぱ駄目だろ

「AをしてBをしてCをする差分適用であるが、今回に限ってはBのあとにXであるさらなる差分適用がある」
という情報で格納すべき
ハッシュ値は不変で
このコミットを cherry-pick したらまずは「AをしてBをしてCをする差分適用」が試されるべき
398login:Penguin:2009/08/11(火) 06:08:40 ID:od33ZDSx
>>397
ハッシュ値をどうやって計算してるか知らないの?
399login:Penguin:2009/08/11(火) 08:06:48 ID:hQImHIEr
ハッシュ値は全く同じアルゴリズムが使われてさえいればどう計算してもいいんだよ
ハッシュというとファイルをバイト列として利用しなければいけないとしか思いつかない人が稀にいるが
400login:Penguin:2009/08/11(火) 10:38:30 ID:AVaSZeyh
resolveがある場合のgitのマージコミットって、
> 「AをしてBをしてCをする差分適用であるが、今回に限ってはBのあとにXであるさらなる差分適用がある」
におけるXになってない?

そもそもA B Cが何を指してるのかよくわからんが。
401login:Penguin:2009/08/12(水) 15:06:33 ID:8h+T8Ju7
svn でさほど不満はないのですが、ファイル数、ファイルサイズともに
大きなプロジェクトで update, commit 速度が遅く困っています。
git に乗り換えれば速度少しでも早くなるでしょうか?また、各
ローカル側の hdd 使用量は svn より増えると考えておいてよいで
しょうか?
402login:Penguin:2009/08/12(水) 15:53:46 ID:mycJo5BE
>>401
速度はたぶんものすごく早くなると思う。
ローカル側のディスク使用量はそれほど気にならないよ。

ただし操作方法、概念が異なるので、もしも仕事で大人数でやるのなら、
習得させるのにそれなりに工数がかかると思う。
403login:Penguin:2009/08/12(水) 17:45:44 ID:Z/KJAJVW
では、ひとまず svn のリポジトリを、残し一部メンバのみ git 経由で
アクセスする感じで検証でしょうか。ただ、この使い方だと速度面の
メリットはわからないですよね。大プロジェクトなので難しいところ。
404login:Penguin:2009/08/12(水) 18:24:39 ID:FOPhwWTC
>403
今一環境がかんないんだが、大プロジェクトでも
updateとcommitなんて日に一度くらいじゃね?

自分だけgit-svn使えばローカルだけで大抵の用事は済むので、
快適になると思うよ。
405login:Penguin:2009/08/12(水) 18:36:00 ID:Y2NYIgNJ
一日最低 10 回は commit してるなぁ
406login:Penguin:2009/08/12(水) 19:12:05 ID:4qtNGkYm
commit --amend含めると30いくかな
407login:Penguin:2009/08/12(水) 19:48:18 ID:pDDmfa5D
すみません。commitの回数つながりで、ちょっとおたずねします。

一般的にcommitって細かく(最低でも1つの機能の追加ごとに)やるものだと思うのですが、
調子に乗ってコーディングしていくうちに、手元で大量に変更してしまいました。
こういうときって、どうされていますでしょうか。

diffの出力を手作業で加工して、追加した機能(関数)もしくは変更部分ごとにパッチを作って、
それらを取り込んで→コミット...を繰り返せば何とかなると思っているのですが、
他によい方法はないでしょうか。
# 対象は1ファイルです。
408login:Penguin:2009/08/12(水) 20:05:23 ID:dme4v7A0
>>407
そんな時のための git add -p じゃないか
409login:Penguin:2009/08/12(水) 20:25:02 ID:mycJo5BE
>>408
最近それ知って、gitすげーと思った。
git add -i なんかはまだ使いこなせないが、極めたら世界が変わりそうだ。
410login:Penguin:2009/08/12(水) 20:26:37 ID:3jImDu3O
>大プロジェクトでも
>updateとcommitなんて日に一度くらいじゃね?

日にもよりますが1日10回ぐらいですかね。プログラマは20人以上
いますので全員合わせるととんでもない量の svn commit メールが来て
大変です。データサイズも200GBくらいはあるんじゃないかな。
TortoiseSVN で commit をルートディレクトリから行うと5分待ちな
状態で億劫なのでサブディレクトリからこまめにあげて上げわすれとか
出るほどのひどい状態です。
411407:2009/08/13(木) 07:17:33 ID:iA5oHuEp
>>408
うわ〜〜〜。んじゃ、これは!!
すげ〜〜。

教えていただきありがとうございます。
今までの苦労は何だったんだって感じ...。
ほんと、gitすげーよ。

addのオプションか。diffとかpatch-formatとかみてたよ orz
っていうか、それ以外のaddのオプションもすごいのな。
なんか、今までやっていたことが「バージョン管理するための管理」みたいな
ほとんどが不毛なことって気がしてきた...。
もちっと精進するよ。
またお願いします。
412login:Penguin:2009/08/13(木) 15:27:28 ID:tyyaneTm
ローカル環境で git-daemon を立ち上げました。

サーバが openSUSE で、
クライアントが Windows Vista。

ローカルなので ssh なしでやりたいのですが、
どう設定すればいいでしょうか。
413login:Penguin:2009/08/13(木) 15:44:37 ID:zQQwCkns
まあ、色々方法はあるわな、httpとかxinetdとか
てっとりはやくやってみたそうだから、xinetdでやってみたら?
xinetd
414login:Penguin:2009/08/13(木) 15:49:26 ID:zQQwCkns
xinetdを起動する
xinetdにgitを登録する(gitポートにリクエストがあったとき、xinedがgit-daemonを呼び出す)
あとは、gitリポジトリ(コンテンツ)の用意と、クライアントへのgitのインストールで
クライアントから、git cloneっしょ
415login:Penguin:2009/08/13(木) 15:57:01 ID:tyyaneTm
>>413-414
ありがとうございます。
xinetd、挑戦してみます。
416login:Penguin:2009/08/13(木) 16:30:15 ID:F9EvWFzj
417412:2009/08/13(木) 16:48:16 ID:tyyaneTm
>>416
躓いて見てみたらw
ありがとうございます。

私も openSUSE をサーバに、
複数人で開発したい用途。

そして、どうやって新規リポジトリを作ろうかと思っていたので、本当に既視感。

再度、挑戦!
418login:Penguin:2009/08/13(木) 18:29:12 ID:tyyaneTm
openSUSE で git-daemon を xinetd で起動しようと思っています。
( ssh を使うのが面倒なので… )

sudo zypper install git-daemon
sudo /usr/sbin/rcxinetd restart

して、ローカルの Vista から git clone するとエラーになります。

$ git clone git://example/test/test.git
fatal: read error (Software caused connection abort)

サーバの /var/log/message を見ると

git-daemon: [23646] cannot open pid file /var/run/git-daemon.pid: Permission denied

が出ています。とりあえず chown & chgrp & chmod して

ls -l /var/log/git-daemon.pid
-rw-r--r-- 1 git-daemon nogroup 6 2009-08-13 18:24 git-daemon.pid

とし、再度 git clone すると、やはりエラーになり、/var/log/message には下記エラーが出ます…。

git-daemon: [23765] cannot drop privileges

うまく動いている方、アドバイスお願いします。
419login:Penguin:2009/08/13(木) 18:36:55 ID:cf0vEXgI
cannot drop privileges ということなので、xinetdの設定のほうで、
git-daemonを動かす権限をsetuidを呼べる人(rootとか?)にすればい
いのかもしれない。
420login:Penguin:2009/08/13(木) 20:51:01 ID:Vyg2UZ2a
ありがとうございます。
setuid...
調べてみます。
421418:2009/08/14(金) 10:12:25 ID:vxCEaCUs
アドバイスを元に /etc/xinetd.d/git の user/group などを root にしてみたところ、
/var/log/message のエラー内容が変わりました。

$ tail /var/log/message
git-daemon: [25819] unable to allocate any listen sockets on host (null) port 9418

$ lsof | grep git
git-daemo 25772 root cwd unknown /proc/25772/cwd (readlink: Permission denied)
git-daemo 25772 root rtd unknown /proc/25772/root (readlink: Permission denied)
git-daemo 25772 root txt unknown /proc/25772/exe (readlink: Permission denied)
git-daemo 25772 root NOFD /proc/25772/fd (opendir: Permission denied)

ハマってきたので zypper remove git-daemon して、
ゼロからやり直してみたところ、やはり同じ症状に…。

openSUSE スレで聞いた方がいいのかもしれませんが、
その前に、ここでお分かりになる方はいらっしゃいますでしょうか。
422login:Penguin:2009/08/14(金) 10:35:16 ID:Q/iZulHO
>>421
ttp://www.aoisakura.jp/tdiary/?date=20081212
おなじエラーではまってる人がいました。
以前動かそうとしていたものが正常終了していないのでは?
423421:2009/08/14(金) 10:56:54 ID:vxCEaCUs
ありがとうございます。
プロセスを kill -9 し、xinetd を再起動しました。

$ sudo lsof | grep git
xinetd 26055 root 5u IPv4 1666608 0t0 TCP *:git (LISTEN)
$ sudo kill -9 26055
$ sudo /usr/sbin/rcxinetd restart

今度は readlink: Permission denied が出ないのでいい感じ!

$ sudo lsof | grep git
git-daemo 26095 git-daemon cwd DIR 253,3 4096 2 /
git-daemo 26095 git-daemon rtd DIR 253,3 4096 2 /
git-daemo 26095 git-daemon txt REG 253,3 196936 10356883 /usr/lib64/git/git-daemon
git-daemo 26095 git-daemon mem REG 253,3 47784 9946462 /lib64/libnss_files-2.9.so
( 省略 )
git-daemo 26095 git-daemon 2u CHR 1,3 0t0 2055 /dev/null
git-daemo 26095 git-daemon 3u IPv6 1666970 0t0 TCP *:git (LISTEN)
git-daemo 26095 git-daemon 4r FIFO 0,7 0t0 1666971 pipe
git-daemo 26095 git-daemon 5w FIFO 0,7 0t0 1666971 pipe
xinetd 26136 root 5u IPv4 1667341 0t0 TCP *:git (LISTEN)

と思ったのですが、

windows> git clone git://example/test/test.git
fatal: read error (Software caused connection abort)

$ tail /var/log/message
git-daemon: [26178] unable to allocate any listen sockets on host (null) port 9418

と変わらず…。openSUSE を再起動してみます…。
424421:2009/08/14(金) 11:00:50 ID:vxCEaCUs
余談。
zypper install git-daemon で作られる /etc/xinetd.d/git には

--base-path="/srv/git"

と書かれていて、" を消して

--base-path=/srv/git

としないといけなかった。
昨日からハマっているので、午前中の段階で精神的に疲労中w
425421:2009/08/14(金) 11:14:13 ID:vxCEaCUs
再起動しても

$ sudo taile /var/log/message
git-daemon: [3288] unable to allocate any listen sockets on host (null) port 9418

$ sudo lsof -i:9418
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd 2903 root 5u IPv4 6924 0t0 TCP *:git (LISTEN)
git-daemo 3296 git-daemon 3u IPv6 9929 0t0 TCP *:git (LISTEN)

xinetd と、普通のサーバが二重に立ちあがっているのが原因でしょうか ( しかも IPv6 )。

git-daemon を kill -9 しても自動で立ち上がります。
これを止める方法を探しますが、アドバイスがあると嬉しいです。
426login:Penguin:2009/08/14(金) 11:23:39 ID:Q/iZulHO
xinetdから起動されたgit-daemonが、リクエストを処理し終わっても
そのままデーモンとして残り続けていませんか?
xinetdから起動するなら、処理ごとに終了するべきですね。
git-daemonに渡せるオプションはありませんか?
--inetd だろうか。
427421:2009/08/14(金) 11:43:01 ID:vxCEaCUs
>>429
本当にありがとうございます!!
git clone できました!!!

今後の人のためにまとめると、
openSUSE 11.1 で
$ sudo zypper install git-daemon
したのを ssh 使わずに利用したいなら
/etc/xinetd.d/git を下記に変更。

■ BEFORE
server_args = daemon --syslog --detach --reuseaddr --user=git-daemon --group=nogroup --pid-file=/var/run/git-daemon.pid --base-p
ath="/srv/git"

■ AFTER
server_args = daemon --syslog --detach --reuseaddr --inetd --export-all --pid-file=/var/run/git-daemon.pid --base-path=/srv/git

変更後、xinetd の再起動を忘れずに。

$ sudo /usr/sbin/rcxinetd restart

あー、今日はもう帰ってビール飲みたい。
428427:2009/08/14(金) 11:43:52 ID:vxCEaCUs
興奮して間違えましたが、429 さんではなく、>>426 さんです。
そのほか、いろいろ助言を下さった方、ありがとうございました。
429login:Penguin:2009/08/17(月) 12:41:58 ID:w4WoSrsO
read only で構わないのですが、linus 達がいじっている
linux kernel tree 本線を git で、ローカルのlinux PC 上に
同期できるでしょうか?その場合、どうすれば良いですか?

430login:Penguin:2009/08/17(月) 13:25:08 ID:IIDjTJ7I
linux kernel git torvalds

でぐぐれ
431login:Penguin:2009/08/17(月) 14:01:07 ID:w4WoSrsO
ありがとうございました。逝ってきます。
432login:Penguin:2009/08/18(火) 00:02:03 ID:cqrV6ZTW
>>429
>read only で構わないのですが、
433login:Penguin:2009/08/18(火) 14:17:17 ID:LNnWooNT
コミットの適切な粒度がわからない
GitHubのNetworksでどばっと20個くらいドットが突出すると悩む
これやっぱ手作業でまとめておくべきだったかもしれない、とか

手元のコミットは細かくして公開するブランチに追加するときにまとめるのがいいのだろうか
でもコミットを1個ずつ扱うのってブランチのメリットなくね、とも思ってみたり
マージとかができてこそのブランチだろう、とも思う
434login:Penguin:2009/08/18(火) 14:41:53 ID:Kn1/NE8Q
>>433
何がしたいのかが分かって、適度な量の差分があって、機能単位にまとまっていれば
(混ざり合っていなければ)それでいいんじゃないかな。
後はバリバリ作り中なのか、機能追加中なのか、とか、、、
同時にコーディングしてる人の数にもよるね…
俺はキレイなコミットを作りたいほうなのでけっこうまとめてからにしてしまうなぁ
435login:Penguin:2009/08/18(火) 22:05:49 ID:Gf8+h6+U
最近、なんかgitの勢いすごいね
そこら中で使われはじめて
リーナスのいうように、kernel特化でほそぼそといくと思ってたよ
436login:Penguin:2009/08/19(水) 12:38:13 ID:pceGE7iL
hg派だったがリスク分散のため入門gitで勉強中。
微妙な違いがいやらしいなぁ。
viとemacsは同時に使えるが
hgとgitはかなり混乱しそうだ。
437login:Penguin:2009/08/19(水) 23:02:46 ID:O0WnAYMJ
monotoneどうよ?
438login:Penguin:2009/08/20(木) 04:02:05 ID:2o0Eo2gm
>>433
そんなレベルの人間が公開なんかするな
迷惑だから
439login:Penguin:2009/08/20(木) 04:24:39 ID:amhGymTU
               .|  
               .|  
    ∩___∩    |  
    | ノ\   ,_ ヽ  .|  
   /  ●゛  ● |   .J  
   | ∪  ( _●_) ミ 
  彡、   |∪|   |     
 /     ∩ノ ⊃  ヽ
 (  \ / _ノ |  |
  \  "  /  | |
   \ / ̄ ̄ ̄ /
440login:Penguin:2009/08/27(木) 18:25:34 ID:AEidpR6i
git push した時に表示される、

Total 15 (delta 13), reused 0 (delta 0)

の delta や reused って何でしょうか?
441login:Penguin:2009/08/27(木) 19:25:19 ID:HNb4zbwi
git を使い始めて、また git 関連の文書を読んでて気になった点。

・index, cached, stage といった用語を一貫して欲しい
・obj, ref などが何の説明もなく頻繁に登場するが、何を指しているのか不明
442login:Penguin:2009/08/27(木) 21:44:24 ID:KnkKlcU8
>>441
>index, cached, stage といった用語を一貫して欲しい
MLしばらく読んでからパッチ送る、とか。
>obj,ref
git help tutorial-2
あたりかな?
443login:Penguin:2009/08/28(金) 07:32:58 ID:sWD41Zdb
>>441
> ・index, cached, stage といった用語を一貫して欲しい
無理。indexで統一できなくはないけど、どういう使い方をしているかで呼び分けてるから。
ML漁ればどういう意図で呼び分けてるかの回答はあるよ。
444login:Penguin:2009/08/28(金) 08:05:49 ID:fZ8G9Ga3
それじゃダメだろふつー
用語集はつけとくべきだな
445login:Penguin:2009/08/28(金) 12:15:32 ID:cXIbI/jo
stageは利用者側の視点。
indexは実装者側の視点。
cacheはどういう発想なのか不思議。
446login:Penguin:2009/08/28(金) 13:53:30 ID:xwPQ04ed
用語集も見つけられないの? 何なの?
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#glossary
447login:Penguin:2009/08/29(土) 14:57:13 ID:U8/P76bc
>446
cache Obsolete for: index.
えらそうなこった
448login:Penguin:2009/08/29(土) 16:10:23 ID:+Pa25OBz
ところで
> Truth be told, it can also contain a second, and even a third version of a working tree
これHamanoさんか誰かの講演を聞いた人のメモで読んだことが
あるのを思いだしたんだけど、てことは何度かgit stageしたそれぞれの
バージョンをみたり、バージョン間で差分見ることができるってこと?
もしそうなら、どういうコマンドでできるの?
449login:Penguin:2009/08/31(月) 02:43:09 ID:VXNlRilH
git のドキュメントを読んでいる最中なのですが、
subversion と違って履歴を持つオブジェクトの概念があるわけではないので
subversion のような改名いかんに関わらず履歴やdiffを追えるという特徴は
git にはないと理解しました。あってますか。
450login:Penguin:2009/08/31(月) 11:11:59 ID:kZiorwCa
git commit -m でコマンドラインから直接コミットログを書いた場合と
git commit で開いた vim から書いた場合で文字コードが違った(上記はUTF-8,vimはiso-2022-jp)ので、
git log 等で見ると vim から書いた方が文字化けしてしまいました。
git log --encoding=iso-2022-jp とすれば文字化けせずに見られるのですが、やはり文字コードを統一したいので log を直接編集したいのですが、
.git/logs/HEAD
.git/logs/refs/heads/master
を編集しても文字化けは解消されませんでした。
どのファイルを編集すればよいのでしょうか?
451login:Penguin:2009/09/01(火) 01:17:08 ID:BBTYztuT
>>449
git log -p --follow <path>
452login:Penguin:2009/09/01(火) 01:22:40 ID:BBTYztuT
>>450
git commit --amend
でHEADのコミットメッセージ入力をやりなおせる

または、
git reset HEAD^
で一旦HEAD^まで戻してやりなおす。

ちなみに
git commit -F <file>
でファイルからコミットログを読ませることが可能なので試してみて
試してないが -amend との同時利用も可能なんじゃないかな


453login:Penguin:2009/09/01(火) 06:39:58 ID:BUwsap/v
>>451
どうも。コミットを追跡することでやっているみたいですね。
でもmv後修正してからコミットしたり、あるいはcpでフォークしたり(ファイル
を分割するときとか)はやはり追跡できないみたいですね。
454login:Penguin:2009/09/01(火) 11:24:42 ID:qONSM/kc
>>450 を読んで気づいたけど、
command line のcommit log の文字コードって、今まで考えてもいなかったよ。

で、i18n.commitEncoding と i18n.logOutputEncoding の値を、
変えて色々試してみて、ワザと異なる文字コードの時の動作が
しっくりこなくて調べた。

解ったことは、
message が commit object に格納される時って、
文字コードを変換してくれるんじゃなくて
i18n.commitEncoding で、指定した値をcommit object に

encoding EUC-JP

って、挿入してるだけなのね。
encoding で指定しない時が UTF-8 で、これがデフォルトってことみたい。

出力時にi18n.logOutputEncoding を元に変換する。

だから、commit message も、raw って言えば raw なのね。

ん 、知りませんでした。ビックリ。

これで、コード変換に纏わる面倒な部分を、(出力時にまわして)
うまく避けてることになるのかな。
455login:Penguin:2009/09/01(火) 12:01:26 ID:bYVC5N8B
tortoisegitの話題はここでいいんだろうか。
indexの存在を完璧に隠蔽しているのはかなり大胆な設計だと思う。
456login:Penguin:2009/09/01(火) 12:38:37 ID:Cu6PEjTW
>>452
ar
457login:Penguin:2009/09/01(火) 12:39:46 ID:Cu6PEjTW
>>452
ありがとうございます。出来ました。
--amend は直前のコミットしか編集できなかったのですが、
ttp://www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html#rewriting-one-commit
を見て、git rebase と組み合わせると以前のコミットでも修整できることが分りました。

>>456 はミスです...
458login:Penguin:2009/09/01(火) 15:48:31 ID:cQoB1n74
修正、ではない
残念ながら
459login:Penguin:2009/09/01(火) 17:44:29 ID:Cu6PEjTW
>>458
古いコミットを削除?して新たにコミットしている、という事でしょうか?
460login:Penguin:2009/09/01(火) 19:42:56 ID:+F0cM0kX
ハッシュ見れ
461login:Penguin:2009/09/01(火) 20:44:28 ID:2vtwePxM
>>460
なるほど。
git show "古いハッシュ"
で、古いコミットのログが見れました。
削除はしてないんですね。
462login:Penguin:2009/09/01(火) 21:41:34 ID:miUg4h5c
>>461
gcしたら消えるよ。どこからも参照されてなければ。
463login:Penguin:2009/09/04(金) 22:13:13 ID:jVdAqUn/
あるリポジトリとそのミラーがいくつかあって、最初にcloneしてきた
ところから普段はfetchしている
$ git fetch
んですが時々別の場所からfetchしたい場合があります。
$ git fetch another_mirror
こういう場合、各ミラーをそれぞれremoteとして登録すべきなんで
しょうか。調べた限りではurl.<url>.insteadof=<alias>を
使ってURLに別名をつけられるのですが、fetchコマンドの最初の
引数にこのURL別名だけを与えても実際にはデータが落ちず、refspec
まで書かないといけなくて面倒です。
464login:Penguin:2009/09/11(金) 20:42:02 ID:Crcv3Tii
間違えた commit は git commit --amend で戻せますが、
git push したのを取り消すにはどうしたらいいでしょうか?
465login:Penguin:2009/09/11(金) 21:24:08 ID:GPAiiF+d
>>464
「取り消す」というのがamendしたものを反映したいという意味なら
git push -f
で上書きできるよ。
466login:Penguin:2009/09/11(金) 21:34:54 ID:Crcv3Tii
>>465
ありがとうございます。
history からも消すことはできますか。
467login:Penguin:2009/09/11(金) 21:37:03 ID:GPAiiF+d
>>466
> history からも消すことはできますか。
んん? 何を消したいのかもう少し詳しく。
468466:2009/09/11(金) 22:41:07 ID:Crcv3Tii
>>467
github に git commit & git push してから間違いに気づいてしまったのです。
それを消したいのです。git log から消えたり、
github は history を見ることが出来ますが、それからも消えるとありがたいです。
469login:Penguin:2009/09/11(金) 22:47:34 ID:CyE8alMj
>>468
何もかも上書きさるよ。
ただgithubってことは既に公開されてるから、他の人があれ何だこれこわい、
ってなるかも。つまりあんまやるべきじゃない。
470466:2009/09/11(金) 22:50:59 ID:Crcv3Tii
>>469
ありがとうございます。
確かに消すのはよくないですよね。
( 別の場所から commit したから名前を間違えてしまってw )
471login:Penguin:2009/09/16(水) 17:10:33 ID:YPgdd8OB
リモート側にpushされてきた変更を反映するのってどうやるんですか?
git log では表示されるんですけど、master に反映されていません・・・。
472login:Penguin:2009/09/16(水) 17:13:27 ID:XD22rFwt
>>471
「反映」を適当に解釈してエスパーしてみると、
git pull
473login:Penguin:2009/09/16(水) 17:19:00 ID:YPgdd8OB
>>472
リモート自身に push されてきたものを、自身の master に反映させる、でした^^;
リモート(origin)側で git pull する場合ってどう指定するんでしょう?
474login:Penguin:2009/09/16(水) 17:40:50 ID:XD22rFwt
>>473
「自身の master に反映させる」なら git pull だよ。
リモート(origin)側をどうにかしたいの?
475login:Penguin:2009/09/16(水) 18:07:18 ID:YPgdd8OB
>>474
はい。その通りです。
サーバに置いたoriginに対してローカルからpushした結果を、originのmasterに反映させたいんです。
476login:Penguin:2009/09/16(水) 18:45:32 ID:XD22rFwt
>>475
ローカルのmasterをoriginのmasterに突っ込むにはこう
git push origin master:master

文章から推測するにいまひとつ理解できてないようなので、この辺を読むことをオススメします
http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/gittutorial.html
477login:Penguin:2009/09/16(水) 19:43:56 ID:JwlYDLcs
リモートがbareじゃないのでは?
git checkout -f HEAD
478login:Penguin:2009/09/16(水) 22:23:53 ID:Wm2GOTku
『リモートに push したのに反映されていない』とエスパーしたが
それなら git remote update だよ
479login:Penguin:2009/09/16(水) 23:36:01 ID:YPgdd8OB
皆さんレスありがとうございます。

仰る通りリモートは bare じゃないです。

git checkout -f HEAD

でリモートの状態を最新にできました!
ありがとうございました!
480login:Penguin:2009/09/17(木) 01:26:37 ID:P4kqmOWE
?
481login:Penguin:2009/09/21(月) 13:23:23 ID:GwGS71uz
gitメンテナであるHamano氏自身による「入門Git」発売記念age
http://www.shuwasystem.co.jp/products/7980html/2380.html
# 翻訳本の「入門git」じゃないぞ

Amazon はすでに売り切れ状態みたいだけどね。
482login:Penguin:2009/09/21(月) 13:34:20 ID:zscoFCMs
gitは使われ始めたばかりだから、一番最初にgitの解説書書いたら、売れそうだな
483login:Penguin:2009/09/21(月) 13:57:00 ID:ZVNst0Rd
>>482
???
484login:Penguin:2009/09/21(月) 14:34:05 ID:vL4ajUNH
>>481
ぎゃー
つい最近翻訳本のほう買っちまったぜ…

Hamanoさんが書くべきだろとは思ってたけど、書いてたのか〜
目次だけ見たけどすごいしっかりしてそうだ。読むのが楽しみ!
485login:Penguin:2009/09/21(月) 14:36:17 ID:Sxx9inOy
まあ、翻訳本もPragProgブランドだし、損にはならないんじゃね?
486login:Penguin:2009/09/21(月) 14:57:30 ID:GwGS71uz
>>484
ここを読んでもっとwktkするがよい
http://gitster.livejournal.com/38015.html
487login:Penguin:2009/09/21(月) 21:31:18 ID:vL4ajUNH
>>486
ありがとう、livejournalか、そこ知らなかったよ。
wktkが止まらないので、明日本屋うろついてくる。Amazon売り切れ過ぎ、入荷予定遅すぎ。
488login:Penguin:2009/09/22(火) 20:31:15 ID:ssamdIV8
きっと、Linusの「はじめに」の最後の一文を読んで、
にんまりしてしまうに 1000カーネル
489463:2009/09/23(水) 18:27:17 ID:vjEE4TYp
誰か...
490login:Penguin:2009/09/23(水) 21:43:44 ID:jo5qX9Sx
>>463
remote 登録すると明示的に指定しなくても、そのリポジトリの全ブ
ランチを fetch してくれるのは.git/config 内でそのリモートリポ
ジトリの設定の fetch の行におまじないが書いてあるから。

別名定義したいほどの頻度で使うなら素直に remote add しろや
491login:Penguin:2009/09/23(水) 22:37:49 ID:O/8ntIxQ
>>490
>別名定義したいほどの頻度で使うなら素直に remote add しろや
>>463にはすまんが、俺もそう思ってた。
てか、refspecまで書かなきゃダメ、とかいろいろ試してみたんだったら、
MLで質問したほうが良いんじゃないかな。bugかもしれないし。
492login:Penguin:2009/09/24(木) 00:06:18 ID:h3tEtuix
>>491
んー。fetch の refspec はリモートリポジトリのどのブランチをロー
カルのどの参照名で格納するか(remote/<hoge>/master とかね)を指
定するものだから、 fetch のときに指定必須(*1)なのはしょうがな
いんじゃね?gitからしてみりゃ「どこに格納すりゃいいのよ?」っ
て話でしょ。普通はそれが面倒だから remote 登録しちゃえば?と
思うんだけどねー。

*1 何も指定しなければリモートの master がローカルの
FETCH_HEAD として格納されるはず。

「全部 fetch して remote/<URL>/* に自動的に格納されろや」とか
いう話ならMLに提案するほうがいい話だと思う。もし提案するとし
てもremote add するよりも、「デフォルトでrefspecを指定しない
場合にその挙動をとるほうがより優れている」、という論拠が必要
だと思うよ。

あと、もし pull request 受けるような状況であれば、みんなpull
用のbranch切って pull しちゃってる(or master に pull して結果
が気に入らなければ reset )だろうから、単発の fetch のrefspec
指定を楽にしたい理由があんま思いつかない。
493login:Penguin:2009/09/26(土) 14:03:44 ID:EEvSsK+s
最近GitHubが重いと思う
GitHubの収益源ってなんだっけ?
494login:Penguin:2009/09/26(土) 16:19:01 ID:1VrklZ1N
有償アカウントとか講習会とか業務への導入サポートとか。
鯖はEngineYardだな。
495login:Penguin:2009/09/28(月) 11:57:44 ID:tMILVOon
それだけで賄えるものなのか
496login:Penguin:2009/09/28(月) 17:40:21 ID:9izAOEVd
時々サーバ死んでるよね
タダで使い倒しておいてあまり文句いう筋合いもないけれど
497login:Penguin:2009/09/28(月) 18:11:25 ID:tMILVOon
無料でしか使う予定はないけど頑張ってほしい
498login:Penguin:2009/09/28(月) 18:13:49 ID:JZFsKZPh
http://fi.github.com/
そういえば、こんなのあったね。
499login:Penguin:2009/09/28(月) 22:56:07 ID:oz2dR2We
Gitはじめてなのですが、バイナリの履歴はすべて持っているのでしょうか?
それとも差分だけ?また、ローカルリポジトリには圧縮されたバイナリはどのように
保存されるのでしょうか?バイナリサイズが大きいプロジェクトで使用予定なのですが
ローカルリポジトリが膨れ上がるのを恐れています。
500login:Penguin:2009/09/29(火) 21:45:20 ID:bBdN/JgI
.git/objects の下を覗きながらcommitしていくと、git gcで
(あるいは時間が来て)packされるまではそのままのバージョンが
残ってるみたい。

mkdir foo
cd foo
git init
dd if=/dev/urandom of=BIN bs=1024k count=1
git add .
git commit -m 1
du -hs .git
echo -n A >> BIN
git add .
git commit -m 2
du -hs .git
find .git/objects -type f
git gc
du -hs .git
501login:Penguin:2009/09/29(火) 23:05:28 ID:RwaZJqu/
thunks! 時間がくれば pack されるのですね。
まあ、HDDスペース節約よりは速度重視な最適化というわけですね。
HDDは、いっぱい増やすしかないかぁ。
後 Windows のファイル名の日本語処理がまずいところが不満ですね。
これさえ解決すれば svn から乗り換えるんだけどなぁ。来年ぐらいかなぁ。
502login:Penguin:2009/10/02(金) 20:43:35 ID:N5w8ligl
>>494
あれなんかEngine Yardじゃなくなってるぽい。
こないだのメンテで移動したのかな。
503login:Penguin:2009/10/05(月) 13:23:59 ID:wUrA1+B2
なんか新しい本買った人いる?
504login:Penguin:2009/10/05(月) 13:27:13 ID:Llm7fIHP
"pro git" pdf
でぐぐれば面白いのが見つかるぞ
505login:Penguin:2009/10/07(水) 07:24:37 ID:GcizbF6G
git clone git://git.example.org/cgit.cgi/xyzzz/tree/?h=newton

git で下の階層に置かれている newton を
持ってくるにはどうしたら良いのでしょうか?

xyzzz を持ってくるのはできるのですが…   
506login:Penguin:2009/10/07(水) 07:53:19 ID:GcizbF6G
自己解決 >>329-334 辺り感謝

git clone -n git://git.example.org/xyzzz
cd xyzzz
ls
git checkout -b newton
git fetch

で取りあえず上手く取ってこれるみたいでした
なんでも一行でやろうとするなじぶん('A
507login:Penguin:2009/10/07(水) 20:16:41 ID:9QifAEec
>>506
git cloneで既にfetchしているんでcheckoutの後にfetchしなくても
508login:Penguin:2009/10/09(金) 23:56:02 ID:zcQ4FwK0
>>501
>後 Windows のファイル名の日本語処理がまずいところが不満ですね。
$ git config core.quotepath true
でもだめでしょうか。
509login:Penguin:2009/10/10(土) 10:37:00 ID:qzf82yAL
> git config core.quotepath true

cygwin 版の話ですかね。基本エンジニア以外も触るのでTortoiseGit の(MSYS版)でコミット
した後の亀が飛んで行ったところのメッセージが必ず文字化けしているのがちょっと嫌ですね。
また現在 svn を利用していてこちらを git-svn で使用したいのですがこれも MSYS版には
入っていないようなのでそこもネックになっています。
510login:Penguin:2009/10/10(土) 11:19:34 ID:KZzP/TMn
>>509
msysgit(PortableGit-1.6.3.2-preview20090607) + TortoiseGit 1.0.0.2にて
git-svn をGUI経由で使えてますよ

git-svnにはハマリどころがありました。
svnリポジトリとシンクロしているgit側ブランチでgitのマージコミットをつくったりすると
git svn dcommit時にエラーになるので要注意ですね
ここらへんに情報があります
http://learn.github.com/p/git-svn.html
Rules and Guidelines
511login:Penguin:2009/10/10(土) 19:49:42 ID:mLaG7GzK
TortoiseGit に同梱されている
512login:Penguin:2009/10/10(土) 19:51:42 ID:mLaG7GzK
途中での書き込み、すまん。

TortoiseGit に同梱されている igit.exe のソース
どこにあるか、知っている人いたら教えてもらえないだろうか?

どうも TortoiseGit のリポジトリの中にはなさそうなんだけれども。
513login:Penguin:2009/10/10(土) 19:57:24 ID:6WX0ZYRA
Linux板でWindowsのソフトの話すんなよ
514login:Penguin:2009/10/10(土) 20:14:31 ID:zeXst2F3
Windows版のgitはまだまだだよって、開発者自らいってて、どんどんフィードバックしてくれって言ってるんだから
Windowsでgit使いたいんなら、フィードバックしないと一向に改善されないと思うよ
git開発者は、Windows特有の問題とか疎いだろうし
515512:2009/10/10(土) 20:47:16 ID:mLaG7GzK
重ね重ねすまん。
スレタイのみで検索して書き込んでしまった。

分散型バージョン管理システムのフロントエンドを

git の Windows 版フロントエンド作りたいなぁと思って
TortoiseGit のソース見てたんだが、
516login:Penguin:2009/10/10(土) 20:48:31 ID:mLaG7GzK
また、途中で書き込んでしまった。
ごめん、反省した。途中だけど、もうやめる。
517login:Penguin:2009/10/10(土) 21:07:24 ID:5i7bVBSp
>>513
次スレはム板にする?
518login:Penguin:2009/10/10(土) 21:26:06 ID:e4Crdqki
ここ、隔離スレかと思ってたんだが
519login:Penguin:2009/10/11(日) 00:39:32 ID:9BCQsKnT
Windows上でgit使ってる奴なんかいなんだから、Windows特有の問題なんかしらないってことでしょ
520login:Penguin:2009/10/11(日) 02:33:37 ID:FePGrTfs
>>512 恥ずかしいやつ過ぎるwwwwwwwwww
521login:Penguin:2009/10/11(日) 02:44:24 ID:MLGHRsF4
>>515,517
プログラム板にバージョン管理システムのスレあるけど、、、
http://pc12.2ch.net/test/read.cgi/tech/1242918130/
板違いにはならないだろうけど、、、コアな話題はここでも良いんじゃないかなぁ

>>519
あっちのスレ見てると、使ってる人居るみたいだよ。
日本語ファイル名で苦労するようだけど、UTF-8 Cygwinではちゃんと使えてるらしい。
522login:Penguin:2009/10/11(日) 02:50:26 ID:9BCQsKnT
そりゃ、あっちのスレではいるだろうよ(あっちがどこなのか知らんけど)
ここはLinux板
523login:Penguin:2009/10/11(日) 03:22:42 ID:MLGHRsF4
>Windows上でgit使ってる奴なんかいなんだから
ってお前が言うから、教えてやったんだぜ。
524login:Penguin:2009/10/11(日) 03:40:02 ID:9BCQsKnT
この板だろうが、あほ?
525login:Penguin:2009/10/11(日) 03:41:49 ID:FePGrTfs
安価もつけてない2ちゃんのレスを自分だけのメッセージって思うようになったら
終わりだぜ。しばらくmixijかtwitterでもやってたほうがいい。
526login:Penguin:2009/10/11(日) 12:14:56 ID:bj1WkRKb
は? LinuxもWindowsも両方使ってる奴だって居るだろうが、カス?
527login:Penguin:2009/10/11(日) 14:55:39 ID:tk3kki/A
で、ここは本スレなのか?
528login:Penguin:2009/10/11(日) 15:00:46 ID:h+3Jm6y9
一応。
529login:Penguin:2009/10/11(日) 15:03:12 ID:h+3Jm6y9
まあ今はム板にある Subversion スレも、この Linux 板の卒業生だしな。
530login:Penguin:2009/10/11(日) 20:01:14 ID:EMO8XszP
531login:Penguin:2009/10/11(日) 23:51:09 ID:5ur/s6Zl
Git-1.6.1-preview20081227.exe から Git-1.6.4-preview20090730.exe に
乗り換えたら確かに git-svn を TortoiseGit から使えました。Windows も実用段階
に入ってきましたね。
532login:Penguin:2009/10/12(月) 12:09:24 ID:cIqY6mPO
>>531
>Windows も実用段階に入ってきましたね。
きっとビルゲイツも喜ぶよ、それ言ってやったら。
533login:Penguin:2009/10/15(木) 23:02:27 ID:eyJUfiVx
   【恐怖の】呆れるほど危険な民主党の正体【民主党】
    http://www.yo●utube.c●om/watch?v=●MUv12Ae7ojE
    小沢一郎 〜 闇の系譜 :秘書逮捕の真相/北朝鮮との黒い関係 高画質
    http://www.yo●utube.com/w●atch?v=gdKVt●_vKCHc
    2/3【イリハム・マハムティ】東トルキスタンの歴史と中共の弾圧[H21/7/8]
    http://www.you●tube.com/watch?v=6eUN●hjdBLXg
    漫画で学ぶチベット問題
    http://www.ni●covideo.jp/w●atch/sm275●2213
    日米規制改革および競争政策イニシアティブに基づく日本国政府への米国政府要望書
    http://japan.u●sembassy.●gov/j/p/tpj-j2●0041020●-50.html#mineika-s

●の部分は外してブラウザのURLに入れること

534login:Penguin:2009/10/21(水) 13:42:46 ID:c6oQncZ5



もしかして git って名前通り、日付指定で checkout できないの?



やっぱ馬鹿。



535login:Penguin:2009/10/21(水) 21:06:25 ID:l0alaDlx
>534
なぜできないと思ったのか詳しく。
536login:Penguin:2009/10/21(水) 21:07:29 ID:aa6m0+r8
>>534
おみゃーがgitなんでは
537hNhmZvkzyoOKS:2009/10/23(金) 00:55:36 ID:AJC23NiC
But while these inter- ventions slowed the adjustments of the market, these adjustments were still in ultimate control of the situation. ,
538VfpxZeUExLhxZWcT:2009/10/23(金) 22:20:46 ID:iDEpw1qy
This initial post on Every Kitchen Table frames the need for new food systems connecting more consumers with sustainably grown, processed and transported food. ,
539login:Penguin:2009/10/28(水) 22:39:14 ID:5N68sDZB
最後にコミットした時のログメッセージの再編集は git commit --amend でできるのですが、
何世代も過去のコミットのログメッセージの再編集はどうやればできるのでしょうか。
それともそんなことはできないんでしょうか。
540login:Penguin:2009/10/28(水) 22:53:34 ID:oPxfRTK5
git rebase -i HEAD\~5
みたくやって pick を edit にして、--amend の時に変更かな
541login:Penguin:2009/10/28(水) 22:53:38 ID:ZAqclN9p
>>539
色々やり方あると思うが、例えば git rebase -i ... で編集したい commit を "edit" に設定
して、そこで git commit --amend とか
542login:Penguin:2009/10/28(水) 22:54:51 ID:Bv3SPJWB
543 ◆Mizar2to32 :2009/10/29(木) 20:21:01 ID:25uBABNp
git gui は日本語UIにできるのに、 gitk はできないのも妙に思い、日本語訳を試みてみました。
妙な日本語訳の改善案などがあればお知らせください。

http://lab.mzr.jp/gitk/
544login:Penguin:2009/11/02(月) 10:53:06 ID:dHnBQYx7
>>539
脳内で考えるような「単純な差し替え」は厳密にはできない
「以前と同じ修正群と、以前と違うコミットメッセージ」を持ったコミットの列を作って繋げなおす、という手順になる
動作的には同じだが、オブジェクトとしては別だし、ハッシュ値も違う
push した後だと以前のコミットと同一視させる手段がなくてたいそう悲惨
545login:Penguin:2009/11/02(月) 22:10:38 ID:tm2FQ3Ct
もちろんそれは正しいけど、commit --amendを持ち出してる
のを見ると、そこらへんは分かってるように見える。
546login:Penguin:2009/11/12(木) 18:58:57 ID:g557GIl1
Gitの実装はいつCからGoに切り替わりますか?
ttp://pc12.2ch.net/test/read.cgi/tech/1257079004/90-
547login:Penguin:2009/11/12(木) 21:02:35 ID:ExEkAwfK
548login:Penguin:2009/11/18(水) 09:19:34 ID:F9Vk+fo2
git pull --rebaseしたのですが、

Applying: コミットメッセージ
usage: git update-ref [options] -d <refname> [<oldval>]
or: git update-ref [options] <refname> <newval> [<oldval>]

-m <reason> reason of the update
-d deletes the reference
--no-deref update <refname> not the one it points to

と出てしまいます。
git rebase --continueしても同じメッセージが出ます。
どうすればいいんでしょうか?
549548:2009/11/18(水) 15:11:19 ID:F9Vk+fo2
git fetchして、git rebase masterすると同じメッセージが出たのですが、
git rebase -i masterすると問題なくリベースできました。
解決はできたのですが、なぜgit rebase masterでリベースできないのに
インタラクティブモードではできるのか、わけがわからない・・・
550login:Penguin:2009/11/18(水) 18:47:37 ID:d8p7qpgP
>>548
rebaseの内部でコケてるみたいだけど、遭遇したことないなあ。
バージョンは? もしかしてCygwinだったり?
551login:Penguin:2009/11/18(水) 22:32:08 ID:vQLD30Z2
>>548
rebase -i masterでリベースできるってことは
ふだん使うブランチはmasterではなくて、
masterっていうローカルブランチがたとえば
ref: origin/master
みたいになってたりするの?
552login:Penguin:2009/11/22(日) 09:56:48 ID:AGTujtCR
すみません、煮詰まってしまったので詳しいかた教えていただけないでしょうか

bareじゃない二つのリポジトリAとBがあります。
(BはAからのクローンです)

Bで変更を行ってAにPushしたあと、Aでgit statusすると
A上ではBで行った変更の真逆の修正が行われてステージされていることになっています。

これはどうしてでしょうか?

純粋に期待している動作(A上でもBで行った修正がコミット済みになっていて何もステージされていない状態)にするにはどうしたらよいのでしょう?
553login:Penguin:2009/11/22(日) 11:17:08 ID:VQCPH5PD
>552
ステージされてるなら git reset なり git checkout . なりすればいいんじゃないの?
554login:Penguin:2009/11/22(日) 12:57:08 ID:KnKStRKz
>>552
bareじゃないとこにpushじゃしょうがないんじゃないかな。
Aでpullしたらいいんじゃない?
555login:Penguin:2009/11/22(日) 18:25:36 ID:AGTujtCR
回答いただきありがとうございます。

>>553
A上で、真逆の修正が行われているものを
すべてgit checkout -- hogehoge.txt
して解除してみたところ結果としてはうまくいきました

>>554
AからBのリポジトリをremoteに登録して、pullしようとすると

Because this is not the default configured remotefor your current
branch,you must specify a branch on the command line.

とおこられます。
デフォルトのリモート先ではないので
先に設定を変えましょうといった感じでしょうか

現状ですと、正しくPushするためにはbareじゃないリポジトリを
用意する必要があると考えた方がいいのでしょうか?
checkoutする方法や都度リモート先を変更するのは手順が煩雑になるため・・
556552,555:2009/11/22(日) 18:28:42 ID:AGTujtCR
間違えました。

誤:現状ですと、正しくPushするためにはbareじゃないリポジトリを
正:現状ですと、正しくPushするためにはbareなリポジトリを
557552,555:2009/11/22(日) 19:14:14 ID:AGTujtCR
たびたびすみません。自己解決しました。

BからAにPushしたあと、Aでgit reset --hard
すればいいだけでした。

返信をくださった方ありがとうございました。
558login:Penguin:2009/11/28(土) 04:29:09 ID:mXZ4Zywn
バイナリファイルがコンフリクトした際にどのように対処してますでしょうか
マージすることが不可能な場合、どちらかのファイルを選択することになりますが
自分の作業を優先してコンフリクト解消する場合には

git add コンフリクトしてるファイル
git commit

これでコンフリクト解消できますが、相手のファイルを優先したい場合に

git reset コンフリクトしてるファイル
git commit

をすると両者の作業がなかったことになってしまいます。

相手の作業を優先する場合にはどのようなコマンドを打てばよいのでしょうか
559login:Penguin:2009/11/28(土) 20:11:39 ID:xkqQAqqu
git checkout --ours --theirs
560login:Penguin:2009/12/03(木) 20:30:50 ID:lBf6Jtla
561login:Penguin:2009/12/04(金) 13:36:14 ID:F6K5uhGt
 -----B
/ \
-------A
  \
  ---C
という感じで開発を進めていて、Bの変更はマスターであるAに頻繁にマージしている状態です。
Cで $ git pull A でマージして $ git push A とすると
To prevent you from losing history, non-fast-forward updates were rejected.
Merge the remote changes before pushing again.
といわれてしまう。
なんでnon-fast-forwardな状況なんだかよくわからないです。どうやったら直せるんでしょうか?
562login:Penguin:2009/12/04(金) 22:38:29 ID:8MryHyNF
>>561
pushとpullって名前からしてやることが近い気がしてしまうけど、
pull:remoteをfetchして現在のブランチにmerge(fetchしてmergeするのと同じことが起こる)
push:remoteブランチをローカルのブランチで上書き
なので、pullはfast-forwardじゃなくてもマージコミット作ってくれるけど、
pushはマージはしないのでfast-forwardじゃない時は怒られる。forceオプションで強制pushすると
ヘタするとremoteブランチのコミットが失われる。

fast-forwardの意味が分からない場合は、チュートリアル見ると良いと思うよ。
Git入門 - トップページ
http://www8.atwiki.jp/git_jp/
563login:Penguin:2009/12/05(土) 10:43:44 ID:Pt8GWP/i
>>562
「なんでnon-fast-forwardな状況」であるかの説明になっていないけど
564login:Penguin:2009/12/05(土) 13:58:28 ID:dGM7vi/8
>>563
それが分からなければチュートリアル読んだほうが良いと思ったから。
565login:Penguin:2009/12/06(日) 00:13:42 ID:O+n3DTMA
>>564
質問は「なんでnon-fast-forwardな状況」なのかであって
「(non-)fast-forwardとは何か」ではないので、だったら
>>561の説明自体無駄で最初からチュートリアルのURLだけ
案内するのと変わんねーじゃん
566login:Penguin:2009/12/06(日) 03:51:03 ID:3OwwH+xV
>>565
ほんとだ、俺寝ボケてたみたいだわ。ごめん。

>>561
Bの進化分は既にAに反映されているが、Cはそれ以前のAの状態を元に進化しているので、
non-fast-forwardということになる。
567login:Penguin:2009/12/07(月) 12:28:13 ID:XoL3Gt8w
Git 1.6.5.5
ttp://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.5.5.txt
>Manual pages can be formatted with older xmlto again.
568561:2009/12/07(月) 13:26:24 ID:BLewJ948
若干荒れ気味になってすみません。
>566
>Bの進化分は既にAに反映されているが、Cはそれ以前のAの状態を元に進化しているので、
でその通りでした。Cで
$ git pull B
コンフリクト等解決して
$ git push A
でOKでした。
569561:2009/12/07(月) 13:34:18 ID:BLewJ948
で、思ったんですが、non-fast-forwardな原因を追いかけるのはどうやるのが一番わかりやすいですかね?
私の今回の場合、過去にどう作業していたか思い出した、という原始的な方法だったんだけど、便利なコマンドとかありますか?
$ git log --graph
とか見ても、ごっちゃで気づけなかったです。
570login:Penguin:2009/12/07(月) 14:54:49 ID:XoL3Gt8w
>>569
git statusした時に
# Your branch and 'origin/master' have diverged,
# and have 1 and 1 different commit(s) each, respectively.
という感じで出るので、これで分かる。ただしgitのバージョンが古いとこれ出ない。
git show-branchも調べてみたらいいかも。あとgitkはそれなりに見やすいと思うな。

>>561
>Merge the remote changes before pushing again.
これやってみればいいのに。mergeだけだとマージコミットだらけになっちゃうから、
rebase出来る時はrebaseした方がいいけどね。git pull --rebaseとか。
571login:Penguin:2009/12/08(火) 01:34:52 ID:JrbFTpX+
>>569
gitk --all と打つとグラフィカルにグラフ表示してくれるので
fast-forwardかどうかすぐわかる
572561:2009/12/10(木) 14:41:50 ID:ZxyM+JCY
>570,571
リモートのコンソールにログインして使うことが多いので、gitkは使えないんです。
X飛ばすのも面倒な環境だし。
git show-branch の見かたを覚えることにしますわ。
573login:Penguin:2009/12/11(金) 09:24:45 ID:n6TyF9bQ
git clone すればいいんじゃね?
574login:Penguin:2009/12/12(土) 01:53:51 ID:1uRf1xZK
入門Git買ったんだが、これ分かりやすいな
さすがに濱野さんが書いてるだけあるか。

チームで使うSCMをSubversionからGitに変えたいんだが
メンバー全員に正しいGitの使い方を教育するのは、骨が折れそうだな・・・
575login:Penguin:2009/12/12(土) 02:23:58 ID:7I0ALriM
>>574
入門Git、神本なのは確かだけど、俺としては日本語ちょっとクドい気がしたな。
アメリカ在住らしいから、脳が英語になってるんじゃなかろうか。

Gitって、viとかみたいに取っ付きにくいけど慣れてしまうと手放せなくなる
典型的な麻薬ツールだと思う。そのぶん障壁が高くて文句言われがちなんだけど。
だから「メンバー全員に正しいGitの使い方を教育」するのは、難しいだろうけど
そのぶん感謝もされるし、また始めての人にどう教えたら本質を理解してくれるのか
というのは、とても有用な情報だと思う。
576login:Penguin:2009/12/12(土) 14:40:22 ID:0trcq50X
>>574
良い本だとは思うけど、わかりやすくはないと思う。
まわりを教育するには初心者向けのわかりやすい本が欲しい。
577login:Penguin:2009/12/12(土) 15:31:09 ID:1uRf1xZK
>>575,576
日本語で読めるGitの入門書って濱野本、でびあんぐる本、ProGitくらいしかないしなぁ

でびあんぐるのは知らないけどProGit、濱野本の順で読ませるのが分かりやすいんじゃないかな
578login:Penguin:2009/12/12(土) 15:35:54 ID:1uRf1xZK
>>575
Gitが難しいのは、思想や観念を理解するのが難しいわけじゃなくて
コマンド/オプションが多すぎる、同じコマンドで2種類以上の役割を持たせてる
あたりが敷居を高くしてる気がする
579login:Penguin:2009/12/12(土) 18:45:28 ID:7I0ALriM
>>578
いや、コマンドの数が多いのは確かだけど、普段使うものは数えるほどしか無いよ。
それに全コマンド一覧なんて初心者に見せるか? 下位レベルコマンドは知る必要ないし。

もっとも障壁が高いのはGitの本質を知る事だと思う。特にsvnをやってた人は
「Gitで何が出来るのか」ではなく「svnでやっていたことをGitでやろう」とするので
自分がやっていることがほんとうは何を意味するのかよく分からないまま使うことになり、
「使いづれー」ってなる気がする。
頭を切り替えてチュートリアルを実践するだけで、けっこう分かると思うんだけどな。

>>577
最近初心者向けにGitのことブログで書いてる人も多いね。俺は純正チュートリアルでも
けっこういけると思うんだけどね。最初は会社の同僚からGit教えてもらったんだけど、
これは麻薬ツールの典型なんだが、会得してしまった人は会得してない人に教えるのが
上手くできないんだよね。viとかemacsとか、そう簡単に教えられるものじゃないみたいに。
だから結局は全て自分でチュートリアルやって覚えたけど、最初はどうしてもsvnとかに
なぞらえてしまって、イライラしたな。
580login:Penguin:2009/12/12(土) 19:41:26 ID:91i8JXzY
>>578
resetはreset(巻き戻し)とunstage(indexからの削除)に分けるべきだよな
他には何があるっけ?
581login:Penguin:2009/12/13(日) 04:59:08 ID:XTGOd8wr
>>579
Webなんかでも、svnのこのコマンドに相当するgitのコマンドは何?って質問が
結構あるしやっぱり本質は理解されてないかんじですね
indexも存在意義がわかれば非常に便利なんだけど。
Winの話題で申し訳ないけれど、TortoiseGitなんかもindexの存在を隠して
ワークツリーから直接コミットするような作りになってるし

>これは麻薬ツールの典型なんだが、会得してしまった人は会得してない人に教えるのが
たしかにそうですねw

>>580
よく使うコマンドだと
checkout ブランチ名(ブランチ切り替え)
checkout -- ファイル名(ファイル取り出し)
reset HEAD^(コミット取り消し)
reset ファイル名(ファイルアンステージ)
reset --hard(ワークツリーの修正取り消し)

582login:Penguin:2009/12/13(日) 12:05:06 ID:eLNfVime
言葉で伝えるのは難しくて
チュートリアルをいじって自分の頭の中に動作イメージを作るか
よくできた紙芝居を見せてもらうかしないと
「わかった」とはならなよね。
583login:Penguin:2009/12/13(日) 21:39:57 ID:MfgUdwK5
>>580-581
まあでも「alias書けば?」で終わるレベルじゃん
584login:Penguin:2009/12/13(日) 22:56:38 ID:hWQ7uDdJ
だよね
585login:Penguin:2009/12/13(日) 23:48:27 ID:yRHWt0hz
打つのがめんどいって話じゃなくて分かりづらいって話では?
586login:Penguin:2009/12/14(月) 00:06:09 ID:iC7LD6wI
aliasには「分かりやすい名前をつける」という機能もあるんだけど
587login:Penguin:2009/12/14(月) 00:12:42 ID:1YNrTAVE
一度やりたいことをしてくれるコマンドを知れば別名も
付けられるんだけどねー。
分かるまでがたいへん。
588login:Penguin:2009/12/14(月) 00:21:12 ID:MiMO4S1u
そのaliasを設定するためにはコマンドの使い方知ってなければ
ならないが、話の論点わかってますか?
589login:Penguin:2009/12/14(月) 00:50:41 ID:uqSDssQD
aliasでこんなんやっちゃう人もいるみたい
ttp://github.com/blog/564-hub-git-with-github
590login:Penguin:2009/12/14(月) 20:21:03 ID:9KU3MLe4
俺はrefspecの表し方がよく分からない。
文脈で書き方が
$ git push repository branch
だったり
$ git merge repository/branch
だったりするところとか。理解しきれてないからなんだろうけど。
591login:Penguin:2009/12/14(月) 22:02:14 ID:iC7LD6wI
>>588
そしてある程度分かってきたら、よほど長くない限りalias使わなく
てもよくなるんだけど、誰かが作ってくれたalias集をwebから
持ってきて、... なんて方法も今はあるからね。
592login:Penguin:2009/12/15(火) 00:21:21 ID:uU/CeyJd
リモートブランチの扱いが俺も最初はとまどったけど
省略形じゃなくてフルで記述するコマンド体系を覚えてから
省略形を使うようにしたら、すんなり理解できた

$ git push repository branch

実は
$ git push repository branch:branch
の省略形で、手元のbranchからrepositoryのbranchへ対してpushしなさいという意味

一方mergeのorigin/masterなどは、具体的なコミットを指しているので
リポジトリ名/ブランチ名となる
593login:Penguin:2009/12/15(火) 04:59:39 ID:pR/bRTj/
>>592
もう忘れてたけど確かに俺もそうだわ。
pushはフル書式で理解するまではかなり自信なさげに使ってた。
594login:Penguin:2009/12/24(木) 15:20:36 ID:v3JWri2J
1.6.6 released
595login:Penguin:2009/12/25(金) 21:55:28 ID:lY3loZi6
stashとresetに頼りまくってる自分の使い方は邪道なんじゃないかと
気になるんだが、indexとかうまく使えば減るだろうか
596login:Penguin:2009/12/26(土) 00:20:32 ID:EUZh5OCV
>>595
運用上不都合がなければいいんじゃない?
597login:Penguin:2009/12/26(土) 06:40:51 ID:SkSud091
>>595
reset、rebase、resetに頼りまくれるようになってはじめて、一人前のGit使いだと思う。
commitとmergeだけじゃ今までのVCSと変わらないじゃないか。
598login:Penguin:2009/12/26(土) 06:42:53 ID:SkSud091
reset、rebase、resetってなんだよorz
reset、rebase、stashのつもりだった。。。
あとrebase --onto、rerereなんか使うとさらに先にいける。
599login:Penguin:2009/12/26(土) 10:39:25 ID:AQehkmKr
おーでかーけでーすかー
600login:Penguin:2009/12/26(土) 12:12:59 ID:Z6Z05dDL
今だにpush,pull,rebaseの使い分けがわかんないんだよな。
普段git svnでやりとりしてるとrebaseだけで事足りるというだけなのか
601login:Penguin:2009/12/29(火) 01:24:35 ID:AAGVKxmF
そりゃgit svnではpush, pullは使いようがないというか、使ったらぶっ壊れるんじゃ。
602login:Penguin:2009/12/29(火) 14:12:54 ID:utuwRMGk
他にもgit svnを使っているメンバーがいた場合、
そいつとは、pushやpullができるという
603login:Penguin:2009/12/29(火) 18:19:26 ID:erZVRnS3
>>602
でも結局いつかgit svn rebaseするから、ID全部変わるしマージコミット入れられないしで
うぼわーマジsvnやめようぜクソがぁ!
ってなる。
604login:Penguin:2009/12/30(水) 07:38:54 ID:kfBW1mPl
しかしsvnに入れた分はちゃんとIDそろうのはすげーと思ったな。
605login:Penguin:2010/01/08(金) 12:31:36 ID:S57JTlxp
オリジナルの拡張子を持ったファイルをコミットすると、rawファイルとして認識されるみたいですが、
textファイルだとgitに教える方法はありませんでしょうか?
606login:Penguin:2010/01/09(土) 10:57:40 ID:3So5fkbw
>605
gitattributes で crlf と diff をセットだと思う。
607login:Penguin:2010/01/12(火) 19:43:07 ID:2XlpNrfT
githubみたいに、git archiveで生成するアーカイブに
コミット名を入れたいのですが、みなさんはどうやって取得していますか?

知りたいコミットがHEADとした場合、bashでは
VER=`cat ".git/\`cut -d \  -f 2 .git/HEAD\`"`
でコミット名が取得されるのですが、
Makefile内だとうまくエスケープ?されなくて困っています。
他の方法があればそちらで試してみたいと考えています。

ちなみに、Makefile内では
@VER=$(shell cut -d \  -f 2 .git/HEAD)
@VER=$(shell cat .git/$(VER))
echo $(VER)
としているのですが、変数VERが空になってしまいます。
608login:Penguin:2010/01/12(火) 23:43:38 ID:914bGyNn
git describe --always
609login:Penguin:2010/01/13(水) 05:50:58 ID:+l7m8J7G
git rev-parse HEAD
610login:Penguin:2010/01/13(水) 09:58:54 ID:/kr/i6EO
github は、タグからアーカイブを生成する場合、アーカイブのファイル名にタグ名を含めてほしい。
611login:Penguin:2010/01/18(月) 10:24:04 ID:xAKlwsjN
example.log っていうファイルがあって
このファイル自体はpushされていて、でも今後の変更分についてはpushしたくないってとき、どーするのが正解?

git rm --cached して版管理自体をやめるわけにはいかないんだけど
612login:Penguin:2010/01/18(月) 11:48:43 ID:9pALEWP2
ignore すれば?
613login:Penguin:2010/01/18(月) 11:58:05 ID:xAKlwsjN
>>612
すでに版管理されてるからmodified filesとしてあがってきちゃう
commit対象としてのみ無視したいんだけど、ignoreできるの?
614login:Penguin:2010/01/18(月) 20:36:24 ID:KAj8+0o6
>>611
ローカルリポジトリでバージョン管理するのを止めれないなら
ignoreできないから、簡単な方法はないでしょう。
push用のブランチを作り、手でrebaseしてそのファイルへの修正が
入らないようにしてからpushするとかしか思いつかないけど。
615login:Penguin:2010/01/18(月) 20:43:21 ID:2FuAr7Gb
push 用の branch とローカルでの example.log の変更を commit する branch とを作ればいいんじゃないかな。
616login:Penguin:2010/02/04(木) 11:09:26 ID:5W3FJugT
CVSやSVNは集中型、gitは分散型 とあるんだけど
何が集中したり分散したりしてるの?
617login:Penguin:2010/02/04(木) 11:11:53 ID:CYNiw1E3
リポジトリ(履歴データを持っている場所)が1つか、複数か。

618login:Penguin:2010/02/04(木) 13:34:55 ID:YQOQkcZC
集中型は権力も集中しがちになる(コミット権がうんたら)
619login:Penguin:2010/02/04(木) 14:30:46 ID:5W3FJugT
じゃあgitはオープンソースに適してるんですね。
仕事用で使いたくて、なるべく権力を集中させたいので
gitは見送ります。ありがとうございました。
620login:Penguin:2010/02/04(木) 17:54:59 ID:5NWhCwR0
621login:Penguin:2010/02/04(木) 19:37:14 ID:YQOQkcZC
分散型に出来て集中型に出来ないことは無いんじゃない?
622login:Penguin:2010/02/04(木) 19:39:44 ID:YQOQkcZC
あれ逆か、集中型で可能なことは分散型で出来る。
623login:Penguin:2010/02/04(木) 19:55:52 ID:gmC/Yryo
>>619
要は、運用次第で権力集中可能
例えば、マスターリポジトリの更新権限を限定するとか(つ〜か普通そうするんじゃ…)
624login:Penguin:2010/02/04(木) 20:47:50 ID:JYXesGU0
>>622
オフラインでのコミットとか無理じゃね?
ローカルにリポジトリあれば別だけど自分以外ができないからあれだし
625login:Penguin:2010/02/04(木) 21:36:49 ID:G2p82aGi
あと、うっかり変なcommitをしてしまったとき、gitならpushしない限り大丈夫だが、
集中型だとお説教タイムになってしまう悪寒
626login:Penguin:2010/02/05(金) 00:04:47 ID:+YPRuxoa
>>625
巻き戻せばいいだけでは。
627login:Penguin:2010/02/05(金) 01:55:01 ID:CLmEj5oN
>>626
普通巻き戻しは特権がいるんじゃない。 で、特権のある人に
お説教されるとw
628login:Penguin:2010/02/06(土) 00:46:55 ID:44qJRz29
お説教なの? ニヤニヤされるんじゃなく?
629login:Penguin:2010/02/09(火) 20:22:37 ID:RAlUQWhi
せんせーきほんてきなしつもーん

ターミナルが A と B の 2個あったとして、
A で git checkout one したあと
B の Emacs でたくさん git 対象ファイルを開いて、そのまま、
A で git checkout two するとします

Emacs で開いてるバッファ内容ってやっぱり one のままだよね?
バッファを編集して保存したら one のファイル内容が two のファイルに上書きされて「危険」だよね?
A でブランチを切り替えるたびに Emacs のバッファは全部閉じて再度開きなおさないといけないよね理屈上
630login:Penguin:2010/02/09(火) 20:36:57 ID:b7GskCpL
emacs使いじゃないから知らないが、バッファ読み込み後にファイルが更新されてるのを
警告もなしにそのまま上書きしちゃうのか?
631login:Penguin:2010/02/09(火) 20:39:16 ID:acViODVs
ニヤニヤ
632login:Penguin:2010/02/09(火) 20:39:37 ID:nKVKxkV8
ちゃんと警告してくれますよ。
633login:Penguin:2010/02/09(火) 20:47:12 ID:9V49chdu
screen と emacsclient使え。
634login:Penguin:2010/02/10(水) 09:43:04 ID:QkCzSUH3
Emacsの revert-buffer を使えばバッファを再読み込みしてくれるけど……
635login:Penguin:2010/02/10(水) 10:00:40 ID:0TBtUf8g
>>629
危険ていうか、それはgitじゃなくても他の端末から同じファイルを編集したら同じことになるでしょ。

俺はvimだけど、ブランチ切り替えもそうだけど、git stash -> git svn dcommit -> git stash pop
ってやった後に保存しようして、警告が出るな。
このパターンだと十中八九ファイルの内容は変わってないんだけど、念のため確認するようにしてる。
636login:Penguin:2010/02/10(水) 15:21:40 ID:M9UhD/wS
git-mode上でブランチ切り替えたら再読み込みしてくれたりしないかな

ようはEmacsがブランチ変更を検知しないことが問題なんだよね
上書き警告だって本質的な対策じゃない
ブランチが変更されたんだから、編集したいのはそのブランチのファイルのはず
637login:Penguin:2010/02/10(水) 15:26:10 ID:3rYFILyb
Emacsの普通の設定ならタイムスタンプが変わってたらrevertするか聞いてくるだろ
638login:Penguin:2010/02/10(水) 15:31:20 ID:M9UhD/wS
>>637
それがめんどくへえという話なのでは…
編集中のバッファでなければこっそり開きなおしてくれてるくらいのサービス精神がないと
不況下の日本ではEmacsは生き残れないぞたぶん
639login:Penguin:2010/02/10(水) 15:33:25 ID:uKVeMcIn
>>638
そうしたいならそうすればいいじゃん
640login:Penguin:2010/02/10(水) 15:43:03 ID:9JULZJQU

git はメンテしてる Junio Hamano 氏がとんでもないナンパ野郎だと知って以来、
極力避けるようにしてる。濱野氏がメンテから降りたらもっと使ってもいいかな。
641login:Penguin:2010/02/10(水) 16:33:53 ID:wST9AMIH
ふーん
642login:Penguin:2010/02/11(木) 11:44:58 ID:yw+dRYs8
>>640
どのへんがナンパ野郎なのか教えて
643login:Penguin:2010/02/11(木) 12:45:14 ID:XV6xszzu

濱野氏は、美人研究者のブログで、その人が git 好きなのをネタにして、
「今度 git の講演に日本に行くから、その時に二人でデートしようぜ」
と本気でナンパしていたと聞いている。
644login:Penguin:2010/02/11(木) 15:02:11 ID:nZMD/n4Y
べつにgitをユーザが増えようと減ろうとJunioのナンパに貢献する
ことはないと思うけど、それ以前に共通の趣味をネタに口説くこと
がどうまずいのかも不明。
645login:Penguin:2010/02/11(木) 15:10:50 ID:yJW9hFuf
女を捨てまくってるとかならともかく、アプローチしてるだけでそこまで嫌悪する必要ないだろ
646login:Penguin:2010/02/11(木) 15:55:14 ID:WaojUPKf
>>643
糞ワロタwww
ブログでかよ?
他に読んでる奴等もいるだろうし、
さすがにそれはねーわなw
647login:Penguin:2010/02/11(木) 17:30:48 ID:aEGTGT/7
gitに使う価値があるかどうかは、
メンテナ氏の女性へのアプローチ法とは関係がない
648login:Penguin:2010/02/11(木) 19:24:12 ID:oAJQYaS+
どこのblogかkwsk
649login:Penguin:2010/02/11(木) 20:12:33 ID:jeJxZddW
嫌儲の男女バージョンみたいな感じだな
650login:Penguin:2010/02/11(木) 22:27:09 ID:71QNNVeu
>>638
auro-revert-bufferじゃだめなのか?
651login:Penguin:2010/02/12(金) 01:58:47 ID:hFHmJq9f
ソースコードを本番にデプロイする時についてなのですが、
前回デプロイ時のソースとの差分だけ抽出して、そのファイルだけ本番にデプロイできるようにしたいと考えています。
今レポジトリにコミットしたリビジョンと、前回デプロイ前のコミット時のリビジョンの差分を
抽出することができればと思うのですが、それ用のコマンドってgitにあるでしょうか??

教えていただけると幸いです。
652651:2010/02/12(金) 02:00:25 ID:hFHmJq9f
すいません、言葉足らずでした。
>>今レポジトリにコミットしたリビジョンと、
>>前回デプロイ前のコミット時のリビジョンの差分を
>>抽出することができればと思うのですが、

更新のあったファイルの「ファイル名」だけ、gitのコマンドで抽出できないか、という意味です。
653login:Penguin:2010/02/12(金) 08:54:33 ID:hx+CbuVO
>651
どーやってデプロイしてるのか教えれ。
654login:Penguin:2010/02/12(金) 11:50:19 ID:StLEjzjs
>>652
git diff --name-onlyとか、どう?
655login:Penguin:2010/02/12(金) 14:33:42 ID:MaWIE5lB
>>651
普通にgit pullしたら早いと思うんだけどな。
rsyncするよりも手軽だし。
656651:2010/02/12(金) 15:29:51 ID:hFHmJq9f
レスありがとうございますm(_ _)m

>>653
ftpかsftpでデプロイしようと思っています。
本番環境はさくらインターネットの供用サーバです。

>>654
やってみました。
これって、コミットする前の、さらにステージする前の差分ファイルを抽出するんですね。
git diff --cached --name-only って試してみたらステージ後の差分ファイル一覧も出力出来ました。
やろうとしていることは大体こんな感じなのですが、
2つ前のコミットと1つ前のコミットの間で更新されたファイル一覧の出力ってのはできないでしょうか??

>>655
なるほど、本番環境に入ってpullするんですね。
仕事では本番サーバも自分で用意してgit環境も構築してたのですが、これってやったことありませんでした。(普通にsftpとかrsyncで・・)
ただ今回の場合、デプロイ先がさくらインターネットの共有サーバなので、git環境を構築出来ないと思うんですよね。
なので普通にftpとかsftpでアップしようと思っています。

ちなみに、本番環境でgit pull する方法で、本番ウェブサーバが複数ある場合は、
それぞれにログインしてウェブサーバ毎にgit pullする感じですか?
657login:Penguin:2010/02/12(金) 15:54:21 ID:MaWIE5lB
>>656
>ちなみに、本番環境でgit pull する方法で、本番ウェブサーバが複数ある場合は、
>それぞれにログインしてウェブサーバ毎にgit pullする感じですか?
どれぐらい気をつかってやるかにもよるんじゃないか。
静的コンテンツをただ更新するだけならrsyncとかgit pull/pushとかをスケジューリングで
自動でやらせてもいいかもしれないけど、warなんかだとそうもいかないだろうから
リリース毎にウェブサーバ切り替えながら慎重にやるんじゃない?

てきとうにググったら、さくらのレン鯖にGit入れてる人けっこう居るみたいだよ
ttp://www.google.co.jp/search?q=%E3%81%95%E3%81%8F%E3%82%89+%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC+git
俺もさくらのやつあるんだよね。今度やってみようかな。
658651:2010/02/12(金) 21:58:43 ID:hFHmJq9f
>>657
レスどもです。

そーか、スタンダードプランならsshとか使えるし、gitのインストールもできるんですね。
早速
http://d.hatena.ne.jp/higepon/20091119/1258633627
これみてやってみたんですが、
git push --all
のところで
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
っていわれてしまいました。

さくらのスタンーダードプランのssh接続って試してみたら
鍵認証なしの単純なパスワード認証みたいなんですけど、
git push の時のssh接続では鍵が探されてる?気がします。
上の記事書いた人はなんでうまくいったのか・・
git://プロトコルにするとポートが開いてないみたいでダメです。思案中・・
659login:Penguin:2010/02/12(金) 22:57:55 ID:meESnmZa
>>658
単に向こうの~/.sshやauthorized_keysのパーミションの
問題とかではなく?
660651:2010/02/13(土) 00:05:44 ID:IZfm7XrQ
>>659
いま一応確認してみましたが、~/.ssh のパーミッションは755で、authorized_keysはありませんでした。
普通にsshでログインしようとしたら鍵認証じゃなくてパスワード認証になるので
authorized_keysはないのは問題ないと思うんですが
gitでssh接続しようとするとなぜか鍵認証にしようとします・・なぜだー。
661login:Penguin:2010/02/13(土) 02:02:29 ID:52GS5xAq
man co
662login:Penguin:2010/02/13(土) 09:09:31 ID:mH7bnksn
>>656
> 2つ前のコミットと1つ前のコミットの間で更新されたファイル一覧の出力ってのはできないでしょうか??

git diff --name-only HEAD^^ HEAD^

それぞれのcommitのSHA-1値を与えてもOK。詳細は git diff --help してみるのがよいかと。
663login:Penguin:2010/02/13(土) 11:21:11 ID:tHnX+oRf
1.7.0 キタ━━━━(゚∀゚)━━━━!!
ttp://article.gmane.org/gmane.linux.kernel/949579
664login:Penguin:2010/02/13(土) 11:53:52 ID:06CKMljI
あれなんか空のディレクトリいつのまにかサポートされてる?
665login:Penguin:2010/02/13(土) 16:21:28 ID:3p2VcGOY
>>664
mjd??
666login:Penguin:2010/02/15(月) 11:27:21 ID:v96hRl2p
>>647
reiserfsを使っている俺には死角はなかった。
667login:Penguin:2010/02/15(月) 22:23:02 ID:Ap57uWpz
http://progit.org/book/ja/

お、ちゃんと日本語に戻ったな。
ちょっと前まで何語かよくわからんのにすり変わっていて笑ったんだけど。
668login:Penguin:2010/02/18(木) 22:09:12 ID:yUl4nZSS
>>663
repo.or.czのミラーって更新遅いんだな...
669login:Penguin:2010/02/23(火) 21:07:12 ID:hI3BlWsm
ようやく、なんとか git add -p / git commit -v
に慣れてきた感じ。

git add も当たり前だがわかっててやらないと(?_?)な
状態にすぐなる。git add -u とか
git commit -v -m "hoge" huga.txt
とか、けつまずいた。git reset HEAD^ に何度も助けられたぜ。
670login:Penguin:2010/02/23(火) 23:41:35 ID:ZVOkCMZj
俺も最近なれてきたけど
少し前まではgit pushした後、
別の日にgit commit --amendから初めて
git pushして、パニクってたものです・・・
671login:Penguin:2010/02/24(水) 16:05:44 ID:wK5Zb8Pm
サブモジュールとサブツリーってどう違うのかよくわからん。
複数プロジェクトを1レポジトリでまとめたいんだけど
どうすりゃいいの?
672login:Penguin:2010/03/02(火) 23:16:21 ID:jWjxjdrz
復活カキコ
673login:Penguin:2010/03/05(金) 07:39:15 ID:nZaP2lzx
みなさん、もう$Id$とか使ってないですか?
674login:Penguin:2010/03/05(金) 08:23:57 ID:T3bjYh1e
それgitで使えるの?
blameとか見ればいいんだし使わないよ
675login:Penguin:2010/03/05(金) 16:26:48 ID:HZ7fJgn/
最近TortoiseGitが1.3.6にヴァージョンアップしたもようですが
1.3.2対応の日本語化パッチが使えなくて困ってます。。
是非1.3.2にヴァージョンダウンさせたいんですが本家のぞいても前ヴァージョンが無いんですよね・・・
どこかに1.3.2転がってませんかね?
676login:Penguin:2010/03/05(金) 16:38:07 ID:Cxd0LGFJ
677login:Penguin:2010/03/05(金) 18:22:52 ID:vhUyLNw1
msysgitの方も最新版出ないかなぁ
678login:Penguin:2010/03/05(金) 23:40:59 ID:nZaP2lzx
>>674
attributesファイルに * ident って書けばできるんですけど、
日付とかではなく、コミット名(ハッシュ値)になるみたいだし、
checkoutした時しか置換されないようです。
今までSubversionとかで$Id$使ってたソースをGitに移した場合、
全ファイルのこの部分は、この先どうしていけばいいんだろう?と思いました。
679login:Penguin:2010/03/06(土) 00:08:17 ID:OxENSWUe
正直RCSキーワードのためにしょうもない(前処理で$Id$に戻すとか)
コミットスクリプトが必要なのが無駄。気にしないようにするか、
日付やリビジョンを含まない形に全置換しとくかすればいいと思う。
680login:Penguin:2010/03/06(土) 00:09:03 ID:OxENSWUe
CVSだとそうなんだけど、svnだとスクリプトは不要なのかな?
681login:Penguin:2010/03/06(土) 00:37:19 ID:5+PCqCSd
TortoiseGIT より期待してる git extensions が backend として cygwin 1.7 も
使えるようになり、UTF-8化が可能になるかと期待したが、cygwin の git process
呼び出しで、.netが勝手にlocal cp(日本版ならcp932)に変換しやがる。
stdoutとstderrは、encodeを変えるオプションがあるし、実際それを使って、utf8
文字列として読み込んでくれるんだが、何故かstdinには無い。
processの引数と、stdinをutf8で渡せれば何とかなりそうなんだが・・・
682login:Penguin:2010/03/10(水) 06:42:35 ID:KudZTj20
git.hogehoge.comというVirtualhostで公開した場合
アパッチの設定ってどういう記述すればいいんでしょうか?
<VirtualHost *:80>
ServerName git.55train.info
CustomLog /var/log/apache2/git/access.log combined
ErrorLog /var/log/apache2/git/error.log

DocumentRoot /sites/git/www/html/
<Directory /sites/git/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>


Alias /prj "/var/git/projects"
<Location /prj >
DAV on
AllowOverride None
AuthUserFile /var/git/projects/.davpasswd
AuthGroupFile /dev/null
AuthName "dav user"
AuthType Basic
Options Indexes -FollowSymLinks
</Location>
</VirtualHost>
っていう記述だと、中においてるスクリプトファイルが反応して.gitフォルダにアクセス出来ないようなんですが・・・
683login:Penguin:2010/03/10(水) 08:58:20 ID:Ut6hXZPm
684login:Penguin:2010/03/10(水) 10:08:15 ID:ZHIpTB9l
さてさて
やれやれ
685login:Penguin:2010/03/10(水) 11:22:43 ID:rvbZnmFs
>>682
「スクリプトファイルが反応して」ってどういうこと?
686login:Penguin:2010/03/10(水) 11:41:55 ID:VG72PX0T
お騒がせしてすいません。
特に何も入って無いサーバーなので、特に問題は無いと思うんですが、
念のためapache等は落としておきます。
徹夜明けの寝ぼけた頭で投稿したのがまずかったようです。

>>685
普通にapacheで動作するスクリプトファイルを置いていたので、
git clone 'http://〜'だと反応したんだと思います。
"ForceType text/plain"かchmodで対応してみようと思います。

すいませんでした。
687login:Penguin:2010/03/10(水) 11:59:59 ID:4WH27GGD
セキュリティが不安なら、そもそも公開すんなよ
688login:Penguin:2010/03/10(水) 13:05:13 ID:oeQspfUo
優しくしてやれよ!
689login:Penguin:2010/03/10(水) 21:35:44 ID:HKIKwOTL
削除要請板からきますた
なんか色々大変ですね
690login:Penguin:2010/03/10(水) 22:16:33 ID:DRNWG7Oz
名前まで出してしまいましたね。
691login:Penguin:2010/03/10(水) 22:17:57 ID:b2Fg0cB+
わざわざ削除依頼なんてしなけりゃスルーされたよね
692login:Penguin:2010/03/10(水) 22:43:37 ID:rtnf98lv
どうかな
693login:Penguin:2010/03/11(木) 05:05:22 ID:vWTSpXf4
俺は気づかなかった。見た瞬間とりあえずくだ質問行けよとか思った。
694login:Penguin:2010/03/11(木) 07:17:44 ID:a4pU/TF4
>>686
>git clone 'http://〜'だと反応したんだと思います。
だから反応ってどういうことだよ池沼が
695login:Penguin:2010/03/12(金) 00:35:01 ID:g58g7Khc
まあ落ち着け。
とりあえず俺はgitどころか
カーネルのアップグレードに失敗したらしく
かなり焦ってる
バックアップの必要性は必要になってから気づくんだ
696login:Penguin:2010/03/14(日) 23:02:16 ID:74SKWdA2
コミットの指定で使う ~ と ^ の違いがよく分からないんだけど、
例えば、HEAD~2 とか HEAD^2ってどう使い分けたらいいの?
697login:Penguin:2010/03/15(月) 00:13:16 ID:9vDzc51S
縦軸と横軸だ
698login:Penguin:2010/03/15(月) 00:17:27 ID:9vDzc51S
c~3-c~2-c1~-c(HEAD)
      c^2 」
      c^3 」

c~3-c~2-c1^-c(HEAD)
      c^2 」
      c^3 」
699login:Penguin:2010/03/15(月) 00:18:53 ID:9vDzc51S
^複数の親と、~複数の世代の違い
700login:Penguin:2010/03/15(月) 00:20:25 ID:vdbEsin0
その2つは異なるものだよ
~nはn個前の親を表していて
^nは1つ上のレベルのn個目の親を表す
  D-E
  /   \
A-B-C-F
FがHEADの時にAはHEAD~3
CかEがHEAD^1、HEAD^2。
701login:Penguin:2010/03/15(月) 00:58:04 ID:INJko3Py
ありがとうございます。やっと分かりました。
^はマージによってコミットに複数の親がある時、それぞれの親を指定できるんですね。
すっきりしました!
702login:Penguin:2010/03/15(月) 03:38:25 ID:5FqVvyVi
すっきりしない
703login:Penguin:2010/03/16(火) 09:03:16 ID:5gE8Vm9w
subversion からcloneしたリポジトリで git branch -r すると@12とか
複数のバージョン?見たいなのが出てくるんですが、これはなんですか?
704login:Penguin:2010/03/16(火) 18:59:10 ID:I38d2Qfd
gitは基本的に戻ることはないんだねぇ、
恥ずかしい失敗したらコマンド使ってコミット無かったことにするけど
705login:Penguin:2010/03/16(火) 19:22:14 ID:UUVEpT2o
基本的に戻ることがあるようにしてるVCSなんてあるの?
706login:Penguin:2010/03/17(水) 21:14:49 ID:ZS5QfrTO
git reset でいくらでも戻れるぜ。ただ、それよりも
1. 作業用ブランチでは気にせず commit/revertしまくる
2. 作業終わったら作業用ブランチの根元から新しくブランチを切る
3. cherry-pick とかで綺麗な履歴を合成
4. 作業用と新ブランチのdiffに差がないことを確認
5. 作業用ブランチはまるごとさようなら
がオススメ。1commit に複数の仕事を含めないようにしないと後で
カオスになるけど。
707login:Penguin:2010/03/18(木) 00:36:24 ID:dr1HU4dM
>>706
お前は俺かw
そんな神経質なことやってるのは俺ぐらいなもんだろうと思ってたぜ。
ただ、履歴が綺麗だと気分良いけど、仕事ではそれなりで我慢するようにしようと心がけてる。

あとそのやり方やってると、diffで何も出ないんだからgit branch -D でさよならで
良いはずなんだけど、どうも念のために残しておきたくなっちゃうんだよな。。。
だからtopic_bk1 topic_bk2 ... とかいう感じで、ゴミブランチがたくさん残ってしまう。
708login:Penguin:2010/03/18(木) 00:48:06 ID:wZ6/zNxh
それでいいんじゃね? 増井俊之のいう富豪的プログラミングの一例として

テキストデータなんてどうがんばってもHDD1台分も書き溜めることはできないんだから
いくらでも残しておけばいいんだと思うよ
709login:Penguin:2010/03/18(木) 01:28:19 ID:dr1HU4dM
でもあれだぜ、git branchが一画面分超えちゃうようになるとちょっと考えちゃうぜ。
デフォで git branch | grep hogehoge しないと使ってられない。
ってまあ、そうなる前に整理しろって話なんだけどね。。。

手動でgcした時だけ消える(消えなくてもいいけど)普通にはリストに出てこないtrashes的な属性が
ブランチに付けられたらいいなと思った。けどgit-branchはスクリプトじゃなくてC実装だったので寝る。
710login:Penguin:2010/03/18(木) 02:50:25 ID:6BBqQXR0
あー、なるほど、作業用ブランチでrevert使ってなかったわ
711login:Penguin:2010/03/18(木) 23:14:55 ID:dr1HU4dM
1.7はこんなん変わってるから注意、みたいなの教えて欲しい
712login:Penguin:2010/03/19(金) 11:41:12 ID:r52T5pgD
git tag は-lでタグ指定して見られるのに、git branchは一覧しか見られないのはどうしてなぜなんだぜ
713login:Penguin:2010/03/19(金) 19:37:38 ID:NIuQLQlK
>>712
tagは、大抵付けっぱなしだけど、branchはmerge済みになれば(俺は)消しちゃうから
選ばなくても、そんなに沢山出てこないんじゃないかな?
714login:Penguin:2010/03/19(金) 20:23:13 ID:sUcT09Pz
>>709
ゴミブランチが多すぎてうざくなったら、clone して
別リポジトリでとっておけばいいんじゃね?
また必要になったら pull すりゃいいだろうし。
715login:Penguin:2010/03/19(金) 20:35:42 ID:sUcT09Pz
ちなみに >>706 の 3 は commit が多い場合 cherry-pick じゃなく
て format-patch でファイルに落としてから選別、 git am で一気
に進めると楽。ただし、commit log の1行目に適切なサマリを書い
てないと選別作業がカオスにw
716login:Penguin:2010/03/19(金) 20:55:59 ID:sUcT09Pz
あと応用として「なんか2種類のトピックに分割したほうがよくね?」
って状態になったときに、根元のcommitが beef だったとして
1. git format-patch beef で patch ファイル化
2. git checkout -b topicA beef で topicA を作成
3. topicA に必要な patch だけあてていく
4. git checkout -b topicB beef で topicB を作成
5. 残りの patch をあてる
6. git merge topicA で一旦topicBにマージ
7. git diff でもとの作業ブランチと違いがないことを確認
8. git reset HEAD^ --hard でマージ前のtopicBに戻す
9. 作業用ブランチはまるごとさようなら
とかでサクッと分割できる。
717login:Penguin:2010/03/19(金) 21:01:59 ID:sUcT09Pz
ついでにもういっこ。
この手の作業するのに gitk --all は欠かせない。各ブランチHEAD、
ブランチ間のつながり等が一目瞭然なのでイメージをつかみやすい。
718login:Penguin:2010/03/19(金) 21:55:21 ID:sUcT09Pz
>>711
1.7系は俺もつかってないんだけど Relnotes-1.7.0.txt の Notes
on behaviour change をざっくり要約。

* "git push" でpushするブランチがリモート側でチェックアウト
中だったら失敗するようになった。似たような状況だとgit
push <あっち> :ゴミブランチ で消すときも弾かれる。

* "git send-email" があんまり深いスレッドを作らなくなった。
これからはカバーレター以外はカバーレターのリプライになりまっ
せ。(設定のデフォルト値が変わっただけ)

* "git status" の実体が "git commit --dry-run" じゃなくなっ
たぜ。今までそれを利用して git status に引数つけて実行して
なければ(普通しないと思う)関係ない。

* "git diff --exit-code -b" ってやったときに diff が出ないの
に exit code が non zero になる場合があったんで、いい具合
に修正しときました。

* External diff と textconv helper が shell で実行されるよう
になるよ。必要ならコマンドラインパラメータ付きで呼び出せる
ようになったぜ。そのかわり外部コマンドのパスに空白が入って
たりする環境は注意。

* "git repack"とかの --max-pack-size オプションが MiB 単位固
定だったけど、byte単位になった。必要なら数字の後ろに k と
か m とか g とかつけてね。

ということらしい。
719login:Penguin:2010/03/20(土) 01:01:58 ID:250FD1S2
>>718
なるほど。すません、英語読むの面倒くさがって。
git1.7は一部後方互換性なし、って見出しでよく言われてるけど、普通に使ってるぶんには
まったく問題なさそうだね。チェックアウト中のブランチにpushしたらデフォで拒否ってのは
安全でとても良いと思う。

>>714
なるほど、そうしてみるわ。ゴミ置き場リポジトリね。最近cloneはハードリンクがデフォになったようなので
そこは注意だけれども、、、

>>717
そうそう、gitk以上に見やすいのは知らない。つってもマージ激しくない時はshow-branchでどうにかなるけど。

>>716
それって最終的にマージして終了? まっすぐにして残そうとはしないの?
720login:Penguin:2010/03/20(土) 01:24:01 ID:Y/nTXIhi
GUIならgitkかqgitかな、と思ってる
721login:Penguin:2010/03/20(土) 02:00:55 ID:VyCYaEo0
>>719
> >>716
> それって最終的にマージして終了? まっすぐにして残そうとはしないの?
おっと、topicA, B ともに、まだ作業中のイメージでした。
作業が完了してるなら統合用ブランチにマージして終了ですな。
722login:Penguin:2010/03/20(土) 04:50:50 ID:lzllMVc3
723login:Penguin:2010/03/20(土) 22:08:34 ID:8SKMhpSs
ずうううううううっと思ってたんだけど、コミットログ書くときに今回どこを変更したかってふつう覚えてなくね
コミットログに書いておくべきであるような変更をぽろっと書き損ねるとかありそうでヤじゃね
それとも忘れないような小さなカタマリで鬱陶しいほど細かく作業単位でコミットするもんなの?
それともみんなコミットログ書くときには別窓で git diff とかの結果眺めつつ書いてるの?
724login:Penguin:2010/03/20(土) 23:00:31 ID:CNETOYMb
>>723
>コミットログ書くときに今回どこを変更したかってふつう覚えてなくね
git commit -v 使うといいよ。
どこを変更したじゃなくて、なんで変更したのかを書くといいよ。
git diff使えば変更点なんかすぐ分かるんだから。

>小さなカタマリで鬱陶しいほど細かく作業単位でコミットするもんなの?
鬱陶しいかはしらんけど、俺は結構細かくつけてるけど。
一気に変更した後、git add -p使ってコミット自体は細かくしてる。
この時に、意味的に1種類のコミットにするようにして、
すぐgit commitしちゃうから-vオプションつけなくても、
コミット内容は頭に入ってるかな。
725login:Penguin:2010/03/21(日) 00:21:34 ID:EU6VkwB8
>>723
何か目的があってソースいじってるんだから、その目的を書けばいいんじゃないかね。
逆に言うとどんだけデカい差分になってもいいから、別の目的の差分は入れるべきじゃないと思う。
例えば、機能追加なのにちゃっかりバグフィックスも混ざってるとか。
726login:Penguin:2010/03/21(日) 09:08:50 ID:GHhv3uqI
>>723
gitx ではとりあえずコミットログを書きながら
コミットするファイルの一覧から diff 表示させられるから
忘れてても全然 OK
727login:Penguin:2010/03/25(木) 08:29:22 ID:ACJlY4U7
muzu-
728login:Penguin:2010/04/01(木) 15:28:34 ID:M9uKaIit
Windowsのcygwinのgit使ってるんですが、日本語ファイル名が

# "\343\202\265\343\203\263\343\203\227\343\203\253\343\203\225\343\202\243\343\203\253\343\202\277/"

みたいに数値で表示されるのってなんとかならないものなんでしょうか?
cygwin 1.7なんでUTF-8には対応しているはずなんですが。
729login:Penguin:2010/04/01(木) 15:29:18 ID:M9uKaIit
数値でっていうかバイナリなのか。gitはファイル名をバイナリで扱うんだっけ・・・
730728:2010/04/01(木) 15:41:21 ID:M9uKaIit
gitで日本語ファイル名を無理やり通した - きみのハートを8ビットキャスト
http://d.hatena.ne.jp/takkaw/20080831/p2


こういうのって公式に取り込んでもらう方法ってないもんでしょうか?
731login:Penguin:2010/04/01(木) 15:45:28 ID:8lE6TdJZ
>>729
core.quotepath = false
でいけます。
732login:Penguin:2010/04/01(木) 16:38:48 ID:ivXW99qP
どこかに覗いたら勉強になるようなOSSのGitレポジトリないでしょうかね?
733login:Penguin:2010/04/01(木) 22:37:08 ID:fogg5tiY
gitだと、公開リポジトリは綺麗な歴史になるようにしてる
はずだけど、どういう勉強がしたいの? 自分で実験してみる
以上に勉強にはならないとおもうけど。

cloneしてから、一個一個コマンドを試していけば
いいんじゃないの?なんかダメなの?
734728:2010/04/02(金) 03:19:32 ID:mth9LXwF
>>731
イケタ━(゚∀゚)━ !!

$git config --global core.quotepath false

でいけました。

上記でUTF-8で入れたマルチバイトファイル名は文字化けしてないみたいなんですが、
gitkやgitguiだとコミットログは問題ないようなのですが、ファイル名は化けて、操作できないですね・・・

$ git config --global gui.encoding utf-8

している状態なんですが、これはどうにもならないもんなのでしょうか?

cygwin 1.7.1、 git 1.6.6.1です
735login:Penguin:2010/04/04(日) 12:24:16 ID:N7boF9sc
>>732
スレ違い
736login:Penguin:2010/04/11(日) 23:37:35 ID:gnsZLsDv
document.createElementで作ったinputをjQueryで追加したんですが、
そのInputの入力Boxで文字列が選択できません。

これはなぜ?
737login:Penguin:2010/04/12(月) 01:08:08 ID:zlVRCvUq
どこの誤爆だ。
738login:Penguin:2010/04/12(月) 05:36:23 ID:B6m3dSPJ
こんな所に・・・・
誤爆しました。失敬。
739login:Penguin:2010/04/12(月) 08:45:24 ID:i6AEo9WC
こんなところとは失礼だな君は
740login:Penguin:2010/04/12(月) 09:35:28 ID:TaBB+zUC
まあまあ、こんなところというのは良い意味で言ったんだよな、坊主
741login:Penguin:2010/04/15(木) 01:17:11 ID:GwN4l2eh
ついでだからgitについてもひとこと書いてけ、坊主
742login:Penguin:2010/04/15(木) 15:39:46 ID:VoGIIRW/
webdav経由の速度がsvn(mod_dav_svn)に負けるんだけど。
どこが早いだよ。ボケが。
743login:Penguin:2010/04/15(木) 15:40:06 ID:VoGIIRW/
とと間違えた糞がだった。gitだけに。
744login:Penguin:2010/04/15(木) 16:15:54 ID:/XEu1xEv
webdav経由なんて使ったことないな。速度って何の速度? クローンじゃないよね?
745login:Penguin:2010/04/16(金) 08:09:07 ID:UzWc4Tj9
webdav(笑)
746login:Penguin:2010/04/17(土) 10:38:01 ID:yU9e03Tm
>>741
ぎったんぎったんにしてやんよ
747login:Penguin:2010/04/19(月) 12:01:21 ID:9Dj8CBQk
>>744
クローンだよ。
初回はやっぱりクローンだし。
LLのコード管理するならいいけど
中間コード生成する類のコードだと余計ファイルを一掃したくなるので
中央からクローンする頻度が上がる、クローンが遅いのは痛い。

零細企業の事情は知らんけど、そこそこの企業ならポート制限をかけてて
git用に別ポート開けろとかいやがられるので80ポートは開いてるからwebdav
748login:Penguin:2010/04/19(月) 12:24:28 ID:T4uQ6+sS
>>747
だまってsvn使えばいいじゃない
gitのクローンって、リポジトリのクローンだよ?
速度を比べるのがおかしい
749login:Penguin:2010/04/19(月) 12:55:20 ID:4DqhZF3F
>>748
だな、速度を比べるのならsvnではr1からHEADまで全履歴を取得させて計測すべき。
750login:Penguin:2010/04/19(月) 15:21:58 ID:9Dj8CBQk
>>748
たしかにsvn使う方がいいですね。そうします。

中央リポジトリだけsvnにしてもいいんだけど
それだとブランチ毎にcloneしないといけないっていうのが使いにくい。

Linusさんが作ったわけだから、中間コードを生成するようなものにも
利用してるはずで、多分私の運用方法がまずいと思うんだけど。
git系の解説書見てもよく分からん。
751login:Penguin:2010/04/19(月) 16:41:09 ID:4DqhZF3F
>>747
>中間コード生成する類のコードだと余計ファイルを一掃したくなるので
>中央からクローンする頻度が上がる、クローンが遅いのは痛い。
中間コードの生成とクローンの頻度に何の関係があるの? ignoreとかmakeとか使えないの?
てかクローン(全履歴取得)は最初だけでその後はフェッチ。中央扱いの場所へのコミット頻度が
高ければ、必然的にフェッチする頻度も増すだろうが。

社外とクローズドなソースコードのやりとりするなら会社責任者の認証を受けるべきだし、
そんならちゃんとした手順踏んで相手方とトンネル掘るなりしてsshでやるべきじゃないかと思う。
752login:Penguin:2010/04/19(月) 22:26:52 ID:9lqpgC5I
件の中間生成物を掃除するために、リポジトリまるごと"rm -rf *"で闇に葬ってから
"git clone"してたりするんでないかと。

753login:Penguin:2010/04/20(火) 00:11:21 ID:dxBJHbyQ
うわー
754login:Penguin:2010/04/20(火) 04:50:52 ID:pVtIppVL
普通中間生成物削除する何らかの手段用意するよなあ。
Makefileのcleanターゲットとかさー
755login:Penguin:2010/04/20(火) 08:39:49 ID:1DvR0uQW
んだよそんな低レベルうんこ野郎が、糞だのボゲだのってDISってたのかよ。
756login:Penguin:2010/04/20(火) 09:29:20 ID:4QSw7roF
rm -rf * して git checkout . はたまにやるな
早いし
757login:Penguin:2010/04/20(火) 10:51:57 ID:wr/OBch+
"git clean -dfx"とか使わずにcloneし直して遅い遅い言ってる訳か。
758login:Penguin:2010/04/20(火) 22:18:12 ID:3xiD65pL
>>750
ブランチごとにcloneって意味がわからん
git-svnは普通にSubversionのブランチも追いかけられるぞ?
759login:Penguin:2010/04/21(水) 08:24:48 ID:yetyJ5AV
>>747
UNIX系の環境だったら .gitをコード生成するディレクトリの外に
置いてsymlink貼って使うとか、symlinkが使えない環境だったら
webdavサーバからclone --mirrorした(ローカルの)リポジトリから
git clone -s して使うとか、いろいろ回避策はあるでしょう。
760login:Penguin:2010/04/22(木) 12:54:59 ID:hPfzumYq
git clean知らなかった。便利だ。
761login:Penguin:2010/04/22(木) 13:32:46 ID:93pJE4US
1週間くらい前からライブラリはわりとできた気がするのだがGitHubで公開する勇気が出ない
めちゃくちゃ緊張して手が震えて駄目だ

公開することにした理由って何?
762login:Penguin:2010/04/22(木) 13:40:24 ID:2lkoAWrr
>>761
だいじょうぶ、反響が皆無で逆に落ち込むから。
よっぽどインパクトのあるものかライフチェンジングなもの、もしくは宣伝しまくって煽ったりしない限り、
オープンソースソフトウェアの影響は徐々にくるものだから、気楽にやったほうがいいよ。
で、なにつくったの?
763login:Penguin:2010/04/22(木) 14:00:26 ID:I4eCvKff
>>761
アドバイス求めたら結構くれるよ
764login:Penguin:2010/04/23(金) 00:44:22 ID:S4Z1KuPQ
バイナリの場合は公開時の品質で悩むのもありだが
ソースつきなら
「俺はここまでやって方向示したのであとは凄い人が続きおね」
という思考で世間様にブン投げてOK

放っておけば誰かが使ったり誰かが紹介したり
もっといいものが出て忘れ去られたり
フォロアーどころか類似品すら出ずにカテゴリごと忘れられたりする
765login:Penguin:2010/04/23(金) 01:01:53 ID:AfgDmnjX
きっと世の中には、とんでもなく使いやすくて斬新なアイデアかつ生産性の高い
ソフトウエア(の前身)たちが今日も日の目を見ないままひっそりとどこかにいるんだろうなあ
そういう革新的なソフトたち発掘するネット界の冒険者っていうのもおもしろそうだなあ

という電波をいましがた受信した
766login:Penguin:2010/04/25(日) 21:13:36 ID:T3Ea8vhp
なぜかネットハックというゲーム名を思い出した
767login:Penguin:2010/05/11(火) 05:04:43 ID:PH2IO3s2
過疎ってるからメモでも各課。

masterからtopicへの差分が見たい
git diff master..topic
ただこれだとmasterが成長するにつれて差分も増える(topic放置でも)

git diff master...topic
こうすると、topicに枝分かれした時点でのmasterからtopicへの差分が表示される
つまりmasterって指定してるけど、実際使われるのは以前のmasterのある固定のポイント
なので「んでtopicってどんだけ何かやったの?」ってなった時に安定してdiffが取れる。
768login:Penguin:2010/05/11(火) 22:24:57 ID:Frr3rWMl
>>767
あれ?逆じゃない?
>masterからtopicへの差分が見たい
のなら前者が良さそうな気がするんだ

git diff master..topicはtopicブランチだけがもってるコミットを表示せよ
git diff master...topicはmaster、topicだけがもってるコミットをそれぞれ表示せよ
だと思ってたんだけど俺の勘違いか
769login:Penguin:2010/05/11(火) 22:38:53 ID:Frr3rWMl
ん?何言ってんだ俺
途中からgit logの話になってるな。くそったれ
>>767の言うとおりだよちくしょう
770login:Penguin:2010/05/12(水) 10:00:23 ID:tQLSUqk6
ブランチ毎に文字コード変えれたりしますか?
771login:Penguin:2010/05/12(水) 15:43:45 ID:/mk0pC1k
エリック・レイモンドがメンテナに加わったんだね
772login:Penguin:2010/05/13(木) 19:11:02 ID:3F0hNVx/
cygwin 1.7のgit 1.6を使っています。
export LANG=ja_JP.UTF-8
してある環境です。

git-svnで引っ張ってきたsvnのリポジトリなのですが、
コミットログを検索したいのですがエラーがでてうまくいきません。。

$ git log --grep="うんこ"
fatal: command line, 'うんこ': illegal byte sequence

また同様にgit grepなどでも同じようにエラーがでます。
$ git grep "うんこおぁぁおおお"
fatal: command line, 'うんこおぁぁおおお': illegal byte sequence

マルチバイトを指定しない場合(英字とか)は問題ないようです。
ターミナルはckを使っており入力にはUTF-8を使っています。

正しく動かすにはどうしたらよいものでしょうか?また、原因としてはどこを疑ったものでしょうか?
773772:2010/05/13(木) 19:18:45 ID:3F0hNVx/
ログをUTF-8で入れた他のgitのリポジトリで試したところ同じ問題が起こり、git-svnは関係ないようでした。

また、coLinuxのUbuntu上では該当リポジトリに対して同様の動作、つまり
  git log --grep="文明はどんどん発達していく…"

  git grep "文明はどんどん発達していく…"
は問題ないようでした。
gitの問題ではなくcygwinかcygwin gitの問題ということでしょうか?

他のユーザーの方の環境できちんと動いているかお聞きしたいところです・・・
774login:Penguin:2010/05/13(木) 22:02:02 ID:2MNEOw/G
うんこはevilだからな
775login:Penguin:2010/05/13(木) 22:32:28 ID:DbFU2gKU
>>772
git help log のDISCUSSIONに書いてあるけど、commit logは
非NULのシーケンスとして解釈せずに格納してあるので、
grepする時にUTF-8に変換しようとして失敗してるんじゃない?
git help logの末尾の方には、commitした時にi18n.commitencoding
の値を記録している、と書いてあるけど、この値と実際のcommit log
の文字コードが一致していない、とかね。
776772:2010/05/14(金) 10:20:48 ID:Im+y6C3g
>>774
別にうんこじゃなくてもいいんですがw

>>775
git log --pretty=format:"%s %e"
で調べた所特にエンコーディングの記述はなく、
ログ自身はUTF-8であらかじめ入れてあるので、
git log をリダイレクトでテキストに出力した所、ログ自身は予想どうりUTF-8Nでした。

cygwinのときだけデフォルトの文字コードが一致しない?ということがあるのかなあ

LinuxでOKで、cygwinで問題というのが気になるところです・・・。
777772:2010/05/14(金) 11:40:48 ID:Im+y6C3g
"command line," とか "illegal byte sequence"でgitのソース検索したけど該当箇所でてこん・・・
778login:Penguin:2010/05/14(金) 13:40:23 ID:LmlSfb61
illegalなんちゃらって多分EILSEQをstrerror()に渡して得られるメッセージ
だと思うけど
779772:2010/05/14(金) 22:57:56 ID:Im+y6C3g
>>778
ああっと書き忘れてた、google code searchとかもついでに見てて、
EILSEQがひっかかったんでもgrepしてたんだけどgitソース内には見当たらなかった。
他の問題なのか・・・
780login:Penguin:2010/05/15(土) 00:24:18 ID:HTmR5ivn
それはlibiconvが出してんでしょ
781login:Penguin:2010/05/17(月) 01:33:24 ID:dnhW6nNk
TortoiseGitでSVNのリポジトリ使うのってどうやるの?
782login:Penguin:2010/05/17(月) 19:05:56 ID:6iXl9CjZ
git pull する時に、origin/masterのHEADではなく、過去のコミットを指定して行うことはできますか?
783login:Penguin:2010/05/17(月) 19:27:07 ID:bLG3BDZV
>>782
git pullはsvn updateみたいにHEADをコピーしているのでなく、過去の履歴も
含めて全部引っぱって来ている. のでpullしたあと作業ポイントをcheckout
コマンドで指定する。

1) そのコミットがすでにブランチになっていれば

git checkout <branch>

2) ブランチになってなかったら

git checkout -b <new_branch> <start_point>

<new_branch> はブランチ名
<start_commit>は選択するコミット


これ、gitのtutorialだけ見てたら分からなかったんだけど、SVNと比較するこの
tutorialを見たら分かった。

GIt - SVN Crash Course
http://git.or.cz/course/svn.html
784login:Penguin:2010/05/17(月) 22:06:20 ID:6iXl9CjZ
>>783
サンクスです。それでいかせていただきます。
785login:Penguin:2010/05/18(火) 22:33:48 ID:6442L1FL
cvs,svnを使ってた人にとっては
git clone で落としてきた.gitは
CVSや.svnと同じようなものと思いがちやね。

>>747を見てバッカじゃねーのとか
思ったけど意外にこの勘違いを抱えたまま
毎回.gitを消してcloneしなおしてる人いるのかね。
786login:Penguin:2010/05/18(火) 23:21:35 ID:ID2y3O4e
いるかといえばいるんじゃないか。CVSやsubversionでも
そうしてきた人にとってはコピーしてきたリポジトリまで
消しちゃう無駄よりも、「ちゃんと動くことが分かる」状態
に戻ることのほうが重要だもの。
787login:Penguin:2010/05/19(水) 00:23:37 ID:zJinMQgP
分かりにくいと思ったのがcheckoutコマンドだな。 svnやcvs等の古典的な
checkoutコマンドとは随分意味が違う。 「ちゃんと動くことが分かる」状態に
どうやってもどせばいいんだろうと探している時、コマンドのリストの中の
checkoutコマンドの説明を見ようとは普通思わないんじゃないかな。 
788login:Penguin:2010/05/19(水) 00:33:38 ID:rEVii6OV
resetも二つの意味含んでるっぽくてわかりにくいな
unstageと分けてもいいと思う
789login:Penguin:2010/06/01(火) 02:42:24 ID:ke5Egb8T
git checkout を使って 2つ前のコミットまで巻き戻したのですが、
git log すると一番最新のコミットと2番目に新しいコミットが見れなくなってしまいました。
もしかして、checkoutはコミットしたものを取り消してしまう危険なコマンドなんでしょうか?
最新のものに戻したい場合はどうすればいいのでしょう・・
てっきりsubversionのrevertと同じようなものだと思って使ったのですが・・
gitのrevertはリビジョンを戻して新しくコミットしなおす感じのようですが、
最近のコミットを取り消さず、単純にファイルを巻き戻すだけのコマンドはないのでしょうか?
教えていただけると嬉しいです。
790login:Penguin:2010/06/01(火) 03:08:28 ID:ib2iuIgt
>>789
ここまで的確に逆のこと言ってると釣りに見えるな。

git checkout HEAD~2 とかやったのなら、名無しブランチに居るだけだから
元のブランチをcheckoutすれば元どおり。

git revert は指定したコミットを逆パッチしたコミットを作ってくれる。
後戻りはしない。

当たり前にドキュメント読んだほうがいいよ。Subversionとは概念が違う。
ttp://progit.org/book/ja/
ttp://www8.atwiki.jp/git_jp/pages/27.html
791login:Penguin:2010/06/01(火) 06:48:15 ID:nEJNHOMY
タグとブランチで同じ名前のがある時にタグのfoo、ブランチのfoo
という指定はできるのでしょうか。ただfooとだけ指定すると
warning: refname 'foo' is ambiguous.
リポジトリはcvsimportで作ったもので、ファイルによってfooが
ブランチの場合とタグの場合があるためにこういう状態になって
います。
792789:2010/06/01(火) 12:22:08 ID:7rDC0XFu
>>790
レスありがとうございます。
自分がやったのは
git checkcout 862ed98d03863a826dca3246ee61d54264acae57
のような感じなんですが
あげて頂いたドキュメントを見ると、checkoutの説明のところに
「また、これが危険なコマンドであることも知っておかねばなりません。」
のように書かれていました。
やはり最新のコミット自体が消えてしまったように思えるのですが・・
793login:Penguin:2010/06/01(火) 13:52:15 ID:3Zl/kziy
コミットはなかなか消えない。
その下に、
>削除したブランチへのコミットや --amend コミットで上書きされた元のコミットでさえも復旧することができます
って書いてあるよ。
794login:Penguin:2010/06/01(火) 14:35:10 ID:rOsiehIq
>>791
ローカルブランチはheads/foo、タグはtags/fooで明示的に指定できますよ
795login:Penguin:2010/06/01(火) 18:49:32 ID:zlmZbFtl
>>792
reflogというものがあってだな
796login:Penguin:2010/06/01(火) 20:05:14 ID:WTjgN8Mk
>>792
> 「また、これが危険なコマンドであることも知っておかねばなりません。」
の部分は作業ディレクトリの情報が消えて、最新のコミットに戻されたって話だよ。

俺はgit以外のvcsをよく知らないけど、
subversionでも、レポジトリと個々人の作業ディレクトリってあるんだよね?
上の話は作業ディレクトリがレポジトリに戻されちゃって、
あなたの作業は消えましたよ、って話だから危険って書いてあるんじゃないのかしら。
797login:Penguin:2010/06/01(火) 20:17:52 ID:WTjgN8Mk
>>789は最新のコミットと2つ前のコミット間の、あるファイルのdiffでも見たいの?
そうなら、
git diff HEAD~2 -- (あるファイル)
っていうのはどう?
どうしてもcheckoutしたいならcheckoutした後、
git diff master.. -- (あるファイル)
でもいい
798login:Penguin:2010/06/01(火) 20:24:44 ID:WTjgN8Mk
>>792
あ、それと言うの忘れてた。
> git checkcout 862ed98d03863a826dca3246ee61d54264acae57
なら、>>790も言ってるけど一時的に別のブランチにいるよ。
git branchしてみれば、今までのブランチと別のブランチにいることが分かると思う。
git masterとかやれば元に戻れるんじゃないかな。
元がmasterなのかは知らないけど。
799792:2010/06/02(水) 01:34:42 ID:gi9ro0yc
色々レスありがとうございます。

状況としては、

最近のコミットに
49qayt928t4ht2

goghpghr9g9grh
というのがあったとして(文字列は適当です)
49qayt928t4ht2
が最新なのですが、一つ前のgoghpghr9g9grhに戻したいと思い、
git checkout goghpghr9g9grh
としたら、git log しても最新の
49qayt928t4ht2
が表示されなくなり、49qayt928t4ht2のコミットが消えてしまったように見える、
また最新の49qayt928t4ht2に状態を戻したくても、戻した方が分からない、といった感じだったのですが
git reflog と git resetのおかげでなんとかなりました。
勉強になります。ありがとうございました。
800login:Penguin:2010/06/02(水) 05:38:06 ID:tFFCKjtC
>>799
checkout直後なら以前チェックアウトしていたコミットがORIG HEADに格納されてるよ
801login:Penguin:2010/06/02(水) 23:19:00 ID:epvzW2MP
ORIG_HEADってマージのときに使うものかと思ってた
あれ?MERGE_HEADだっけ?
802login:Penguin:2010/06/03(木) 00:57:02 ID:4mfPiwdf
>>792
色々と突っ込みたい所はあるが、とりあえずチュートリアル読めば?
803login:Penguin:2010/06/03(木) 08:35:19 ID:dAM44TeX
>>799
git resetを使う状況じゃない。まずは>>798の内容を理解しよう。
804login:Penguin:2010/06/03(木) 22:34:29 ID:NRpX3vOy
git の branch コマンドは他のVCSみたいな、いわゆる枝(branch)を作るコマンドじゃないことを理解した方がいい。
単に自分のいる点に目印の旗を立ててるだけ。
commitやreset等で自分が動けば旗も移動する。
805login:Penguin:2010/06/03(木) 22:37:18 ID:2hMMbzRW
>>804
これの"create"は「作る」という事ではないのですか?

$ man git-branch

...
NAME
git-branch - List, create, or delete branches
806login:Penguin:2010/06/03(木) 23:35:29 ID:k3O2NdDL
>>805
まあ論理的には「作る」と考えて良いんだけど、、、
内部的には複数のコミットから親として参照されてればそれはブランチと言える
というぐらいで、特にbranchコマンドを使わなくても、ある履歴の途中の位置を
checkoutして何かコミットすれば分岐になるし、commit --amend とかで
やり直ししても以前のコミットと新しいコミットは分岐してる。
ただこの場合古いコミットは一見して行方不明になるけど、branchコマンドは
そこに旗を立てて移動しやすかったり自動でGCされないようにしたりしてる感じ。
reset とかいろいろ試してるうちに内部構造が分かるとそう思うようになったかな。
807login:Penguin:2010/06/04(金) 00:02:52 ID:/Cv0eiGe
各コミットは親を記憶してるから点から親を遡ることで枝を表現できる
ただ子の記憶は無いから自分の子供がどうなったかを辿る簡単な手段は無い
checkout等で移動してコミットが消えてるように見えるのはこの為
808login:Penguin:2010/06/04(金) 06:08:20 ID:PyuP7am3
>>805
自動更新してくれるタグとおもえばよいよ
809login:Penguin:2010/06/05(土) 11:36:02 ID:aEd5JAax
実はCVSでも似たようなことになっているんだけど、
自動GCがないということと、リポジトリの実装がファイル
単位なのでcvs adminコマンドで実現しようとすると1コミット
に関連するファイルに比例して面倒になる、という点が大きく違う。
810login:Penguin:2010/06/05(土) 20:57:10 ID:zknULthJ
git svn clone すると Using higher level と言われて取ってこれないんですが、
どうしたらいいんでしょうか?

$ git svn clone --prefix svn/ -s svn+ssh://xxx/var/svn/project
Initialized empty Git repository in /Users/alice/src/project/.git/
Using higher level of URL: svn+ssh://xxx/var/svn/project => svn+ssh://xxx/var/svn
error: git-svn died of signal 13

svn ls すると見えてます。svn co もできます。

$ svn ls svn+ssh://xxx/var/svn/project
branches/
tags/
trunk/

バージョン
$ git --version
git version 1.7.1

試しにローカルに作ったsvnリポジトリに対しては、リポジトリ内のサブディレクトリに
相当するプロジェクトを同様のコマンドで取ってこれます。
$ git svn clone --prefix svn/ -s file:///var/svn/project2 → 成功
811810:2010/06/05(土) 23:35:57 ID:zknULthJ
試行錯誤してたらローカルのsvnリポジトリに対してでも svn+ssh だと失敗
git svn clone --prefix svn/ -s file:///var/svn/project2 → 成功
git svn clone --prefix svn/ -s svn+ssh://localhost/var/svn/project2 → 失敗
git svn clone -s svn+ssh://localhost/var/svn/project2 → 失敗
git svn clone svn+ssh://localhost/var/svn/project2 → 失敗
git svn clone svn+ssh://localhost/var/svn/project2/trunk → 成功

もしかしてssh経由だと最後の方法しかダメ?
812login:Penguin:2010/06/06(日) 22:17:11 ID:KNE6oozw
git svn clone svn+ssh://localhost/var/svn/project2 に
--trunk trunk オプションを適用したらどうなる?
813810:2010/06/06(日) 23:06:25 ID:DDm/Y5Pc
>>812
レスありがとうございます。
次の2つが正しく動作するのを確認後、
$ svn co svn+ssh://localhost/var/svn/project2/trunk project2
$ git svn clone --trunk trunk file:///var/svn/project2

svn+ssh と --trunk trunk の組み合わせを試したんですが >>810 のときと同様のエラーになります。
$ git svn clone --trunk trunk svn+ssh://localhost/var/svn/project2
Initialized empty Git repository in /Users/alice/src/project2/.git/
Using higher level of URL: svn+ssh://localhost/var/svn/project2 => svn+ssh://localhost/var/svn
error: git-svn died of signal 13

が、あれこれ試していたらここで中途半端にできた project2 ディレクトリ(中身は.gitだけ)を削除せずに、再び
git svn clone --trunk trunk svn+ssh://localhost/var/svn/project2
を実行するとcloneできました。
つまり --trunk trunk 付きで二回実行するとcloneできました。

それなら -s をつけた場合も二回実行すればいけるかと、試したんですが二回目も失敗します
二回目は「error: git-svn died of signal 13」だけが表示されます。
814810:2010/06/07(月) 00:13:59 ID:J3cMfgEo
Subversion のリビジョン番号が大きいと git svn clone が失敗するので、git svn fetch を使うと良い | cooldaemon's memo
http://cooldaemon.tumblr.com/post/71989299/subversion-git-svn-clone-git-svn

ローカルに作ったSVNリポジトリのHEADはリビジョン1なんですが、
上のサイトを参考に、git svn clone に失敗したあとにできたディレクトリに移動したあと
git svn fetch を実行したところファイルを取ってくることができました。
815login:Penguin:2010/06/08(火) 13:31:10 ID:rxszYzgC
基本を教えてください。自前のプロジェクトをgithubに上げました。

ローカルのリポジトリフォルダで直接ソース修正し,
git add, git commit -m 'hoge', git push,
という手順を踏むのは、正しい手順なのでしょうか?

ブランチを切ってそれをmerge、というのも見つけたのですが、
違いが何かがまだ理解できません。ローカルの作業フォルダを
別に複製してそこで作業する、という意味ですか?

ググってもいまいち飲み込めず・・・用語が難しくて理解しづらいです。
816login:Penguin:2010/06/08(火) 17:27:44 ID:ioTeze1h
>>815
よくわからなかったら、既存のものをforkしたのでなければ、
bitbucketを使いましょう。
817login:Penguin:2010/06/08(火) 17:29:09 ID:8e1WnVu/
>>815
はい。正しいです。ブランチは新しい機能とメインの開発を分けて開発したい場合に使ったりします。
ローカルリポジトリ内で完結するので新しくフォルダをつくる必要はないです。branchとcheckoutコマンドでいろいろ遊んでみるとよいかも。
818login:Penguin:2010/06/08(火) 17:35:19 ID:2UFah327
質問があります。(スレ違いでしたらすいません)

メインのソースツリーが subversion で管理されており、ローカル環境では、git-svn を使って、ソースのやりとりを行っています。

あるとき、ローカルのツリーを壊してしまったのか、
git checkout master
を実行すると、
and have XXXX and YYYY different commit(s) each, respectively.

という行が表示されています。
さらに、git pull を実行すると、git pull が失敗します。

ローカルのソースツリーを正常な状態にしたいのですが、ローカルにあるソースを全て削除し、さらに .git ディレクトリも削除したのち、改めて、git svn clone をしないといけないのでしょうか。

リビジョン YYYY までの修正分までは残しておき、YYYY + 1〜XXXX までのリビジョンを削除したのち、改めて、git svn rebase で、YYYY + 1 以降の差分を取得したいのですが、その様なことは可能でしょうか。もし、可能でしたら、どうしたらできるのでしょうか。

どうかよろしくお願い致します。
819login:Penguin:2010/06/08(火) 17:57:50 ID:KwHWNnWZ
>>818
そのメッセージはマージ対象のブランチと現在のブランチが分岐してるよ、
って教えてくれてるんだけど、git-svnでもそれ出たっけな?
それにgit pull って、git-svn では使わないよ?

実際、svnのことは一旦忘れて、ドキュメントちゃんと読んだ方がいいよ。
ttp://progit.org/book/ja/
ttp://www8.atwiki.jp/git_jp/pages/27.html
大体一緒でしょ、っていうつもりでノリで触ってるとかえって回り道。
820815:2010/06/08(火) 18:00:17 ID:rxszYzgC
>>816
いえ、githubにしろって言われたもので仕方なく・・・

>>817
ありがとうございます。助かります。

>ローカルリポジトリ内で完結するので新しくフォルダをつくる必要はない
ということは、checkoutするとブランチ間で異なるファイルがごっそり
差し替えされるということですね。試してみます。
821login:Penguin:2010/06/08(火) 18:21:21 ID:KwHWNnWZ
てかさ、ドキュメント読まないやつ多すぎだろ。
何回ProgitとatwikiのURL貼らせんだよ。

他の便利ソフトみたいに、つまづいたとこを逐次誰かに教えて貰って、
とりあえず使えるようになればそれでOK、っていうものとは違うんだって
ことぐらい分かれよ。分散型使ったことなくてsvnしか知らないようなら
尚更ダメだろ。ソースコード管理するのに手探りみたいな状態でやってて
不安じゃないのか?

たいして時間かかんないから、ドキュメント読もうぜ。Progitも公式チュートリアルも
親切丁寧に書いてあるから。はあはあ。
822login:Penguin:2010/06/08(火) 18:33:01 ID:ioTeze1h
Subversionのブランチとタグが要らない混乱を生んでいる気がする。
CVSからさわっていれば、ブランチもタグもすんなり理解できるのだが。
823login:Penguin:2010/06/08(火) 21:49:57 ID:2UFah327
>>819
>>821
>>822
819 さんに教えて頂きましたドキュメントなどを参考して、ローカル環境を戻してみます。
git svn rebase とするべきところ、ついつい、git pull と打ってしまう私が悪いんで。
また、さっきもやってしまって、マージできないとエラーが出たソースを元に戻していました。


824login:Penguin:2010/06/11(金) 04:51:28 ID:fuz3kvBd
質問です。

<環境>
$ uname
CYGWIN_NT-5.1

$ git --version
git version 1.7.0.4


歴代のコミットの状態を別のディレクトリへcheckoutできないものでしょうか。
今は、コミットIDの一覧からすべてをtar ballに吐き出して全部展開しなおす、
という手順をとっています。
もっと楽な方法(git clone [commit ID]とか)ご存知ではないでしょうか。
825login:Penguin:2010/06/11(金) 05:10:03 ID:2NWqNXbx
>>824
git-checkout-indexでできるよ
826login:Penguin:2010/06/11(金) 08:34:44 ID:Ce5oaCgs
$CHECKOUT_ROOTの下に、各バージョンの短いハッシュの名前の
ディレクトリで展開するone-liner
git log --format=%h |while read h; do git archive --format=tar --prefix=$h/ |gtar -C $CHECKOUT_ROOT -xf -; done

各ディレクトリでもgitの操作をしたいならgit clone -sでリポジトリを
作ってからそこでcheckoutするようにしたらいいと思う。
827login:Penguin:2010/06/11(金) 12:49:38 ID:CxOtHYvF
>>825
ありがとう。svn exportというのは意図したコマンドのようなのですが、
git-checkout-indexのヘルプにはコミットID指定の引数が見当たらないような。

>>826
なるほど。あー。--outputオプションの意味がわかった気がしました。

せっかくなんで昔見つけたtipsを活かしてみました。
ttp://whileimautomaton.net/2009/05/08003459

export-all = "!$SHELL -c ' \n\
cnt=1 \n\
git log --format=%h --reverse |while read h; do \n\
git archive --format=tar --prefix=$(printf %03d-%s/ $cnt $h) $h |tar -C ../hoge -xf - \n\
cnt=`expr $cnt + 1` \n\
done \n\
' __dummy__"

勝手に変えたところ
・git archive に$hを渡した。エラーになったので。
・gtar->tar。入っていなかったので。
・コミットは時系列順に、3桁連番をつける。

今のところ
・吐き出す先が../hoge固定
・なにがなんでも全コミットが対象
ですが、今日のところは満足なので放っときます。

有難う。楽しかったです。
828login:Penguin:2010/06/11(金) 14:01:17 ID:xMk4QMQl
git commit -m c1
git commit -m c2
git commit -m c3
としたときの次のコミットを c3 に混ぜるには
git commit --amend
ですが、c2 に混ぜるにはどうやるんでしょう?
829login:Penguin:2010/06/11(金) 16:33:46 ID:CxOtHYvF
830828:2010/06/12(土) 20:32:34 ID:EYPWrV4V
>>829
そのサイトを参考にやったらなんとかできました。ありがとうございます!
一応、自分用の実験メモを貼っときます。
$ echo x > x1.txt; git add .; git commit -a -m c1
$ echo x > x2.txt; git add .; git commit -a -m c2
$ echo x > x3.txt; git add .; git commit -a -m c3
c2 に含めたい作業分を c4 としてとりあえずコミットする(コミットしないと git rebase できなかったので)
$ echo x > x4.txt; git add .; git commit -a -m c4
c2 が何個前か確認すると3つ前だとわかる
$ git log HEAD~3..HEAD --oneline
e4b2fdb c4
cf77615 c3
09e1d42 c2
それを引数に git rebase -i を実行する
$ git rebase -i HEAD~3
エディタが起動して c2 c3 c4 の順に出ているので下のように c4 の pick を squash に変更して c2 の直後に移動させて終了すると
pick 09e1d42 c2
squash e4b2fdb c4
pick cf77615 c3
再びエディタが起動して c2 と c4 が出てくるのでコミットメッセージを調整して終了する。
再び確認するとc2とc4が一緒になっていることがわかる(コミットメッセージを c2c4 にしたので)
$ git log HEAD~3..HEAD --oneline
0fec832 c3
53d09e5 c2c4
61b0400 c1
831login:Penguin:2010/06/12(土) 21:25:08 ID:MYEOj4or
rebase -iを使いまくる快感を覚えるとgitから逃れられなくなる。
832login:Penguin:2010/06/12(土) 22:25:59 ID:qHF7b2tG
>>827
ブランチを作ったりrebaseしたりすると使わなくなるaliasだと思う。
833login:Penguin:2010/06/17(木) 22:46:57 ID:ic50UB3Y
TortoiseGitでSVNリポジトリを使うのってどうやるんですか?
834login:Penguin:2010/06/19(土) 15:28:13 ID:AdBXeY0E
>>833
ここはLinux板だからプログラム板行った方が良いんでない?
835login:Penguin:2010/06/19(土) 17:18:17 ID:e4H00FQJ
というかTortoiseSVN使えよ
836login:Penguin:2010/06/19(土) 18:13:51 ID:4IVjSb/t
>>833
TortoiseGitにgit-svn機能が追加されたのは0.8.1.0からだそうだが、
あなたのバージョンはいくつなわけ?
837login:Penguin:2010/06/19(土) 23:13:28 ID:EutOiIFE
>>834
ム板にgitスレがない
つーかなんで>>1はここに立てた…?
リーナスが作ったからか。そうか。
838login:Penguin:2010/06/19(土) 23:25:04 ID:4f8lOGK6
git log --graph使いやすい。
msysgitのgitkは文字化けするから助かる
839login:Penguin:2010/06/19(土) 23:30:52 ID:5cDyCRiO
>>837
2007年の時点だと、Linuxでしかまともに使ってる人居なかったんじゃないか
840login:Penguin:2010/06/20(日) 00:31:12 ID:cdOp7QHw
>>837
ム板にSVNならあるよ、ってこっちにもあるね。
841login:Penguin:2010/06/20(日) 22:04:20 ID:7uPWjQgS
とあるファイルをレポジトリに追加しようと思って、git add File
ってやった後、コミットする前にgit checkout -f 〜ってやったら、
当然追加したFileは消えてるよね。\(^o^)/

これって、復活させることは無理?
要するに、消えたファイルをサルベージしたいんです...(T^T)
842login:Penguin:2010/06/20(日) 22:07:50 ID:1ShQeJBQ
forceって指示出してるからねぇ…
843login:Penguin:2010/06/20(日) 22:13:59 ID:7uPWjQgS
あきらめて作り直す....べきですか
add *.cs
なんて一括で追加したものだから...
いい週末になりました。(゜Д゜)
844login:Penguin:2010/06/20(日) 22:46:22 ID:/lqjlFiM
ファイルそのものは .git/objects にころがってるけど探すのが大変ですねー

$ git init; touch .gitignore; git add .gitignore; git commit -m 'init'
Initialized empty Git repository in /home/a/tmp/test-git/.git/
[master (root-commit) 8f89495] init
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
$ echo hogehoge > fuga
$ git add .
$ ls
fuga
$ git checkout -f master
Already on 'master'
$ ls
$ LANG=C tree .git/objects
.git/objects
|-- 82
| `-- e3a754b6a0fcb238b03c0e47d05219fbf9cf89
|-- 8f
| `-- 894951217914f4a29681fba7f7917acc034322
|-- e6
| `-- 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
|-- e9
| `-- bc11025c28829eedf6d30cd3b65628648cad5f
|-- info
`-- pack
$ git show e9bc11025c28829eedf6d30cd3b65628648cad5f
hogehoge
845login:Penguin:2010/06/21(月) 03:55:25 ID:g1rTD290
>>844
そっか、indexに入れたのが残ってるのか!

>>843
>いい週末になりました。(゜Д゜)
サルベージがんばれ!
846login:Penguin:2010/06/21(月) 21:41:56 ID:GDaRrD9a
>>844-845
ありがとぉ〜〜。

> ファイルそのものは .git/objects にころがってるけど探すのが大変ですねー

これで思い出しました。
数日前にgit stashで検索したときに見つけたこのページ↓
ttp://d.hatena.ne.jp/t-wada/20090407/p1

このページをもとにgit fsck --cacheなどの出力から「〜blob」を抽出し、
それを順次git showしたら、なんだかそれっぽいものが出てきた〜〜(^○^)
ということで、おかげさまでサルベージ完了です。
いい週明けになりました。(^-^)
取り急ぎお礼まで。

847login:Penguin:2010/06/23(水) 04:04:24 ID:JeKYkEUM
あああ・・・
ディレクトリ間違ってGITROOTで

find ./ -type f|xargs -i nkf -w -Ls --overwrite {}

やってしまった。オプション間違ってるし。
$ git log
error: non-monotonic index .git/objects/pack/pack-13ad494e745c9bd63ad500c1a376db3b34848631.idx
error: inflate: data stream error (invalid code lengths set)
fatal: object 9e521bc6c6454973b0d2df293bbe6288ae1e9156 is corrupted


$ git fsck
error: non-monotonic index .git/objects/pack/pack-13ad494e745c9bd63ad500c1a376db3b34848631.idx
error: inflate: data stream error (invalid literal/lengths set)
fatal: object 006d1163b9f7c9ee57bde708ada9e791a769bdc8 is corrupted


さすがにこれはもうアウト?
848847:2010/06/23(水) 09:14:25 ID:LED7N0iF
$ rm .git/index
$ git reset

でもだめだ…

.git/objects/00とかの下のコミットID名(?)をgit showしても一緒だよ。

おろろーん
849login:Penguin:2010/06/23(水) 13:37:25 ID:vPPSucp0
xargsってこわいなやっぱ
850login:Penguin:2010/06/23(水) 20:53:37 ID:RwfTLv2f
っ「Daily backup」
851847:2010/06/24(木) 16:37:14 ID:zb2GzD4D
うん。
途中まではサーバリポジトリにあったから、途中の履歴とブランチは諦ましたとさ。
852login:Penguin:2010/06/24(木) 23:46:17 ID:PrxiwgIJ
あるプロジェクトでgit使い始めたんだが、その時点より古いコード一式が出てきた。
これを、過去の履歴として最初のコミットより前に登録することってできる?
853login:Penguin:2010/06/25(金) 00:01:43 ID:icPu4CVC
>852
その古いコードからはじまる歴史を作るのが良いんじゃね。
その歴史をもったリポジトリを正にしてしまう。
854login:Penguin:2010/06/26(土) 00:44:08 ID:cyQi64aO
あとからあとから、遺産が見つかるのよ。
でも、歴史はある時点のを基点として、進んでいってる。
つまり、遺産が見つかる度にリポジトリを作り直すってこと?
855login:Penguin:2010/06/26(土) 04:17:55 ID:w2I5qyES
>>854
過去を改竄した上に、現在に至る道筋を全て書き換えるのだから、そうするしかないね。

ただ歴史の参考書として使うのが目的であれば、遺産専用のリポジトリを作って、
現実の流れとは切り離してみたら?
856login:Penguin:2010/06/26(土) 09:06:18 ID:fDYu/oxG
>>854
ちとめんどいが、リポジトリをまとめることできるよ
857login:Penguin:2010/06/26(土) 09:48:49 ID:H6FlpyjE
なんでその「遺産」とやらをリポジトリに入れなきゃいけないんだろ。
858login:Penguin:2010/06/26(土) 09:52:47 ID:/z21ANsp
歴史的価値があるからだろ。
859login:Penguin:2010/06/26(土) 11:29:49 ID:H6FlpyjE
tar.gz とかで置いとくだけじゃだめなん?
860login:Penguin:2010/06/26(土) 11:56:07 ID:w2I5qyES
blameしたりとかね
861login:Penguin:2010/06/28(月) 03:34:04 ID:dFIHaLjh
別のリポジトリかブランチ用意して時間を遡るようにコミットすればいい。
起点のあやふやなリポジトリなんてあっちゃいけない。
862login:Penguin:2010/06/28(月) 13:32:46 ID:AeUZNcLY
cvsがimportにタイムスタンプを保存してくれるんで、それを経由してならやったことがある。
863login:Penguin:2010/06/28(月) 21:27:15 ID:M8SBBxn0
>861
具体的には、git commit を使うの? それとも違うコマンド?
パッチ管理システムのgitが過去に向かって遡るように
できるとするとどのコマンドを使うのだろか。謎だ。
864login:Penguin:2010/06/28(月) 21:49:22 ID:ZdGP9BRk
>>863
古いソースのアーカイブとかが見つかったのなら、その時点のコミットまで戻って
ソースを展開してコミット、で続きはrebaseで改竄、かな。
次のコミットのコンフリクトが激しい場合、そのコミットはresetで無理やり
作ることになるかも。
865login:Penguin:2010/06/29(火) 08:40:40 ID:RKOTmQc0
rebaseの手間や与える混乱を考えたら、川の字のような分断されたシリーズで
まとめておいて、始点終点の接続をtagでわかりやすくしておくのが無難じゃ
ないかな。
866login:Penguin:2010/06/29(火) 09:14:18 ID:mAh632T5
古いソースコードが小出しに出てくるって、どういうシチュエーションなんだ
867login:Penguin:2010/06/29(火) 10:44:08 ID:6afYXK7c
web系の本番環境にCVS/, .svn/を置けないね、ってな話?。
868login:Penguin:2010/06/29(火) 12:19:34 ID:VJOkvPml
>>866
今まで git で管理されていなかったプロジェクトを引き継いで、引き継いだ時点から git で管理しています。
# ので、歴史は進んでいます。

しかも圧縮されたソース一式を、メールでやりとりしていたという状況があって、
それが、後から後から「XX月XX日時点のソースはこうでした」なんて送ってくるのです。
大抵そのときは、「XX月XX日時点では問題は無かった」なんて言われるもので、diff もとりたいわけです。
他人の歴史を取りこめる git なら、なんかできるんじゃないかな、と思ったのです。
869login:Penguin:2010/06/29(火) 15:03:57 ID:mAh632T5
>>868
そっか、、、大変だね。
俺なら、過去専用リポジトリを作って、けっこう真面目に歴史つくりなおすと思うな。
reset、rebaseがちゃんと使えるようになれば、そんなに面倒でもないし、
歴史の改竄はたまにやるので、慣れてる。

ただ、差分見るだけだったらgitじゃなくてもdiffするだけでも取れるし、
とりあえずgitの使い方を学んでみたらいいと思う。
870login:Penguin:2010/06/29(火) 15:27:33 ID:6afYXK7c
hgはcommitに--dateオプションがあって任意の日時が指定できるんだけど、gitの場合どうするんだろう?
871login:Penguin:2010/06/29(火) 18:00:28 ID:8zZUzhs0
>>870
gitにも同じオプションあるよ
872login:Penguin:2010/06/29(火) 18:08:05 ID:65UOE5ID
.>>870
試してないけど、git commit にも同じ --date オプションがある。
873login:Penguin:2010/06/29(火) 22:47:08 ID:6afYXK7c
874login:Penguin:2010/07/09(金) 12:12:28 ID:A4ulNFz6
すいませんお聞きしたいのですが、
レポジトリ名の変更ってどうすればよいのでしょうか?

/home/ore/project というレポジトリを
/home/common/project にクローンして、
/home/common/project の方をorigin にして
/home/ore/project の方は ore という名前のレポジトリにしたいんです。

今は /home/ore/project が originになっていて
pushとかcloneで originはすでに存在しますみたいなエラーが出ます。

どなたか教えていただけると幸いです。
875login:Penguin:2010/07/09(金) 13:24:28 ID:+O87Fyla
>>874
リポジトリの名前というものは無いのでディレクトリをリネームしてOK。
あとgit-remoteのドキュメントを読めばわかる。Pro Gitやatwikiあたりも。
http://www.kernel.org/pub/software/scm/git/docs/git-remote.html
876login:Penguin:2010/07/09(金) 14:11:35 ID:A4ulNFz6
>>リポジトリの名前というものは無いのでディレクトリをリネームしてOK。

あれ、すいませんなんか勘違いしてるのかもしれないのですが、
じゃあ例えば
/home/dareka/project
というレポジトリがあったとして、
/home/ore/project を /home/dareka/project にpushするときは
git push dareka
みたいにすることができて、
この場合のdarekaがレポジトリ名だと思ったんですが、違うんですかね?
こういうことがしたい場合はどうすればよいのでしょう?
877login:Penguin:2010/07/09(金) 14:39:37 ID:+O87Fyla
>>876
勘違いとかじゃなくてドキュメント読まないと分からないよ。
それはリモートの名前で、パスに別名を付けたようなもの。
878login:Penguin:2010/07/09(金) 16:26:29 ID:A4ulNFz6
なるほど。ありがとうございます。なんとなく分かりました。

すいません、追加でもう一つ質問したいのですが、
中央レポジトリの作り方を調べていて
http://d.hatena.ne.jp/hirose31/20090325/1237984133
このページを見たのですが、gitを使うユーザーに
中央レポジトリに書き込むgroupの権限を付与するということは、
その権限を付与されたユーザーは中央レポジトリの.git/objectsや.git/logs
のようなディレクトリを自由に編集・削除できてしまってことなんでしょうか??

879login:Penguin:2010/07/09(金) 17:56:50 ID:+O87Fyla
>>878
そうだね。つまり権限のある誰かがシェルを介して中央を破壊することは可能。
ただし分散してるからそう問題にはならない。
またリポジトリをsharedにしておくとFastForward以外はpushできなくなるので
通常の操作では破壊できなくなる。

自由にシェルを使わせるのが嫌ならgitosisという手がある。
てかこれもProGitに書いてある。いろいろ心配する前に一通りドキュメント嫁。
880878:2010/07/12(月) 12:11:38 ID:FAAvT4oM
なるほど、ありがとうございます!
おかげさまでとりあえず最低限運用できるところまではいけましたので、
教えていただいたとおりこれからProgit読んでみようと思います。
ありがとうございましたm(_ _)m
881login:Penguin:2010/07/15(木) 10:50:37 ID:p+4lqNUQ
ぎっはぶが日本語化している……
882login:Penguin:2010/07/15(木) 16:20:27 ID:NrmRtNGn
gitってファイルのパーミッションは管理してくれないんですよね?
ファイルのパーミッション管理したいと思ったらcapistranoとかで
書いたタスクファイルをgitで管理するのがセオリーですかね?
883login:Penguin:2010/07/15(木) 16:26:02 ID:HC2fsnSk
configの[core] filemode で file permission を管理するかどうか決められるよ
884login:Penguin:2010/07/16(金) 11:10:26 ID:DuxLjflU
git自体を日本語化対応するって話はないんですかね?
svnみたいにエラーメッセージが日本語だとうれしい
885882:2010/07/16(金) 11:34:03 ID:/E1JLmLV
>>883
ありがとうございます。
それ知ってたんのですが、なぜかパーミッションの変更が検出されない・・
と思ったのですが、もしかしたらディレクトリのパーミッションだったからかもしれません。
もうすこし調べてみるとファイルのパーミッション管理はやはりちゃんとできていました。
ディレクトリにパーミッションの管理ってできないんでしょうか?
886login:Penguin:2010/07/16(金) 13:39:21 ID:fPR4+/MA
>>885
gitは実行可能ビットしか扱わないよ
887login:Penguin:2010/07/22(木) 12:59:29 ID:001u31B7
rebase がもっと柔軟にならないかねぇ。
公開リポジトリはともかく、家リポジトリと手元リポジトリ間では常に整合性を取って欲しいと思ったり。

ちなみに今、家リポジトリでrebaseしたブランチを手元リポジトリにpullしてくる運用をしてるんだが、
手元リポジトリにゴミがたまってくるので、定期的に手元ブランチを捨てる->fetchしなおしとかやってる。
888login:Penguin:2010/07/22(木) 15:17:40 ID:cbVJZvgp
rebase がどう柔軟になってほしいのか、よくわからん。

おまえがやっている運用方法はわかったが、cherry-pick とか
じゃなくて、どういうふうになってほしいか、patch 管理システム
である git の特性から語ってくれないか ?
889login:Penguin:2010/07/22(木) 17:51:50 ID:kGVA/gdU
>>887
使い方が間違っていると思われ。
890login:Penguin:2010/07/23(金) 15:10:35 ID:chVBZepp
>>888
>>887じゃないけど、追っかけてる先がrebaseしちゃった時に、
自動判別してこっちもrebase --ontoっぽくやってくれたら良いなと思うことはあるな。
本家の改造とか公開してると、けっこうrebaseしたくなるんだよね。
891login:Penguin:2010/07/23(金) 20:11:28 ID:+2OGfwPe
家リポジトリというのがよくわからんがpush/pullされうるリポジトリでrebaseってのがそもそも間違ってる気がする
892login:Penguin:2010/07/23(金) 20:19:47 ID:AtkBTB/A
>>884
標準出力を常にGoogle翻訳で翻訳するパイプでも作ってろ
893887:2010/07/24(土) 08:48:55 ID:mi89eBmB
おおむね >>890 が代弁してくれたありがとう。
rebaseっていうかrebaseのmergeの話だった。
上流を追いかける作業を3サイトでやってるのでやっぱりrebaseに頼りたいのだ。
894login:Penguin:2010/07/24(土) 14:23:06 ID:T1iC+JGW
git pull --rebase
を生かす方向なのかな。危険だけど
895login:Penguin:2010/07/24(土) 14:32:22 ID:ZRZfN7DH
>>894
全然危険じゃないよ
896login:Penguin:2010/07/24(土) 18:59:55 ID:3or6t789
「公開リポジトリがrebaseされたらどうなるの」っと・・・
897login:Penguin:2010/07/24(土) 19:02:21 ID:T1iC+JGW
>895
んと、man git-pull の --rebase に書かれてある。

>Note
> This is a potentially _dangerous_ mode of operation.
> It rewrites history, which does not bode well when you published that history already.
> Do not use this option unless you have read git-rebase(1) carefully.

っていう潜在的な危機をどう捉えるかによるんだろうねえ。
898login:Penguin:2010/07/24(土) 19:09:04 ID:88hJDb8Q
http://d.hatena.ne.jp/kattton/20090416/1239895764
ActiveScriptRubyでやってるんですが
git initと入力してもコマンドがないって怒られてしまって。。。
何か足りないのでしょうか?
宜しくお願いします
899login:Penguin:2010/07/24(土) 19:28:08 ID:EKpgTrLM
>>898
ここはLinux板です、とでも書いておけばいいのかな?
900login:Penguin:2010/07/24(土) 20:19:39 ID:EO3/tJEK
Webサイトをgitで管理したいんだけど、気を付けなきゃいけないこととかある?
rsyncでやってたところをWebサーバ側からのgit pullで済ませようと思ってるんだけどパーミッションは実行権限しか追跡しないとかって話が上で出てて足踏みしてる。
901login:Penguin:2010/07/24(土) 20:38:16 ID:T1iC+JGW
っ「hook」
902login:Penguin:2010/07/25(日) 01:09:59 ID:uqOvh6D0
>>899
>>898は、たしかRubyのスレから誘導されてる人だと思うが、
どうやらRubyとgitを一体のもの(Rubyをインストールするとgitも
使えるようになる)だと思っているらしいな。

というわけで git は git で別途インストールしてください。
903login:Penguin:2010/07/25(日) 17:10:28 ID:lHmR0dFq
v1.7.2きてるんだけど、公式ページのほうがなかなか更新されないな。
904login:Penguin:2010/07/25(日) 22:19:29 ID:OrPiVp0L
ruby native で git 再構築すれば、普及しそうだけどな。
もちろん path は UTF-8 に変換して収める形で。
905login:Penguin:2010/07/25(日) 22:29:54 ID:b9zDuuRt
っ「いいだしっぺの法則」
906login:Penguin:2010/07/25(日) 22:45:21 ID:87ahCoBn
>>905
・そもそもできると思ってる?
・どうせ使わないんだろ?
907login:Penguin:2010/07/25(日) 23:13:17 ID:PIOYVDsr
>>906
Version Control in Ruby. Mercurial Compatible. Big ideas.
http://bitbucket.org/carbonica/amp/overview
908login:Penguin:2010/07/25(日) 23:21:02 ID:PIOYVDsr
http://amp.carboni.ca/
Amp has bigger dreams. Here’s what we want to do:
* git, bazaar, svn, cvs, darcs In Ruby. 100% Compatible.
909login:Penguin:2010/07/26(月) 00:31:36 ID:PBilh91y
msysGit の UTF-8ファイル名対応版を作ってみた
一応、TortoiseGit からきちんとUTF-8ファイル名を扱えることを確認済み。
http://tmurakam.org/git/
910login:Penguin:2010/07/26(月) 00:36:54 ID:oLqOu0tb
>>909
Great Job!!
プログラマ板にも宣伝した方がいいと思うよ。
911login:Penguin:2010/07/26(月) 21:12:53 ID:oLqOu0tb
>>910
プログラム板と間違えた。
912login:Penguin:2010/07/29(木) 10:32:28 ID:SQ2Lg/WY
素朴な疑問だけど、

・フォークしたいリポジトリがある
・そのリポジトリはgit使ってない(svn)

とかいう場合はどうする?

git-svn使ってcloneするとしてもpullとかできる?
あきらめるしかないのかな
913login:Penguin:2010/07/29(木) 10:39:07 ID:SQ2Lg/WY
git svn clone

pullの代わりに git svn rebaseでいいのかな

問題なさそうなら試してみるか
914login:Penguin:2010/07/29(木) 11:53:07 ID:m5sW/oAY
git-svnとか使ってたけど、たまにimportの途中で突然死したりして
どうも不安定な感じなので

- ふつーに svn checkout
- その内容を "remote" ブランチ(git-remoteとは関係なく、単にそう名前つける)に
定期的に svn update して登録
- 自分の開発は "master" ブランチで行う

で誤魔化してる。svn側とコミット単位が揃わないのが難点だが、そこは
毎日 svn update して git-commit される単位もそこそこ小さくなるようにして
逃げてる。
915login:Penguin:2010/07/29(木) 12:00:04 ID:SQ2Lg/WY
開発をmasterブランチでやるとこまらない?

masterブランチはsvnとの同期に使って
mymasterブランチを作ってそっちを自分用にしたほうがいい気がする
916login:Penguin:2010/07/29(木) 12:54:32 ID:AaQBX6kn
masterで開発してて、commit --amend,resetとか使いまくると
dcommitに失敗することあったな。
917login:Penguin:2010/07/29(木) 19:56:16 ID:SQ2Lg/WY
やっぱsvnと連携する場合はmaster以外で開発したほうがよさそうだな

それにしてもgit-svn cloneなげえw
918login:Penguin:2010/07/29(木) 20:21:05 ID:RVoF2mKv
履歴の全部が必要でなければ途中からやれば直ぐ終わる。
数万リビジョンもやってられん。
919login:Penguin:2010/07/29(木) 20:21:33 ID:AaQBX6kn
dcommitできなくなっても
checkout -bで別ブランチに移動しておいて、
masterをsvnのHEADより前にresetしてから、rebaseでsvnに同期。
で、別ブランチをmasterにmergeしてから、dcommitしたら治った
920login:Penguin:2010/07/29(木) 20:38:27 ID:SQ2Lg/WY
なるほど
どうせrebaseするんだし、今からやるなら元からブランチ切っといたほうがよさそう
つうわけでsvnからclone中
数百リビジョン程度だけど時間かかるわ

さすがに数万リビジョンだったら途中からやったほうがよさそうね
出くわしたときには参考にはするわ
921login:Penguin:2010/07/30(金) 19:27:57 ID:n+PyZb8E
wordファイルを管理したくて
xdoc2txtを利用してdiffをとろうとしてるんだけれど
うまくいかないのでアドバイス下さい。

progitを参考にstringsを使ってみたけれど、
うまくテキストを抽出してくれない。
(そもそもSJISに対応していない?)
xdoc2txtをダウンロード、PATHを通した。

$ uname -a
CYGWIN_NT-5.1 MP014 1.7.5(0.225/5/3) 2010-04-12 19:07 i686 Cygwin

$ git version
git version 1.7.1

$ git config -l | grep word
diff.word.textconv=xdoc2txt

$ cat .gitattributes
*.doc diff=word
(続く)
922login:Penguin:2010/07/30(金) 19:28:44 ID:n+PyZb8E
(921続き)
コミット済みのwordファイルを開き、最後の行に「追加テキスト」
を書き込み、保存。
diffをとってみると、文章全体が追加されたような結果が表示される。
古い方の文書が空?

$ git diff
diff --git a/test.doc b/test.doc
index 34294f8..d3e0c9e 100755
--- a/test.doc
+++ b/test.doc
@@ -0,0 +1,3 @@
+Word文書
+日本語
+追加テキスト

お願いします。
923login:Penguin:2010/07/30(金) 20:11:33 ID:hs7/uySS
ここはLinux板だからcygwinは板違いだと思うんだ。
924login:Penguin:2010/07/30(金) 21:33:55 ID:99W6fMHU
>>923
Linux Like systemじゃん。多めに見てやれよ。
925login:Penguin:2010/07/30(金) 22:06:26 ID:ed1Kx/Tw
つーかLinux板にあること自体が間違ってるんだろ。
該当しそうなム板にはgitスレないみたいだし。
926login:Penguin:2010/07/30(金) 22:51:12 ID:99W6fMHU
そもそもLinuxにgitスレがあるのが間違いじゃね?
927login:Penguin:2010/07/31(土) 00:37:31 ID:+18Yoya7
2007年末ならもうム板でよかったな。
928login:Penguin:2010/07/31(土) 01:01:37 ID:E1O74csb
そんじゃム板に引越しかねぇ。あそこID出ないから荒れやすい気がするんだよな。
929921:2010/08/01(日) 10:19:53 ID:8DX+UhYr
catdoc、xls2csvでいけました。
-dオプションを”-d UTF-8”と大文字で書いてしばらくはまった。
$ catdoc.exe -w -d utf-8 test.doc

930login:Penguin:2010/08/01(日) 14:20:01 ID:LQjsO1N6
>>929
それはcygwin標準配布なんでしょうか?
931login:Penguin:2010/08/04(水) 08:58:27 ID:IBiuTVdS
ム板には、バージョン管理総合スレってのがなかったっけ?
932login:Penguin:2010/08/04(水) 09:48:31 ID:Hq1IxoMJ
>>931
あるけどこんなのがいるところだよ。
http://pc12.2ch.net/test/read.cgi/tech/1270640436/528
933login:Penguin:2010/08/17(火) 16:34:08 ID:9ok4N7z5
git 管理下にあるファイル名をしるには、どうしたらいいんでしょ?
934login:Penguin:2010/08/17(火) 16:54:04 ID:cLeqdHdK
つ git ls-files
935login:Penguin:2010/08/17(火) 22:12:09 ID:QBFEjw3K
>>934
何で単にgit filesにしないんだろw 
936login:Penguin:2010/08/18(水) 00:56:05 ID:G+jqjyHX
>>935
作者の指が「ls」を記憶してるから、とか?
あんだけたくさんコマンドあると、衝突しないようにするだけでも大変そう。
937login:Penguin:2010/08/18(水) 00:57:54 ID:a7ZcViPY
Plumbingはだいたいそんなかんじ
938login:Penguin:2010/08/18(水) 01:56:40 ID:vmbNRhYU
git初心者です。特定のタグのソースを取り出したいのですが、どういうオプションになる
のでしょうか。
939login:Penguin:2010/08/18(水) 10:19:10 ID:a7ZcViPY
特定のタグってなに?
940login:Penguin:2010/08/18(水) 13:47:34 ID:b4yYMaNq
git checkout 特定のタグ
ってことか。
941login:Penguin:2010/08/20(金) 15:36:32 ID:Ne/nS8Jw
>940
cvsでいいますと、
$ cvs update -dP -rAUTOCONF-2.61a2
みたいなことをやりたいのですが、頭が悪いせいか、gitドキュメントを見ても
ググっても分かりませんでした∩(・∀・)∩
942login:Penguin:2010/08/29(日) 11:02:39 ID:3wb5Jkl1
git checkout 特定のタグ
ってことか。
943login:Penguin:2010/09/01(水) 22:12:47 ID:E+kLKF/M
TortoiseGit1.5.2.0で、
git svnでcloneしようとしたらこんなメッセージが出てくるのですが・・・

git.exe svn clone "https://jedit.svn.sourceforge.net/svnroot/jedit" "C:\Users\UserName\Documents\Git\jedit" -T trunk -b branches -t tags -r 17781:HEAD

Initialized empty Git repository in c:/Users/UserName/Documents/Git/jedit/.git/
Error validating server certificate for 'https://jedit.svn.sourceforge.net:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: *.svn.sourceforge.net
- Valid: from Jan 4 15:21:55 2010 GMT until Feb 5 10:03:23 2011 GMT
- Issuer: Equifax Secure Certificate Authority, Equifax, US
- Fingerprint: ea:d1:3e:01:cc:16:e9:9b:c2:ab:4b:0c:cc:26:5f:25:78:ea:89:b4
944login:Penguin:2010/09/01(水) 22:21:24 ID:pBMloSfq
Tortoiseだと最後の
(R)eject, accept (t)emporarily or accept (p)ermanently?
は見えないのかな?
945943:2010/09/02(木) 10:46:30 ID:Arao/yfS
ああ、出ていましたが長すぎる行があると言われたのでカットしてしまいました。
よく考えたら、コンソールから実行すれば良いみたいですね・・・。

でも、このメッセージをでなくする方法はないんでしょうか。
(p)ermanentlyにしてもまた聞かれる事があるようなんですが。
946login:Penguin:2010/09/02(木) 11:26:14 ID:XvOWHzNG
また聞かれるってのは、同じホストに対してのアクセスで?
947login:Penguin:2010/09/05(日) 13:15:39 ID:uOwZFEmh
色々あるけど、どれを落としたらいいのかよくわかりません。
これらの違いをまとめたサイトってありますか?

http://code.google.com/p/msysgit/downloads/list

Git-1.7.0.2-preview20100309.exeとか
msysGit-fullinstall-1.7.1-preview20100612.exeとか
PortableGit-1.7.0.2-preview20100309.7zとか

あとバージョンとして現在(2010/09/05)ではGit1.7.0.2と1.7.1ではどちらを選ぶべきでしょうか?
948login:Penguin:2010/09/05(日) 15:34:22 ID:dvJgUDqy
>>947
1.7.1一択でしょ
バージョンが上がって不具合出たってのは聞かないし
949943:2010/09/06(月) 16:52:42 ID:TasayJ9W
>>946
ああ、すみません
動作がちょっとおかしいのでgit svn cloneしたら設定が消えて、また聞かれたようです。
回答ありがとうございました
950login:Penguin:2010/09/06(月) 20:54:22 ID:pgdlXjWJ
bare同士を同期取りたいのですがどうすれば良いですか?
951login:Penguin:2010/09/07(火) 12:47:03 ID:qEz6F0+G
proxyってどうすれば使えるようになるんですか?
TortoiseGitのSettingsでプロキシを設定するだけでは全く使えませんでした。
TortoiseSVNはSettingsで設定しただけで使えたのですが。
952951:2010/09/07(火) 12:52:43 ID:qEz6F0+G
git@で始まるURLをHTTPプロキシ経由で通信するのは無理そうですね
でもhttpsで始まるURLを、git svnで使うことは出来ないでしょうか

git.exe svn fetch

RA layer request failed: PROPFIND request failed on '/svn': PROPFIND of '/svn':
could not connect to server (https://projectname.googlecode.com) at
C:\Program Files (x86)\Git/libexec/git-core/git-svn line 1765
953951:2010/09/09(木) 12:17:25 ID:RH0+QDEG
putty.exeをダウンロードしてきて、"Proxy"の設定で
プロキシーサーバー名、ポート、ユーザー名、パスワードを設定しましたが

Proxy error: 502 Proxy Error( The specified Secure Sockets Layer (SSL) port is not allowed.
ISA Server is configured to allow SSL requests from this port. Most Web browsers use port 443 for SSL requests. )

って出てしまいます。ポート番号8080だとダメって事なのか・・・
954login:Penguin:2010/09/09(木) 16:27:56 ID:mDAI+fqz
無理っぽそうだったらsvnsyncで妥協したら?
955951:2010/09/09(木) 20:48:06 ID:kFF0nZHX
>>954
git svn rebaseはできても、dcommitが出来ないと思いますが・・・
956login:Penguin:2010/09/10(金) 01:20:57 ID:zrQ2Gj6r
うーむ、Windowsで使う人がぞくぞく増えてるかんじ?
やっぱ次スレはム板すかねぇ。。。
957login:Penguin:2010/09/10(金) 09:22:15 ID:TpgsxR0x
>>955
SFにgitのミラーがあるっぽいけどこれは何なんだろう?
http://sourceforge.net/projects/jedit/develop
githubにフォークするってのもあると思うけど。
958951:2010/09/10(金) 10:39:13 ID:dSf/GY6Z
ローカルのSVNリポジトリからリモートのSVNリポジトリへ
svnsyncで送信して同期すればいいかと思いましたが、
GoogleCodeはローカルへリポジトリを複製しか出来ないっぽいです

>>957
なんかgitでアクセス出来るようになってますね、jEdit

フォークとは・・・?あれってgitリポジトリ同士でしか出来ないのでは
959login:Penguin:2010/09/10(金) 11:00:52 ID:TpgsxR0x
>>958
あ、SFのjeditとは別の人?
google codeならMercurial・・・
分散型ならリポジトリは全部フォークだと思うけど。
960login:Penguin:2010/09/12(日) 16:19:55 ID:Sol+WDkR
947ではないが、
私も
 Git-1.7.0.2-preview20100309.exeとか
 msysGit-fullinstall-1.7.1-preview20100612.exeとか
 PortableGit-1.7.0.2-preview20100309.7zとか
の違いがわかりません。
教えていただけないでしょうか?
961login:Penguin:2010/09/12(日) 21:31:08 ID:h7gcaqYG
cygwinじゃないWindowsでgitを使おうとする人って、
Linuxでgit使っているからWindowsでもgitってことなのか、それとも新規なのか、
どっちなんだろう。
962login:Penguin:2010/09/12(日) 22:45:02 ID:htZZDz4y
TortoiseSVN使っていたけどGitの方が便利と聞いてGitにした
963login:Penguin:2010/09/13(月) 00:38:24 ID:YenyTnaV
>>961
cygwin重すぎ、使ってる奴の気がしれない
とgnuwin32を使ってたらWindowsでもgit.exeになる
今はcygwinも早くなってるのかもしれんけど、もういいや
964login:Penguin:2010/09/13(月) 08:21:48 ID:jm0PoiEs
msysgitってgitのフォークなの?本家に取り込まれているの?
965login:Penguin:2010/09/13(月) 12:51:23 ID:0ibbPuzY
ttp://msysgit.googlecode.com/files/Git-1.7.2.3-preview20100911.exe
ここ最近はきっちり3ヶ月おきリリースなことに今更気づいた
966login:Penguin:2010/09/13(月) 20:48:12 ID:Zgx/jEtL
>>964
分散開発に最適のgitがフォークして開発されているというのも皮肉なもんだねw
967login:Penguin:2010/09/13(月) 21:01:20 ID:x3FkpFvu
皮肉?本望なんじゃね?
968login:Penguin:2010/09/14(火) 02:48:37 ID:tcoVxShJ
んで結局違いがよくわからない・・・
ネット上の記事だとノーマルのGitを落とせというし
http://www.symfony.gr.jp/git/setup-git-windows
ここだとmsysGitを落とせと言うし。。。
969login:Penguin:2010/09/14(火) 03:04:33 ID:PgbTlLnP
Windowsでもcygwinでemacsな俺は、gitもふつーにcygwinのを使っていたけど、
特に重いとは思わなかったけどなあ。
git svnは重かったけど、それはcygwinのせいでも、gitのせいでもないだろう。
970966:2010/09/14(火) 04:05:20 ID:B7Rjnzsm
>>967
いやあ、git的にはmsysGitのツリーで行った開発を定期的に本家にpushする
という分散開発が理想だろう。 フォークっていうのはある一点で「分かれた」という
事だからね。
971login:Penguin:2010/09/14(火) 11:46:05 ID:tkVL1pFU
>>968
日本語か。
TortoiseGit・・・
972login:Penguin:2010/09/14(火) 12:23:58 ID:STW7bI3c
git 本体の問題じゃないんだけどアドバイスくれくれさん

github にある hoge ライブラリを git clone して改造して
「特定用途に特化してて便利な気がする tokutei-hoge」 としてパッケージにして公開したいんよね
COPYRIGHT とかどう書けばいいのかな
オリジナル作った人の次に名前書くとかでいいのかな

本家さんは MIT ライセンスだそうなんだけど
973login:Penguin:2010/09/14(火) 12:40:34 ID:M4Br56RH
>972

(1) forkして作ったんだから、まずオリジナルのライブラリに関して言及するのは必須だろ
(2) 中身について、単なる拡張で、upstreamに戻した方がいいなら自分でメンテするんじゃなくて
upstreamに戻した方が楽
(3) 自分が書き直して、もしくは手を入れて著作権を主張できるぐらいの内容と分量があるなら
そこで初めて自分のライセンスを検討しはじめる。MITライセンスが第一候補になるかとは
  思うが、別のライセンスでも良い。しかし、ライセンス矛盾がおきないようにして
あげないと事実上使えない。
974login:Penguin:2010/09/14(火) 15:07:07 ID:tkVL1pFU
>>960
https://git.wiki.kernel.org/index.php/MSysGit:InstallMSysGit

> What is msysGit?
>
> msysGit is the development environment to compile Git for Windows.
> It is complete, in the sense that you just need to install msysGit,
> and then you can build Git. Without installing any 3rd-party software.
>
> msysGit is not Git for Windows; that is an installer which installs Git -- and only Git.
>
> It is easy to see the difference: the installers for Git have the prefix Git-,
> the msysGit installers have the prefix msysGit-.
> Another telltale is that the msysGit installers come in two flavors: fullinstall and netinstall.
> Further, msysGit does not install to C:\Program Files by default.
> But msysGit comes with gcc, the GNU C Compiler.
>
975login:Penguin:2010/09/14(火) 20:14:54 ID:tOvJH+me
$ git svn dcommit
Committing to svn+ssh://xxx/trunk ...
M xxx.txt
トランザクションはリポジトリ側と比べて古くなっています: Out of date: '/xxx.txt' in transaction '11523-1' at /opt/local/libexec/git-core/git-svn line 572

$ git svn rebase
It seems that I cannot create a rebase-apply directory, and
I wonder if you are in the middle of patch application or another
rebase. If that is not the case, please
rm -fr xxx/.git/rebase-apply
and run me again. I am stopping in case you still have something
valuable there.
rebase refs/remotes/svn/trunk: command returned error: 1

意味がぜんぜんわからないんだけど
rm -fr xxx/.git/rebase-apply
をすればいいのか…?
976login:Penguin:2010/09/14(火) 20:21:12 ID:tOvJH+me
消すと怖いので mv xxx/.git/rebase-apply xxx/.git/_rebase-apply
して git svn rebase したらコンフリクト地獄が始まったので
恐くなって git rebase --abort して
git svn dcommit したら >>975 の最初に戻った。
一体どうすれば
977login:Penguin:2010/09/14(火) 20:33:12 ID:AR5HDwoC
>>976
git svn fetch
git log HEAD..trunk
ってやったらどうなる?(trunkは適宜置き換えが必要かもしれない)
rebaseで適用される予定のコミットが表示されるはずだけど、
そいつらが既に今のブランチにあったりしない?

git log trunk..HEAD
この場合、dcommitでsvnに送られる予定のコミットが表示されるはずだけど、
既にsvn側に存在するコミットが表示されたりしない?

git側でマージしたりするとこうなるかも知れない。git-svnするならマージコミットは
作らないほうが良いよ。

もしくはdcommit先のtrunkとかbranches/hogeとかが途中でズレたりしてコミットが
重複しまくってるとか。
978login:Penguin:2010/09/14(火) 20:51:11 ID:tOvJH+me
>>977

$ git svn fetch
(10秒ぐらいかかって何も表示されず正常終了したっぽい)

$ git log HEAD..trunk
fatal: ambiguous argument 'HEAD..trunk': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions

$ git log trunk..HEAD
fatal: ambiguous argument 'trunk..HEAD': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions

$ git log -3 --oneline
606d931 ○○するように変更
64a27a8 ○○機能実装
5974f08 Merge branch 'master' into topic4

なんかtopic4での作業を git master topic4 としてからおかしくなりました。
git svn dcommit -n だと10行ぐらいでてきます。
が、git svn dcommit だと >>975 の最初に戻ります
979login:Penguin:2010/09/14(火) 21:00:30 ID:AR5HDwoC
>>978
最終的にdcommitするなら、topicブランチの作業はmergeしないでrebaseして
真っすぐにしといたほうが良いよ。

trunkじゃないのか。なんかリモートブランチの名前があると思うんだけどな。
.git/refs/remotesになんかあると思う。git branch -r とかでも。
980login:Penguin:2010/09/14(火) 21:27:11 ID:tOvJH+me
>>979
「topicブランチの作業はmergeしないでrebaseして真っすぐ」というのがよくわからなかったのですが、
とりあえず .git/refs/remotes の下に svn があったのと、
$ git branch -r
svn/trunk
となったので
$ git log HEAD~3..svn/trunk --oneline
みたいにしたら git log は正しく動きました
(こういう使い方があるんですね。覚えとこう)

あとは、どっかのブログに過去に戻る方法が書いてあったのでそれを参考に、

$ git reflog -12
(中略)
64a27a8 HEAD@{9}: merge topic4: Fast-forward
0dd2d98 HEAD@{10}: checkout: moving from topic4 to master
$ git reset --hard HEAD@{10}

として戻って
>>977さんのアドバイスをうけて --no-commit をつけてみて、
ウノウのサイトで、おまじないとして --no-ff つけとけみたいに書いてあったので
$ git merge --no-ff --no-commit topic4
としてみて
git commit

未来でコミットしてたのを探して取り込んで、
git reflog -20
git cherry-pick 606d931

git svn dcommit
で、コミットできました(嬉し涙)
アドバイスありがとうございました >>979
981login:Penguin:2010/09/14(火) 21:39:34 ID:zBcLbtwP
おう、次スレたててきたぞ。

Git 2
http://hibari.2ch.net/test/read.cgi/tech/1284467898/
982login:Penguin:2010/09/14(火) 21:48:11 ID:tkVL1pFU
>>981
乙。
連投規制があるらしいが、テンプレ終わり?
983login:Penguin:2010/09/14(火) 21:50:02 ID:Is+DvmEP
>>974
Git-...preview と PortableGit... と msysGit... の違いは?
984login:Penguin
>>982
テンプレはこんなものかな?
追加があればヨロ。