git スレッド
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
2007/12/16(日) 18:40:39ID:GslAi8rsあの、リーナス・トーバルズだって、バージョン管理を始めたんだ。
http://www.kernel.org/pub/software/scm/git/
git チュートリアル (バージョン 1.5.1 以降用)
http://www8.atwiki.jp/git_jp/pub/Documentation.ja/tutorial.html
0581login:Penguin
2009/12/13(日) 04:59:08ID:XTGOd8wrWebなんかでも、svnのこのコマンドに相当するgitのコマンドは何?って質問が
結構あるしやっぱり本質は理解されてないかんじですね
indexも存在意義がわかれば非常に便利なんだけど。
Winの話題で申し訳ないけれど、TortoiseGitなんかもindexの存在を隠して
ワークツリーから直接コミットするような作りになってるし
>これは麻薬ツールの典型なんだが、会得してしまった人は会得してない人に教えるのが
たしかにそうですねw
>>580
よく使うコマンドだと
checkout ブランチ名(ブランチ切り替え)
checkout -- ファイル名(ファイル取り出し)
reset HEAD^(コミット取り消し)
reset ファイル名(ファイルアンステージ)
reset --hard(ワークツリーの修正取り消し)
0582login:Penguin
2009/12/13(日) 12:05:06ID:eLNfVimeチュートリアルをいじって自分の頭の中に動作イメージを作るか
よくできた紙芝居を見せてもらうかしないと
「わかった」とはならなよね。
0583login:Penguin
2009/12/13(日) 21:39:57ID:MfgUdwK5まあでも「alias書けば?」で終わるレベルじゃん
0584login:Penguin
2009/12/13(日) 22:56:38ID:hWQ7uDdJ0585login:Penguin
2009/12/13(日) 23:48:27ID:yRHWt0hz0586login:Penguin
2009/12/14(月) 00:06:09ID:iC7LD6wI0587login:Penguin
2009/12/14(月) 00:12:42ID:1YNrTAVE付けられるんだけどねー。
分かるまでがたいへん。
0588login:Penguin
2009/12/14(月) 00:21:12ID:MiMO4S1uならないが、話の論点わかってますか?
0589login:Penguin
2009/12/14(月) 00:50:41ID:uqSDssQDttp://github.com/blog/564-hub-git-with-github
0590login:Penguin
2009/12/14(月) 20:21:03ID:9KU3MLe4文脈で書き方が
$ git push repository branch
だったり
$ git merge repository/branch
だったりするところとか。理解しきれてないからなんだろうけど。
0591login:Penguin
2009/12/14(月) 22:02:14ID:iC7LD6wIそしてある程度分かってきたら、よほど長くない限りalias使わなく
てもよくなるんだけど、誰かが作ってくれたalias集をwebから
持ってきて、... なんて方法も今はあるからね。
0592login:Penguin
2009/12/15(火) 00:21:21ID:uU/CeyJd省略形じゃなくてフルで記述するコマンド体系を覚えてから
省略形を使うようにしたら、すんなり理解できた
$ git push repository branch
は
実は
$ git push repository branch:branch
の省略形で、手元のbranchからrepositoryのbranchへ対してpushしなさいという意味
一方mergeのorigin/masterなどは、具体的なコミットを指しているので
リポジトリ名/ブランチ名となる
0593login:Penguin
2009/12/15(火) 04:59:39ID:pR/bRTj/もう忘れてたけど確かに俺もそうだわ。
pushはフル書式で理解するまではかなり自信なさげに使ってた。
0594login:Penguin
2009/12/24(木) 15:20:36ID:v3JWri2J0595login:Penguin
2009/12/25(金) 21:55:28ID:lY3loZi6気になるんだが、indexとかうまく使えば減るだろうか
0596login:Penguin
2009/12/26(土) 00:20:32ID:EUZh5OCV運用上不都合がなければいいんじゃない?
0597login:Penguin
2009/12/26(土) 06:40:51ID:SkSud091reset、rebase、resetに頼りまくれるようになってはじめて、一人前のGit使いだと思う。
commitとmergeだけじゃ今までのVCSと変わらないじゃないか。
0598login:Penguin
2009/12/26(土) 06:42:53ID:SkSud091reset、rebase、stashのつもりだった。。。
あとrebase --onto、rerereなんか使うとさらに先にいける。
0599login:Penguin
2009/12/26(土) 10:39:25ID:AQehkmKr0600login:Penguin
2009/12/26(土) 12:12:59ID:Z6Z05dDL普段git svnでやりとりしてるとrebaseだけで事足りるというだけなのか
0601login:Penguin
2009/12/29(火) 01:24:35ID:AAGVKxmF0602login:Penguin
2009/12/29(火) 14:12:54ID:utuwRMGkそいつとは、pushやpullができるという
0603login:Penguin
2009/12/29(火) 18:19:26ID:erZVRnS3でも結局いつかgit svn rebaseするから、ID全部変わるしマージコミット入れられないしで
うぼわーマジsvnやめようぜクソがぁ!
ってなる。
0604login:Penguin
2009/12/30(水) 07:38:54ID:kfBW1mPl0605login:Penguin
2010/01/08(金) 12:31:36ID:S57JTlxptextファイルだとgitに教える方法はありませんでしょうか?
0606login:Penguin
2010/01/09(土) 10:57:40ID:3So5fkbwgitattributes で crlf と diff をセットだと思う。
0607login:Penguin
2010/01/12(火) 19:43:07ID:2XlpNrfTコミット名を入れたいのですが、みなさんはどうやって取得していますか?
知りたいコミットが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が空になってしまいます。
0608login:Penguin
2010/01/12(火) 23:43:38ID:914bGyNn0609login:Penguin
2010/01/13(水) 05:50:58ID:+l7m8J7G0610login:Penguin
2010/01/13(水) 09:58:54ID:/kr/i6EO0611login:Penguin
2010/01/18(月) 10:24:04ID:xAKlwsjNこのファイル自体はpushされていて、でも今後の変更分についてはpushしたくないってとき、どーするのが正解?
git rm --cached して版管理自体をやめるわけにはいかないんだけど
0612login:Penguin
2010/01/18(月) 11:48:43ID:9pALEWP20613login:Penguin
2010/01/18(月) 11:58:05ID:xAKlwsjNすでに版管理されてるからmodified filesとしてあがってきちゃう
commit対象としてのみ無視したいんだけど、ignoreできるの?
0614login:Penguin
2010/01/18(月) 20:36:24ID:KAj8+0o6ローカルリポジトリでバージョン管理するのを止めれないなら
ignoreできないから、簡単な方法はないでしょう。
push用のブランチを作り、手でrebaseしてそのファイルへの修正が
入らないようにしてからpushするとかしか思いつかないけど。
0615login:Penguin
2010/01/18(月) 20:43:21ID:2FuAr7Gb0616login:Penguin
2010/02/04(木) 11:09:26ID:5W3FJugT何が集中したり分散したりしてるの?
0617login:Penguin
2010/02/04(木) 11:11:53ID:CYNiw1E30618login:Penguin
2010/02/04(木) 13:34:55ID:YQOQkcZC0619login:Penguin
2010/02/04(木) 14:30:46ID:5W3FJugT仕事用で使いたくて、なるべく権力を集中させたいので
gitは見送ります。ありがとうございました。
0620login:Penguin
2010/02/04(木) 17:54:59ID:5NWhCwR0http://progit.org/book/ch5-1.html
http://github.com/progit/progit/blob/master/ja/05-distributed-git/01-chapter5.markdown
0621login:Penguin
2010/02/04(木) 19:37:14ID:YQOQkcZC0622login:Penguin
2010/02/04(木) 19:39:44ID:YQOQkcZC0623login:Penguin
2010/02/04(木) 19:55:52ID:gmC/Yryo要は、運用次第で権力集中可能
例えば、マスターリポジトリの更新権限を限定するとか(つ〜か普通そうするんじゃ…)
0624login:Penguin
2010/02/04(木) 20:47:50ID:JYXesGU0オフラインでのコミットとか無理じゃね?
ローカルにリポジトリあれば別だけど自分以外ができないからあれだし
0625login:Penguin
2010/02/04(木) 21:36:49ID:G2p82aGi集中型だとお説教タイムになってしまう悪寒
0626login:Penguin
2010/02/05(金) 00:04:47ID:+YPRuxoa巻き戻せばいいだけでは。
0627login:Penguin
2010/02/05(金) 01:55:01ID:CLmEj5oN普通巻き戻しは特権がいるんじゃない。 で、特権のある人に
お説教されるとw
0628login:Penguin
2010/02/06(土) 00:46:55ID:44qJRz290629login:Penguin
2010/02/09(火) 20:22:37ID:RAlUQWhiターミナルが A と B の 2個あったとして、
A で git checkout one したあと
B の Emacs でたくさん git 対象ファイルを開いて、そのまま、
A で git checkout two するとします
Emacs で開いてるバッファ内容ってやっぱり one のままだよね?
バッファを編集して保存したら one のファイル内容が two のファイルに上書きされて「危険」だよね?
A でブランチを切り替えるたびに Emacs のバッファは全部閉じて再度開きなおさないといけないよね理屈上
0630login:Penguin
2010/02/09(火) 20:36:57ID:b7GskCpL警告もなしにそのまま上書きしちゃうのか?
0631login:Penguin
2010/02/09(火) 20:39:16ID:acViODVs0632login:Penguin
2010/02/09(火) 20:39:37ID:nKVKxkV80633login:Penguin
2010/02/09(火) 20:47:12ID:9V49chdu0634login:Penguin
2010/02/10(水) 09:43:04ID:QkCzSUH30635login:Penguin
2010/02/10(水) 10:00:40ID:0TBtUf8g危険ていうか、それはgitじゃなくても他の端末から同じファイルを編集したら同じことになるでしょ。
俺はvimだけど、ブランチ切り替えもそうだけど、git stash -> git svn dcommit -> git stash pop
ってやった後に保存しようして、警告が出るな。
このパターンだと十中八九ファイルの内容は変わってないんだけど、念のため確認するようにしてる。
0636login:Penguin
2010/02/10(水) 15:21:40ID:M9UhD/wSようはEmacsがブランチ変更を検知しないことが問題なんだよね
上書き警告だって本質的な対策じゃない
ブランチが変更されたんだから、編集したいのはそのブランチのファイルのはず
0637login:Penguin
2010/02/10(水) 15:26:10ID:3rYFILyb0638login:Penguin
2010/02/10(水) 15:31:20ID:M9UhD/wSそれがめんどくへえという話なのでは…
編集中のバッファでなければこっそり開きなおしてくれてるくらいのサービス精神がないと
不況下の日本ではEmacsは生き残れないぞたぶん
0639login:Penguin
2010/02/10(水) 15:33:25ID:uKVeMcInそうしたいならそうすればいいじゃん
0640login:Penguin
2010/02/10(水) 15:43:03ID:9JULZJQUgit はメンテしてる Junio Hamano 氏がとんでもないナンパ野郎だと知って以来、
極力避けるようにしてる。濱野氏がメンテから降りたらもっと使ってもいいかな。
0641login:Penguin
2010/02/10(水) 16:33:53ID:wST9AMIH0642login:Penguin
2010/02/11(木) 11:44:58ID:yw+dRYs8どのへんがナンパ野郎なのか教えて
0643login:Penguin
2010/02/11(木) 12:45:14ID:XV6xszzu濱野氏は、美人研究者のブログで、その人が git 好きなのをネタにして、
「今度 git の講演に日本に行くから、その時に二人でデートしようぜ」
と本気でナンパしていたと聞いている。
0644login:Penguin
2010/02/11(木) 15:02:11ID:nZMD/n4Yことはないと思うけど、それ以前に共通の趣味をネタに口説くこと
がどうまずいのかも不明。
0645login:Penguin
2010/02/11(木) 15:10:50ID:yJW9hFuf0646login:Penguin
2010/02/11(木) 15:55:14ID:WaojUPKf糞ワロタwww
ブログでかよ?
他に読んでる奴等もいるだろうし、
さすがにそれはねーわなw
0647login:Penguin
2010/02/11(木) 17:30:48ID:aEGTGT/7メンテナ氏の女性へのアプローチ法とは関係がない
0648login:Penguin
2010/02/11(木) 19:24:12ID:oAJQYaS+0649login:Penguin
2010/02/11(木) 20:12:33ID:jeJxZddW0650login:Penguin
2010/02/11(木) 22:27:09ID:71QNNVeuauro-revert-bufferじゃだめなのか?
0651login:Penguin
2010/02/12(金) 01:58:47ID:hFHmJq9f前回デプロイ時のソースとの差分だけ抽出して、そのファイルだけ本番にデプロイできるようにしたいと考えています。
今レポジトリにコミットしたリビジョンと、前回デプロイ前のコミット時のリビジョンの差分を
抽出することができればと思うのですが、それ用のコマンドってgitにあるでしょうか??
教えていただけると幸いです。
0652651
2010/02/12(金) 02:00:25ID:hFHmJq9f>>今レポジトリにコミットしたリビジョンと、
>>前回デプロイ前のコミット時のリビジョンの差分を
>>抽出することができればと思うのですが、
更新のあったファイルの「ファイル名」だけ、gitのコマンドで抽出できないか、という意味です。
0653login:Penguin
2010/02/12(金) 08:54:33ID:hx+CbuVOどーやってデプロイしてるのか教えれ。
0654login:Penguin
2010/02/12(金) 11:50:19ID:StLEjzjsgit diff --name-onlyとか、どう?
0655login:Penguin
2010/02/12(金) 14:33:42ID:MaWIE5lB普通にgit pullしたら早いと思うんだけどな。
rsyncするよりも手軽だし。
0656651
2010/02/12(金) 15:29:51ID:hFHmJq9f>>653
ftpかsftpでデプロイしようと思っています。
本番環境はさくらインターネットの供用サーバです。
>>654
やってみました。
これって、コミットする前の、さらにステージする前の差分ファイルを抽出するんですね。
git diff --cached --name-only って試してみたらステージ後の差分ファイル一覧も出力出来ました。
やろうとしていることは大体こんな感じなのですが、
2つ前のコミットと1つ前のコミットの間で更新されたファイル一覧の出力ってのはできないでしょうか??
>>655
なるほど、本番環境に入ってpullするんですね。
仕事では本番サーバも自分で用意してgit環境も構築してたのですが、これってやったことありませんでした。(普通にsftpとかrsyncで・・)
ただ今回の場合、デプロイ先がさくらインターネットの共有サーバなので、git環境を構築出来ないと思うんですよね。
なので普通にftpとかsftpでアップしようと思っています。
ちなみに、本番環境でgit pull する方法で、本番ウェブサーバが複数ある場合は、
それぞれにログインしてウェブサーバ毎にgit pullする感じですか?
0657login:Penguin
2010/02/12(金) 15:54:21ID:MaWIE5lB>ちなみに、本番環境で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
俺もさくらのやつあるんだよね。今度やってみようかな。
0658651
2010/02/12(金) 21:58:43ID:hFHmJq9fレスどもです。
そーか、スタンダードプランなら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://プロトコルにするとポートが開いてないみたいでダメです。思案中・・
0659login:Penguin
2010/02/12(金) 22:57:55ID:meESnmZa単に向こうの~/.sshやauthorized_keysのパーミションの
問題とかではなく?
0660651
2010/02/13(土) 00:05:44ID:IZfm7XrQいま一応確認してみましたが、~/.ssh のパーミッションは755で、authorized_keysはありませんでした。
普通にsshでログインしようとしたら鍵認証じゃなくてパスワード認証になるので
authorized_keysはないのは問題ないと思うんですが
gitでssh接続しようとするとなぜか鍵認証にしようとします・・なぜだー。
0661login:Penguin
2010/02/13(土) 02:02:29ID:52GS5xAq0662login:Penguin
2010/02/13(土) 09:09:31ID:mH7bnksn> 2つ前のコミットと1つ前のコミットの間で更新されたファイル一覧の出力ってのはできないでしょうか??
git diff --name-only HEAD^^ HEAD^
それぞれのcommitのSHA-1値を与えてもOK。詳細は git diff --help してみるのがよいかと。
0663login:Penguin
2010/02/13(土) 11:21:11ID:tHnX+oRfttp://article.gmane.org/gmane.linux.kernel/949579
0664login:Penguin
2010/02/13(土) 11:53:52ID:06CKMljI0665login:Penguin
2010/02/13(土) 16:21:28ID:3p2VcGOYmjd??
0666login:Penguin
2010/02/15(月) 11:27:21ID:v96hRl2preiserfsを使っている俺には死角はなかった。
0667login:Penguin
2010/02/15(月) 22:23:02ID:Ap57uWpzお、ちゃんと日本語に戻ったな。
ちょっと前まで何語かよくわからんのにすり変わっていて笑ったんだけど。
0668login:Penguin
2010/02/18(木) 22:09:12ID:yUl4nZSSrepo.or.czのミラーって更新遅いんだな...
0669login:Penguin
2010/02/23(火) 21:07:12ID:hI3BlWsmに慣れてきた感じ。
git add も当たり前だがわかっててやらないと(?_?)な
状態にすぐなる。git add -u とか
git commit -v -m "hoge" huga.txt
とか、けつまずいた。git reset HEAD^ に何度も助けられたぜ。
0670login:Penguin
2010/02/23(火) 23:41:35ID:ZVOkCMZj少し前まではgit pushした後、
別の日にgit commit --amendから初めて
git pushして、パニクってたものです・・・
0671login:Penguin
2010/02/24(水) 16:05:44ID:wK5Zb8Pm複数プロジェクトを1レポジトリでまとめたいんだけど
どうすりゃいいの?
0672login:Penguin
2010/03/02(火) 23:16:21ID:jWjxjdrz0673login:Penguin
2010/03/05(金) 07:39:15ID:nZaP2lzx0674login:Penguin
2010/03/05(金) 08:23:57ID:T3bjYh1eblameとか見ればいいんだし使わないよ
0675login:Penguin
2010/03/05(金) 16:26:48ID:HZ7fJgn/1.3.2対応の日本語化パッチが使えなくて困ってます。。
是非1.3.2にヴァージョンダウンさせたいんですが本家のぞいても前ヴァージョンが無いんですよね・・・
どこかに1.3.2転がってませんかね?
0676login:Penguin
2010/03/05(金) 16:38:07ID:Cxd0LGFJ開発元サイトにあるぢゃん
ttp://code.google.com/p/tortoisegit/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount
0677login:Penguin
2010/03/05(金) 18:22:52ID:vhUyLNw10678login:Penguin
2010/03/05(金) 23:40:59ID:nZaP2lzxattributesファイルに * ident って書けばできるんですけど、
日付とかではなく、コミット名(ハッシュ値)になるみたいだし、
checkoutした時しか置換されないようです。
今までSubversionとかで$Id$使ってたソースをGitに移した場合、
全ファイルのこの部分は、この先どうしていけばいいんだろう?と思いました。
0679login:Penguin
2010/03/06(土) 00:08:17ID:OxENSWUeコミットスクリプトが必要なのが無駄。気にしないようにするか、
日付やリビジョンを含まない形に全置換しとくかすればいいと思う。
0680login:Penguin
2010/03/06(土) 00:09:03ID:OxENSWUe■ このスレッドは過去ログ倉庫に格納されています