トップページ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/
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
てめーが、やれ
0702デフォルトの名無しさん2014/06/01(日) 14:03:13.82ID:dFCTVAji
>>694
つまり、どこにつながる鍵なのかわかれば悪用されるって
君はいいたいんだよね?
0703デフォルトの名無しさん2014/06/01(日) 14:18:12.44ID:q7lY0P5T
>>702
裏 とか 対偶 とか知らんの?
0704デフォルトの名無しさん2014/06/01(日) 14:18:29.63ID:rJY7yXwk
yes
0705デフォルトの名無しさん2014/06/01(日) 14:26:54.79ID:X2VZJkGd
githubに登録してある公開鍵はすべて誰でも簡単に取得できるから、
秘密鍵が盗まれると簡単にイタズラ可能だよ
0706デフォルトの名無しさん2014/06/01(日) 14:33:26.05ID:dFCTVAji
>>703
ん?なに?w

もしかして「とは限らない」って言ってるの?w
俺は悪用される可能性があるって話をしてるんだけど。
0707デフォルトの名無しさん2014/06/01(日) 14:37:41.79ID:rJY7yXwk
>>705
どうやって取得するの?
0708デフォルトの名無しさん2014/06/01(日) 14:38:31.41ID:dFCTVAji
1. パスワードが盗まれたってそれがどこのパスワードかわからなければ悪用されないじゃん
2. つまりどこのパスワードかわかれば悪用されるってことだよね(俺が言ったこと)
3. 裏ガー、対偶ガー

こう言われた気分w


どこのパスワードかわかっても悪用されるとは限らない(キリッ)

こう言ってるように俺は感じたw
0709デフォルトの名無しさん2014/06/01(日) 14:40:36.77ID:k00SlaTm
具体的に何割とか計算できるもの以外の可能性は
ただごねてるだけと変わらない
0710デフォルトの名無しさん2014/06/01(日) 14:40:53.33ID:X2VZJkGd
>>707
https://github.com/アカウント名.keys
0711デフォルトの名無しさん2014/06/01(日) 14:42:14.70ID:dFCTVAji
本当に悪用されないと思ってるなら
ここで秘密鍵を公開すればいいんだよな。
0712デフォルトの名無しさん2014/06/01(日) 14:54:25.82ID:rJY7yXwk
じゃあさ
8gjk39joi4njodgf9
ってパスワードがあったとしたらこれで悪用してみろよ!
0713デフォルトの名無しさん2014/06/01(日) 14:54:47.95ID:dFCTVAji
>>712
どうせそれ偽物だろw

偽物を貼った時点で自覚してるじゃん
ここに秘密鍵を書くのは怖いことだってw

だいたい秘密鍵がバレた時は、
どこに接続しているかの情報もわかることが
大半なのでそこまで書くべきだよ。

え?どこの秘密鍵かは答えられない?
あぁ、それは、どこの秘密鍵かわかれば悪用されるって
自覚しているからだね(最初に俺が言ったこと)
0714デフォルトの名無しさん2014/06/01(日) 14:55:35.81ID:dFCTVAji
(ヒント)わずか22秒で書けると思う?w
0715デフォルトの名無しさん2014/06/01(日) 14:56:09.78ID:X2VZJkGd
>>712
秘密鍵が何なのか理解できてない?
0716デフォルトの名無しさん2014/06/01(日) 14:56:31.51ID:rJY7yXwk
偽物ってなんのだよ
このパスワードがどこのサイトのかわからないと使い道ないぞ
あとidもわからないとまったく使えないぞ
これはおれんちのlocalhostのパスワードだから
0717デフォルトの名無しさん2014/06/01(日) 14:57:25.03ID:rJY7yXwk
なんでどこに接続しているかわかるんだよ
0718デフォルトの名無しさん2014/06/01(日) 14:57:58.60ID:q7lY0P5T
>>706
> 俺は悪用される可能性があるって話をしてるんだけど。

可能性とか言いながら

> つまり、どこにつながる鍵なのかわかれば悪用される

とか、言い切る奴って (w
0719デフォルトの名無しさん2014/06/01(日) 15:02:51.61ID:e/SJ8pUJ
悪用される可能性があるときは、必ず悪用される。
というのが防犯の鉄則だよね
0720デフォルトの名無しさん2014/06/01(日) 15:03:48.27ID:G7XNVB3u
スレチなので移動をおながいします
0721デフォルトの名無しさん2014/06/01(日) 15:04:54.94ID:X2VZJkGd
パスワードと公開鍵認証の秘密鍵との違いを理解できてないのか
0722デフォルトの名無しさん2014/06/01(日) 20:00:44.12ID:Anql4k9d
>>692
ペアの公開鍵を捨てる以外になにがある?
0723デフォルトの名無しさん2014/06/01(日) 20:15:54.15ID:n3zMz1VV
トピックブランチ名をチケット番号と紐付けて運用してるとして、

1. ブランチ ticket1 を切る
2. ticket1 にたくさんコミットして、開発・テスト完了
3. ticket1 を develop にマージして push
4. ここで、ticket1 に実装漏れとかバグが発覚

この場合、どんなブランチの使い方が妥当なの?
ticket1 っていう名前を再利用して、そのままブランチ切って開発・マージする方法とか
いったんマージしたのを revert して、ticket1 のトピックブランチを正しく補完してからマージしなおすとか
別の ticket2 を作って、ticket1 と ticket2 は git の外での関連付けに任せる方法とか
0724デフォルトの名無しさん2014/06/01(日) 20:38:23.33ID:MYnj2kml
> いったんマージしたのを revert して、ticket1 のトピックブランチを正しく補完してからマージしなおすとか
漏れてまいそうで(アカン)
0725デフォルトの名無しさん2014/06/01(日) 20:49:21.18ID:iPeFjK0r
俺なら別のチケット切る
0726デフォルトの名無しさん2014/06/01(日) 22:13:35.46ID:7u+U5fAC
チケット番号とブランチ名を一緒にしておきたいのはBTSの運用の都合だと思われるので、
BTSを重要視し、ブランチ名を一緒にしておく事が大事だと思うならするならdevelopの最新からもう一度ticket1というブランチを切ってそこから修正すればいいと思うし、
Gitの履歴の方が重要だと思うならticket1_fixとかで新しくブランチ切ればいいんじゃないかな。
0727デフォルトの名無しさん2014/06/01(日) 23:17:53.65ID:wXEX5FU/
言語ごとにリポジトリを作成した時に自動で.gitignoreを生成するライブラリとかってありますか?
0728デフォルトの名無しさん2014/06/02(月) 00:42:17.96ID:CbbBfIj2
>>727
http://www.gitignore.io
おすすめ
0729デフォルトの名無しさん2014/06/02(月) 01:05:25.92ID:/lZkAqJY
ステマ乙
0730デフォルトの名無しさん2014/06/02(月) 01:09:16.33ID:gFpQKwCr
>>728
リポジトリを作る時に言語名を入力してgit init と.gitignoreをつくってほしいんですよ
有りそうな気がするんですけどそのサイト見て自分でコピペするしかないんですかね?
0731デフォルトの名無しさん2014/06/02(月) 01:25:08.89ID:6oKdltFr
.gitignoreに全部入れりゃいいじゃん?

たとえばPHPの開発だとして、Ruby標準の
.gitignore(それが何なのかよくわからんが?)を
追加して何が問題なんだ?

だいたい、一つのリポジトリで複数の言語使うことなんて
よくある話で、言語名で.gitignoreを作るという発想がよくわからん。

どうせエディタのテンポラリファイルとかバックアップファイルとかは
言語名指定しても含まれないんだろ?それじゃ片手落ちじゃね?

そもそも、言語標準の.gitignoreって意味分かんないんだよな。
どっちかと言ったら、.gitignoreに入れるものは言語ではなくて
使うツールによって決まるものだろう。
0732デフォルトの名無しさん2014/06/02(月) 01:28:04.27ID:gFpQKwCr
そんな事言ったら世の中のフレームワークやライブラリに喧嘩売ることになりますよっと
0733デフォルトの名無しさん2014/06/02(月) 01:30:45.30ID:l4SS/Bsy
そういうツールが無いのなら自分で作ってしまえばいいの
そしてそのツールを売りに出せばバカ売れ間違いなしなの
0734デフォルトの名無しさん2014/06/02(月) 01:54:49.93ID:6oKdltFr
>>732
意味がわからん。

今話しているのは.gitignoreの話で
フレームワークやライブリの話は全く関係ないだろ。
0735デフォルトの名無しさん2014/06/02(月) 01:59:28.89ID:l4SS/Bsy
そういえばGitHubにもgitignoreのサンプルがあるね
https://github.com/github/gitignore
■ このスレッドは過去ログ倉庫に格納されています