トップページ⇒linux
984コメント325KB

git スレッド

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin2007/12/16(日) 18:40:39ID:GslAi8rs
ソースコード管理を行うバージョン管理システム、git について語ろう。

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

git チュートリアル (バージョン 1.5.1 以降用)
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial.html
0204login:Penguin2009/02/19(木) 07:31:39ID:EG8D4dSl
>>203
Debianだけど、もしかしたら同じかもしれない。豚々。
0205login:Penguin2009/02/21(土) 13:27:13ID:4lfOqpcB
git使いたいけどまわりにCVSしか使ったことないのがいるので、
まずはsvnに移行したよ。
自分自身は、git-svnつこてる。

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

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

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

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

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

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

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

もしかしてもっと便利な統合コマンドがあったりするでしょうか?
0233login:Penguin2009/03/07(土) 01:39:30ID:ZWrd4H3R
それぞれ役割が違うだろうに。
あと更新とかじゃないよ。
0234login:Penguin2009/03/07(土) 08:32:02ID:ovs/dmRV
他の人のリポジトリからチェンジセットを引っ張ってくるために打つコマンドという
意味で同じように使っているのですが、もしかしてこの使い方・理解自体が
間違ってるんでしょうか?
0235login:Penguin2009/03/07(土) 09:38:44ID: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のところに書いてある)
0236login:Penguin2009/03/12(木) 08:16:17ID:76FRS4+8
darcsから乗り換えるといいことありますか?
0237login:Penguin2009/03/12(木) 09:29:53ID:XKHVHsT3
>>236
pull したときに、いっぱい yes/no 聞かれずにすむ。
0238login:Penguin2009/03/14(土) 11:44:17ID:juJwYmYq
hg から乗り換えるといいことありますか?
0239login:Penguin2009/03/14(土) 11:58:11ID:i8Be0VVA
>238

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

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

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

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

ほかに何かいいのありませんか。
github クローンがあれば最高です。
0243login:Penguin2009/03/26(木) 16:35:56ID:g3Z2bRWJ
>>242
ttp://git.or.cz/gitwiki/InterfacesFrontendsAndTools
02442422009/03/26(木) 17:37:03ID:XSnWphDj
おお、こんなにあったんですね。ありがとうございます。

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

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

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

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

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

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

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

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

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

[color]
status = auto

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

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

2個目のは
git checkout 〜
かな?
# よくわからんが。
0278login:Penguin2009/05/01(金) 00:27:11ID: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は「前回との差分を反映した上でコミットする」ようなのです。
以前の状態に戻してもらえれば、別にコミットしなくてもいいのですが、そういうことをしてくれるコマンドを探しています。
0279login:Penguin2009/05/01(金) 02:11:17ID:UyxRnjCJ
>>278
git checkout {commit} -- .

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

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


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

/.ssh/id_rsa):

が存在しません。

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

まだない。
その文の訳は「鍵を保存するファイルを入力してね」だ。
カッコ内は、名前を指定しなかったときにこの名前になるよってこと。
0291login:Penguin2009/05/19(火) 00:58:18ID:5BgkgMmK
んじゃあ、ENTERを押せばよかったってこと?
0292login:Penguin2009/05/19(火) 01:31:25ID:zZo+QRSM
そゆこと
0293login:Penguin2009/05/26(火) 12:25:38ID:lz1Hno2I
git clean -fx したときにでも特定の虫ファイルが生き残るようにする設定ないかなあ。
0294login:Penguin2009/05/26(火) 12:56:04ID:F7u3ZQup
>>293
まさかGitリポジトリの中で虫を飼ってるやつがいるとは・・・。
はっ!なるほど、バグを飼ってるんですね、わか(ry
0295login:Penguin2009/05/26(火) 15:02:12ID:lz1Hno2I
そうそう、鈴虫だけは駆除したk…ってのはおいといて。
設定ファイルをgitで管理してて、
パスワードとかはいっててリポジトリに入れるのはなんかいやなファイルがあるんだけど、
git clean -fxとかしちゃうとそれまで消えちゃうんだよね。
makeの.PRECIOUSみたいな設定ができると嬉しい。
まあ需要なさそうだよな…
0296login:Penguin2009/05/26(火) 20:43:46ID:dhhqSphP
>>295
何の設定ファイルか知らないけど、そういう場所でclean -fx
するのはそもそも間違いじゃないの?
0297login:Penguin2009/05/26(火) 23:19:27ID:lz1Hno2I
まあね。そうなんだけど。
でもauthorized_keys~とか消したくね?ね?
0298login:Penguin2009/05/26(火) 23:48:37ID:KnIgZeet
うだうだ言ってないで、自分で改造しろよ
0299login:Penguin2009/05/26(火) 23:51:18ID:Aiox/6VI
俺なら、レポジトリの外においとくけどなぁ > 設定ファイル
0300login:Penguin2009/05/27(水) 01:55:32ID:h/OEez6w
色んなところの設定をリポジトリに突っ込んで管理してるのです。
>>298の言うとおり、そのうち改造してみることにします。
0301login:Penguin2009/05/27(水) 10:46:25ID:V1RGq7PO
clean -f じゃだめなの?
0302login:Penguin2009/05/27(水) 17:11:06ID:h/OEez6w
まあそういう解もあるけど。
でも、hogehoge~とかがUntracked filesと表示されるのはいや。
0303login:Penguin2009/05/27(水) 18:40:50ID:NsMBl7Do
>>302
.gitignore で除外指定するのも手かと。
0304login:Penguin2009/05/27(水) 19:10:26ID:V1RGq7PO
>>302
普通にcleanしてもhogehoge~とか消えないの?
hogehogeがignoreされてるの?
■ このスレッドは過去ログ倉庫に格納されています