トップページtech
1001コメント321KB

Git 9

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2014/04/12(土) 13:22:20.98ID:s4x1CSLN
ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。

Git - Fast Version Control System
http://git-scm.com/

◆関連サイト
Pro Git - Table of Contents
http://progit.org/book/ja/
Git入門
http://www8.atwiki.jp/git_jp/

◆前スレ
Git 8
http://toro.2ch.net/test/read.cgi/tech/1389701817/
0602デフォルトの名無しさん2014/05/22(木) 07:30:00.04ID:O49mbUbG
>>601
UNIXの世界ではそういうのはrsyncを使うからね
タイムスタンプじゃなくてMD4を用いて更新チェックしたり
更新の転送もファイル全体じゃなくて変更部分だけを転送して通信量を最小化する
0603デフォルトの名無しさん2014/05/22(木) 08:00:54.05ID:JO7c/VLA
なるほどね
簡易なftp通信ツールじゃなく同期ツールを使うのか
0604デフォルトの名無しさん2014/05/22(木) 08:43:15.77ID:Md3S+Ay9
gitとgithubは(media)wikiとwikipediaのような関係かw
0605デフォルトの名無しさん2014/05/22(木) 09:52:08.98ID:8poss9h8
ふむ
0606デフォルトの名無しさん2014/05/22(木) 17:52:05.88ID:bnXb1Wgc
>>604
それはちがうね
wikipediaはmediawikiそのものだから
0607デフォルトの名無しさん2014/05/22(木) 18:25:23.64ID:uwnOnEuc
そういうこと言ってんじゃない
0608デフォルトの名無しさん2014/05/22(木) 18:48:58.03ID:2qkQcCiJ
>>601
>VSCの仕様はコンパイルする言語向けって感じで
>更新したスクリプトファイル等だけを借りてるサーバーにアップロードしたいという需要には応えられない感じだな
いや全然違うと思う

VCSが言語を選ぶとかじゃなくて、VCSに向かない作業をやってるのがダメなんでは?
そういうのは専用のデプロイ・デリバリツールを選ぶべき。
上の方で話題に出てた「ビルド時にリビジョン埋め込みたい」みたいな要望も
VCSじゃなくてビルドツール等が行うべき領域。

バージョン管理に向かない言語とかは特にないと思うな
ソースコードそのものがバイナリとかいうのがあるなら分からんけど・・・


あと細かい指摘ですまんがVCSのタイポだよな?
しばらくググって悩んじゃったじゃねーか
0609デフォルトの名無しさん2014/05/22(木) 18:54:11.54ID:TFAWZMIx
>>608
>ソースコードそのものがバイナリとかいうのがあるなら分からんけど・・・

Piet言語のことか
0610デフォルトの名無しさん2014/05/22(木) 19:22:23.11ID:f81WwqvH
bitbucketが作ったstash3.0ってなに?
0611デフォルトの名無しさん2014/05/23(金) 18:37:12.92ID:pr4rIIld
developで開発中、急きょ必要がありmaster(stable)からfixブランチを切り修正masterにマージ
developでは弄ってるがfixでは弄って無いファイルの更新日時まで変更される(これはdevelopから切り替えた時点でおきるが)
ファイル更新日時だけでアップロードしようと思うと無理がある
0612デフォルトの名無しさん2014/05/23(金) 20:49:08.96ID:3CistgHw
とうとうgit 2.0が
0613デフォルトの名無しさん2014/05/24(土) 09:01:11.84ID:9qFFfmjf
gitchainを知らなくていいのって小学生までだよね〜
0614デフォルトの名無しさん2014/05/24(土) 11:32:04.32ID:4TNjChUa
>>601
コミットしたものをサーバーにアップロードしたいのか?
コミットする前にテストしたりするためにサーバーにアップロードしたいのか?どっちかよくわからないけど

前者なら作業用のリポジトリをクローンしたものをローカルに用意しといてpullしてxcopyすればいいし
後者ならムダだと思うかもしれないけど今の挙動のままが正解だと思う
checkoutしてタイムスタンプが更新されたファイルは転送されるべきなんだよ
0615デフォルトの名無しさん2014/05/26(月) 16:40:41.53ID:E/fV2vLO
git checkout -b topic_foo HEAD
git push origin topic_foo
というのをよくやるんですが、git push origin topic_foo をもっと簡潔にできますか?
具体的には topic_foo を省略したい。
初審者質問でごめんなさい!
0616デフォルトの名無しさん2014/05/27(火) 03:17:32.65ID:Ha9yhWBf
バッチにしろ
0617デフォルトの名無しさん2014/05/27(火) 07:23:22.69ID:CjDrbeGH
>>615
alias p="git push origin topic_foo"
0618デフォルトの名無しさん2014/05/27(火) 08:25:02.04ID:aQ+mTKAT
>>615
git config push.default current
自己責任で使え
0619デフォルトの名無しさん2014/05/27(火) 09:36:32.14ID:M7xuRdW4
>>616
必ずしも連続して実行するわけではないので、バッチでない方法がいいなあ。
git checkout はこれでいいと思うので、git push origin topic_foo が簡潔になるよい方法があれば教えてください。
(topic_fooが、実際にはけっこう長い名前なので、入力するのがめんどくさい)
0620デフォルトの名無しさん2014/05/27(火) 11:40:51.59ID:empqvUFR
>>615
> git checkout -b topic_foo HEAD
> git push origin topic_foo
> というのをよくやるんですが、git push origin topic_foo をもっと簡潔にできますか?
> 具体的には topic_foo を省略したい。

その前にHEADを省略しろよw

git checkout -b topic_foo
git push origin topic_foo
0621デフォルトの名無しさん2014/05/27(火) 11:41:37.17ID:empqvUFR
> (topic_fooが、実際にはけっこう長い名前なので、入力するのがめんどくさい)

TABで補完すれば良い
0622デフォルトの名無しさん2014/05/27(火) 12:03:49.03ID:aQ+mTKAT
>>618を設定しとけば、topic_fooを省略してgit push originでいける
remoteがoriginならこれも省略できるから、git pushでいい
0623デフォルトの名無しさん2014/05/27(火) 16:10:42.92ID:Ha9yhWBf
バッチすら作れないのか(笑)
619がしょぼいのか619が使ってるosがしょぼいのか(笑)
うちのvistaならファイルすら不要でランチャーにいくらでも作れるんだが(笑)
0624デフォルトの名無しさん2014/05/27(火) 18:36:54.81ID:CjDrbeGH
vistaでなければ、バッチなんてめんどくさいもの作る必要すらない。
0625デフォルトの名無しさん2014/05/27(火) 19:21:12.08ID:Ha9yhWBf
いやいや面倒でもなければターミナルに切り替える必要もなくただボタン一つ押すだけだから(笑)
0626デフォルトの名無しさん2014/05/27(火) 21:50:46.03ID:x1QZTJwI
必ずしも連続して実行する訳ではない、と言われてるのに脳内で作れないって決めつけちゃうのヤバいな
これからの日本社会に必要な人材だ
0627デフォルトの名無しさん2014/05/28(水) 02:29:31.61ID:JqBWJ9I7
>>625
ボタン押すとかめんどくさすぎる
0628デフォルトの名無しさん2014/05/28(水) 06:37:21.38ID:3jHSpg0i
バッチってもしかしてブランチ毎に作るんか?w
0629デフォルトの名無しさん2014/05/28(水) 09:27:53.43ID:CrCNX+z2
主となるブランチが1個なら別にいいだろ
0630デフォルトの名無しさん2014/05/28(水) 09:47:28.15ID:3jHSpg0i
元の質問はトピックブランチの話をしてるんだから
主となるブランチが1個とかじゃないだろw
0631デフォルトの名無しさん2014/05/28(水) 10:02:33.99ID:TQzWSZnP
トピックブランチっていくつあるの?
0632デフォルトの名無しさん2014/05/28(水) 10:44:05.28ID:+VRaMc3N
そこからかよw

無知が提示する案ほど
迷惑なものはないよなw
0633デフォルトの名無しさん2014/05/28(水) 12:13:27.82ID:zJ+uQAQa
でも結局>>618でFAだろ?
0634デフォルトの名無しさん2014/05/28(水) 13:56:51.68ID:3jHSpg0i
作ったトピックブランチを確実にpushする前提なら
(トピックブランチ作ったけどやっぱpushするのやめたーってのが無い前提なら)
push.default=currentにしなくてもpush.default=simpleで(2.0からのデフォルト)
ブランチ作ってすぐgit push -u origin topic_fooをやっとけばいい
それ以降はgit pushだけで済む
0635デフォルトの名無しさん2014/05/28(水) 15:03:48.65ID:ioEFfNM4
コミットの回数とタグの数をそれぞれ取得する方法おしえて
0636デフォルトの名無しさん2014/05/28(水) 15:29:40.52ID:3jHSpg0i
コミットの回数
git rev-list --all --no-merges | wc -l

タグの数
git tag | wc -l
0637デフォルトの名無しさん2014/05/29(木) 00:23:03.07ID:RABmUlyV
git add .
git commit -m "前と同じ"
git rebase -i
git push origin <branch>
git rebase master
git push -f origin <branch>



今この状態で、流石にメッセージが前と同じではまずいので直前のコミットとsquashしたいのですが
git rebaseしたらこんなこと言われてしまいます

There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details

git rebase <branch>

どうすればいいのでしょうか
0638デフォルトの名無しさん2014/05/29(木) 00:35:18.93ID:Kg1bZGF5
>公開リポジトリにプッシュしたコミットをリベースしてはいけない
>
>この指針に従っている限り、すべてはうまく進みます。もしこれを守らなければ、あなたは嫌われ者となり、友人や家族からも軽蔑されることになるでしょう。
0639デフォルトの名無しさん2014/05/29(木) 00:40:14.69ID:RABmUlyV
そうなったらまずはgit pushを取り消せばいいのでしょうか?
0640デフォルトの名無しさん2014/05/29(木) 00:59:18.64ID:erdIUEhx
>>636
gitってこう引数がおおくてわけわかめ
コマンドを増やしてgit commit-countみたいにわけてほしい
0641デフォルトの名無しさん2014/05/29(木) 01:05:45.72ID:bLCAImAr
wcは引数じゃないだろ
0642デフォルトの名無しさん2014/05/29(木) 01:25:09.99ID:/G0dYxTO
unix使いの大好きなシェル芸
0643デフォルトの名無しさん2014/05/29(木) 02:00:42.20ID:yg8neWnh
>>640
つ alias
0644デフォルトの名無しさん2014/05/29(木) 07:45:11.40ID:QPTL35Py
>>641
シェルの引数じゃん

とか屁理屈を言ってみる
0645デフォルトの名無しさん2014/05/29(木) 08:39:11.17ID:A6IQETei
シェルの引数ってなんだ?wcはただのコマンドだぞ
0646デフォルトの名無しさん2014/05/29(木) 08:42:01.31ID:dDbteSWz
>>645
シェルへの引数と言いたかったんじゃないの?
0647デフォルトの名無しさん2014/05/29(木) 08:45:00.26ID:A6IQETei
シェルへ引数なんて渡してないし
0648デフォルトの名無しさん2014/05/29(木) 09:10:15.42ID:A6IQETei
>>637
git rebaseの引数省略しすぎ
0649デフォルトの名無しさん2014/05/29(木) 10:02:11.97ID:bNL2V7UE
wcはトイレだわな
0650デフォルトの名無しさん2014/05/29(木) 11:00:25.25ID:QPTL35Py
>>647
はいはい



人と会話できるように頑張ってね (ハート
0651デフォルトの名無しさん2014/05/29(木) 11:05:28.42ID:efebR6WC
Git 2.0.0 リリース
https://github.com/git/git/releases/tag/v2.0.0
0652デフォルトの名無しさん2014/05/29(木) 11:14:25.76ID:1+PX4fUT
msysgitのv2.0.0はまだまだ先かな・・・
0653デフォルトの名無しさん2014/05/29(木) 12:18:16.52ID:JkDx0bBd
>>636で多いって言ってる人って、
リダイレクトやパイプって使ったことこないの?
Linuxを使う上での基礎。初心者レベルのことなんだが。

自己紹介よろしく。Linuxつかえませーんという自己紹介をしてくれw
0654デフォルトの名無しさん2014/05/29(木) 12:31:49.12ID:kyPc1SKC
それ「おまえが気持ちよくなれる」以外の何のメリットがあるんだ
0655デフォルトの名無しさん2014/05/29(木) 12:49:31.76ID:LpHrGA0w
シェル芸とかって言って煽る方もなんだかな。
commit-countとかどんどん増やしていってもきりがないし、どうしても専用コマンドを作らないといけないってもの以外は出力をパイプで処理とかでいいじゃん。
まあ>>635みたいな無能そうな奴の質問には答えないほうがいいのかもしれないな。答えても「わけわかめ」とか言われるんだからw
0656デフォルトの名無しさん2014/05/29(木) 13:45:23.70ID:1vfDNvKU
コマンドが多機能になっても、単純なコマンド組み合わせた方がわかりやすいから、ついついパイプ使っちゃうな。
0657デフォルトの名無しさん2014/05/29(木) 17:55:22.19ID:urb8vROk
githubとかでもなんでもsshを使ってgitする方法が安全って言われているじゃないですか
んでsslキーっていうんですかid_rsaっていうファイルありますよね
こういうのをdropboxに置いて管理するのは間違ってますか?
0658デフォルトの名無しさん2014/05/29(木) 18:38:10.80ID:A6IQETei
>>657
sshのid_rsaファイルのことをsslキーなんて言わない
秘密鍵のid_rsaファイルは普通パスフレーズをつけて暗号化してあるけど、それでも他人から見えるとこに置くべきではない
dropboxは厳密に他人から見えない場所とは言い切れない
その鍵で何を管理してるかで鍵の取り扱い方針は決めるべき
0659デフォルトの名無しさん2014/05/29(木) 19:01:58.24ID:dDbteSWz
>>658
暗号化して置いておけばよくね?
0660デフォルトの名無しさん2014/05/29(木) 19:08:28.29ID:urb8vROk
まじっすか
なんかdropboxで共有したらどの環境からでも接続できるよってブログを見かけたんですけどやっぱりセキュリティ的によくないですよね
0661デフォルトの名無しさん2014/05/29(木) 19:14:49.64ID:A6IQETei
>>659
どの程度の強度の暗号化をするかによるね
とりあえず10文字未満のパスフレーズ程度じゃあまり役に立たない
0662デフォルトの名無しさん2014/05/29(木) 19:16:30.06ID:Jpnwpx9o
安全のために鍵かけるなら鍵の扱いも安全にしろよw

というかid_rsaってPC外に出すもんじゃないんじゃないの?
0663デフォルトの名無しさん2014/05/29(木) 19:17:11.95ID:Jpnwpx9o
間違えた
×というかid_rsaってPC外に出すもんじゃないの?
○というかid_rsaってPC外に出さないもんじゃないの?
0664デフォルトの名無しさん2014/05/29(木) 19:21:19.75ID:yBXBS2Lg
どうしても移動させるときは暗号化したUSBメモリ
06656602014/05/29(木) 19:41:02.34ID:H5LJYYF1
一応パスワードは70文字にしています
パスワードはkeepassに保存していて、パスワードが保存されているデータベースと鍵ファイル?の2つもdropboxで共有しようと思ってました
0666デフォルトの名無しさん2014/05/29(木) 19:48:26.76ID:A6IQETei
>>665
パスワードが保存されているデーターベースが一緒の場所に置いてあるなら、
その70文字に意味無くて、keypassのマスターパスワードの強度が問題になる
0667デフォルトの名無しさん2014/05/29(木) 19:50:15.90ID:1vfDNvKU
>>659
オンラインの認証は、警備員の見てる前で金庫の暗証番号入力するようなもの。
dropboxや情報漏洩などで盗まれた暗号化された情報は、金庫を持ち帰って機械なども使って開けようとするもの。
警備員の見てる前でそんなことしたら捕まるが、持ち帰ればやりたい放題。
0668デフォルトの名無しさん2014/05/29(木) 19:53:24.06ID:H5LJYYF1
>>666
マスターパスワードは4文字にしてます
0669デフォルトの名無しさん2014/05/29(木) 19:58:00.86ID:A6IQETei
>>668
最悪です。
0670デフォルトの名無しさん2014/05/29(木) 20:07:59.65ID:A6IQETei
>>668
最悪はちょっと言い過ぎたかもだけど
それは暗号化してない秘密鍵をdropboxに置いてるのとほぼ変わらない
つまり他人に見られる可能性のある場所に一般的なパスワードをそのまま置いてるのとほぼ同じ
0671デフォルトの名無しさん2014/05/29(木) 20:14:11.97ID:JkDx0bBd
いいえ、最悪です。
0672デフォルトの名無しさん2014/05/29(木) 21:22:37.06ID:H5LJYYF1
f
0673デフォルトの名無しさん2014/05/30(金) 01:25:20.18ID:EMzWDMfn
ファイルを作らないでgitに直接データをコミットする方法ありませんか?
rubyのgollumってgitでデータを管理しているそうでファイルを作らないでどうやってgitで管理しているのか疑問に思って質問しました
0674デフォルトの名無しさん2014/05/30(金) 01:33:04.77ID:q6NHkjTH
あるブランチ上にある2つのコミットの間で変更・追加・削除・移動されたファイル名(ファイルパス)の一覧を表示する方法ありますか?
0675デフォルトの名無しさん2014/05/30(金) 01:58:40.65ID:fAx5Tsbo
>>674
git diff a..b --name-status
0676デフォルトの名無しさん2014/05/30(金) 02:07:01.03ID:q6NHkjTH
>>675
トン
ありがと
0677デフォルトの名無しさん2014/05/30(金) 02:31:09.91ID:n9pxH6sn
>>673
patchを取り込むのってファイルなくてもできそうな気がするけど、どうだろう?
0678デフォルトの名無しさん2014/05/30(金) 08:32:01.24ID:2GmvsnCC
>>673
gitのレポジトリの構造は簡単だから、レポジトリに直接アクセスするライブラリとか各種言語向けにいろいろ作られてる
gollumはrubyで書かれてて、rubyにはgritっていうレポジトリに直接アクセス可能なライブラリがあって、gollumもgritを使ってる
ここでたまに話がでるgitlabもgritを使ってるね
0679デフォルトの名無しさん2014/05/30(金) 10:42:47.22ID:V58Lvn6/
>>678
おもしろそうなので grit を調べてみたら、grit はメンテナンスしてないので rugged を薦めてるね。
https://github.com/mojombo/grit/blob/master/README.md

grit
https://github.com/mojombo/grit

rugged
https://github.com/libgit2/rugged
0680デフォルトの名無しさん2014/05/30(金) 12:04:19.72ID:77FTxa6s
すげえそんなのあるのか
phpかpythonでそのライブラリってないっすか?
0681デフォルトの名無しさん2014/05/30(金) 12:12:12.88ID:wKr0dicp
rugged なら、その上のlibgit2下にずらっとあるけどそれでどうかな
0682デフォルトの名無しさん2014/05/30(金) 13:43:32.48ID:V58Lvn6/
>>680 >>681
libgit2 を使うなら PHP は php-git、Python は pygit2 だね。

libgit2
http://libgit2.github.com/
https://github.com/libgit2/libgit2

php-git
https://github.com/libgit2/php-git

pygit2
http://www.pygit2.org/
0683デフォルトの名無しさん2014/05/30(金) 13:53:45.96ID:C8E1zgtw
どうもありがとう!
0684デフォルトの名無しさん2014/05/30(金) 13:59:07.40ID:v6d8zvnx
どうしたしまして!
0685デフォルトの名無しさん2014/05/30(金) 14:48:31.65ID:2GmvsnCC
>>679
gritの本家は更新止まってるけど、gitlabがforkしてメンテしてる
https://github.com/gitlabhq/grit

RubyGemsからはgitlab-gritの名前でインストールできる
https://rubygems.org/gems/gitlab-grit
0686デフォルトの名無しさん2014/05/30(金) 14:53:30.58ID:V58Lvn6/
>>685
情報ありがとう
0687デフォルトの名無しさん2014/05/30(金) 22:09:59.66ID:v6d8zvnx
どうしたいしまして!
0688デフォルトの名無しさん2014/05/30(金) 23:42:52.28ID:VEn3EfW3
Python2/3のgitインターフェースはないですか?
できればbottleみたいにインストール不要なので
gitlib2のPythonバインディングはコンパイルが面倒でした
0689デフォルトの名無しさん2014/05/31(土) 09:09:25.27ID:j/TOOJQQ
Git 2.0.0 がリリースされたけど 1.9.4 もリリース
https://github.com/git/git/releases/tag/v1.9.4
0690デフォルトの名無しさん2014/05/31(土) 10:26:04.90ID:hQl0nrcC
なんでやねん
0691デフォルトの名無しさん2014/05/31(土) 12:26:02.52ID:Q8mJYa9Q
秘密鍵にパスフレーズ振ってるやつなんていねーよ……
0692デフォルトの名無しさん2014/05/31(土) 12:28:52.59ID:mt1wvbpO
ノートPCに秘密鍵入れといて
ノートPC盗難されたらどうするつもり?
0693デフォルトの名無しさん2014/05/31(土) 14:00:26.64ID:3W9FVu4M
>>692
諦めるに決まってんだろ、何言ってんだ

お前、自分の頭にしかパスワードが無ければ
頭を持ってかれるんだぞ? それに比べれば
ノーパソくらい大した損害じゃねーよ
0694デフォルトの名無しさん2014/05/31(土) 14:07:47.34ID:bRH5rrCK
秘密鍵が盗まれたってそれがどこにつながる鍵なのかわからなければ悪用されないじゃん
0695デフォルトの名無しさん2014/05/31(土) 14:08:43.81ID:ZdLIEqhK
ところがどっこい
0696デフォルトの名無しさん2014/05/31(土) 14:21:11.79ID:orufI9PA
>>692
HDDやSSDは暗号化して使うのが基本
そうじゃなければ秘密鍵ファイルを暗号化汁
0697デフォルトの名無しさん2014/05/31(土) 14:43:33.95ID:bRH5rrCK
暗号化されたってログインされたら意味無いじゃん
0698デフォルトの名無しさん2014/05/31(土) 14:50:07.85ID:eTy5fHBW
>>696
truecrypt 終わったねえ
0699デフォルトの名無しさん2014/05/31(土) 16:59:58.04ID:2ArsU7CW
2.0のリリースノートを機械翻訳したら、何かいろいろ速くしたって書いてあるようだけど
実際どうなんだ
0700デフォルトの名無しさん2014/06/01(日) 11:36:35.94ID:zOVN/jYA
>>699
計れよ
0701デフォルトの名無しさん2014/06/01(日) 13:14:54.21ID:SAafBPBX
てめーが、やれ
■ このスレッドは過去ログ倉庫に格納されています