トップページtech
984コメント273KB

Git 6

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/05/21(火) 11:26:36.94
ソースコード管理を行う分散型バージョン管理システム、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 5
http://toro.2ch.net/test/read.cgi/tech/1350144612/
0385デフォルトの名無しさん2013/09/13(金) 09:29:58.54
testブランチでコード書いた後は
git checkout master
git merge test
git add -A
git commit -m "ちょめちょめ"
git push

この流れで合ってますか?
0386デフォルトの名無しさん2013/09/13(金) 09:55:25.36
>>384
Gitでは「まだ完成してない」とか言ってpushしない奴ということになるわけですね
0387デフォルトの名無しさん2013/09/13(金) 09:57:59.86
まああれだ。
自由ってのは便利だが、一定のルールで遵守させなければならないと。
0388デフォルトの名無しさん2013/09/13(金) 10:07:57.29
>>385
git add -A は何をやってるの?
0389デフォルトの名無しさん2013/09/13(金) 10:21:23.57
>>386
gitでも「まだ完成してない」と言ってコミットしないよ。きっと。
という今の流れ。

gitはそれこそstashみたいな、コミットしない自由も考慮されてるとは思うけど程度問題だな。
無闇にコミットを避けることはない
0390デフォルトの名無しさん2013/09/13(金) 10:22:55.14
>>388
あれなんですよ
git add .
ってやると、なんかたまにgit add -A使えってメッセージが出るのです
0391デフォルトの名無しさん2013/09/13(金) 10:28:03.32
>>390
git add . は何のためにするの?

>testブランチでコード書いた後
これはtestブランチで書いたコードをtestブランチへコミット済みって意味?
0392デフォルトの名無しさん2013/09/13(金) 10:28:38.23
>>367
> cvsとかsvnでもupdateしてからcommitするようにすればロックなんて機能は必要ない。

アホすぎ (w
チームにこんな奴いたら大変だろうな
0393デフォルトの名無しさん2013/09/13(金) 10:29:15.20
いえ、ちがいます
masterブランチに移ってからaddします
0394デフォルトの名無しさん2013/09/13(金) 10:33:52.76
>>393
何のためにtestブランチを作ったの?
0395デフォルトの名無しさん2013/09/13(金) 10:40:32.81
merge だけでコミットされる (衝突がなければ) からその後の add と commit は無駄じゃね
0396デフォルトの名無しさん2013/09/13(金) 11:03:05.11
ソースの頭にインクリメンタルなソースバージョンつけたいんだけど
gitってそういう思想じゃないから無理だよね・・・
どうしようかな
0397デフォルトの名無しさん2013/09/13(金) 11:14:25.46
そんな時にセマンティックバージョニングとかいいんじゃね?
0398デフォルトの名無しさん2013/09/13(金) 12:32:33.83
なんかすごい伸びてるな…

>>366
できるよ。自分だけだけど。
0399デフォルトの名無しさん2013/09/13(金) 12:50:29.91
testブランチにコミットしていって、
ファイナルちょめちょめの後でmasterへマージ
0400デフォルトの名無しさん2013/09/13(金) 13:14:13.68
gitを拡張することって言うのはできますか?
たとえば、git commit ってしたらc:\my.logに日時を記録する感じの機能をgitに組み込むなど
0401デフォルトの名無しさん2013/09/13(金) 14:11:16.05
できるよ
0402デフォルトの名無しさん2013/09/13(金) 19:15:58.04
>>400 適当なリポジトリで.git/hooksディレクトリの中身を読もう
0403デフォルトの名無しさん2013/09/13(金) 20:56:48.98
>>384
いまどきのIDEだとローカルの作業履歴位はとってくれてるんだけどね。
コミットコメントが有るわけじゃないから何をやってたか分からないけど
ローカルの作業履歴としては割りと機能する。 テキストエディタ以外は
認めないって人には分からないだろうけど。
0404デフォルトの名無しさん2013/09/13(金) 21:39:01.30
Eclipseの履歴だと最低限は役に立つけどマージしたりスナップショット取ったり明示的にやれるわけじゃないし
0405デフォルトの名無しさん2013/09/13(金) 21:52:13.00
>>400
gitのコミットログを見ればいいだけじゃん?
なんでわざわざ別に出力すんの?
0406デフォルトの名無しさん2013/09/13(金) 22:44:41.16
>>403
エディタの編集履歴が便利なことは否定しないが、複数ファイルのスナップショットに名前をつけて保存できる機能とは区別しようぜ
0407デフォルトの名無しさん2013/09/13(金) 22:55:30.79
>>363
git-svnだとマージに非常に制限がかかる。
そうなるとコンフリクトを恐れるようになって、いちいち手が止まってしまいストレスになる。
0408デフォルトの名無しさん2013/09/13(金) 22:59:55.68
msysgitでdaemon立ち上げてリモートからpullやcloneしようとしたとき、たまにエラーになることが
あるんだが、原因を調べるには何を調べればいいかな?
表示されるエラーメッセージはInvalid Argumentとかearly EOFとかだけなんで意味わからん。
0409デフォルトの名無しさん2013/09/13(金) 23:20:49.68
--verbose 付きで起動してみれば?
0410デフォルトの名無しさん2013/09/13(金) 23:21:47.67
>>407
よく知らんのだけどrebaseじゃダメなの?
0411デフォルトの名無しさん2013/09/14(土) 00:15:42.09
>>389
分散型だと中央を通さずに変更を渡すことが簡単だから、一部にだけ変更を伝えるという方法もあるね。

分散型はまだまだ色々な使い方ができそう。まあ運用を決めてもらわないと何もできない人には制限された方がいいんだろうけど。
0412デフォルトの名無しさん2013/09/14(土) 00:16:03.03
>>407
dcommit時にコンフリクトするとどうなるの?
いつもrebaseしてからdcommitしてたから、意図せずマージになってたことは
ほとんど無くて、コンフリクトしたことがない。
0413デフォルトの名無しさん2013/09/14(土) 00:40:38.03
>>412
rebaseあんまり使わないから向いてないのかも。
他のブランチでは気にせずgitらしくマージを繰り返してそれを中央リポジトリで公開して、いざsvn用のブランチに取り込もうとしてrebaseではまることが多かった。
0414デフォルトの名無しさん2013/09/14(土) 00:44:26.35
ローカルでグチャグチャやってる分に口出す気はないよ。
それを上に持ってくんな ということを言っている。
0415デフォルトの名無しさん2013/09/14(土) 00:48:55.25
それ結局GitでもSVNでも同様だろ?
0416デフォルトの名無しさん2013/09/14(土) 00:57:23.13
>>408
git config --global core.compression -1
でどうでしょう
04174082013/09/14(土) 07:24:34.77
>>409
それが、付けてもなんもわからなくて。
せめて、何に渡した何というArgumentがどうInvalidなのかくらいわかればいいんだが。

>>416
よくわからんが、エラーが出た箇所からすると関係ありそうな気がするな。
環境は会社なんで週明けに試してみるわ。ありがとう。
0418デフォルトの名無しさん2013/09/14(土) 09:18:19.06
>>405
なんか自動化したいんだろ
0419デフォルトの名無しさん2013/09/14(土) 10:29:28.80
>>412
rebase しないと dcommit できないんじゃないか。
0420デフォルトの名無しさん2013/09/14(土) 10:42:48.85
>>419
dcommit時にマージされます。ローカルからはそう見える。
svn上では、update→commitに見えると思う。
0421デフォルトの名無しさん2013/09/14(土) 14:16:33.20
>>405
複数人へのgit教育用にコミットしているかをひとつのログに集めたいから
0422デフォルトの名無しさん2013/09/14(土) 22:52:16.95
>>420
d
自分が使ってた当時、怒られた記憶があったんだが。
0423デフォルトの名無しさん2013/09/14(土) 23:55:50.48
>>422
コンフリクトした場合という話の流れを見逃してた。
コンフリクトした場合はどうなるかやったことがありません。
しなければマージされます。
0424デフォルトの名無しさん2013/09/15(日) 07:40:17.91
svn dcommit時にsvn rebaseはされる
svn rebaseはrebaseもしている
最新リビジョンの先にしかコミットできないのと
svnのコミットにハッシュ振る必要があるので
ここでコンフリクトした場合確か無名ブランチに飛ばされるはず
自分はdevブランチ上で解決するようにしてるからあまり見たことないけど
共有がgitでも共有リポジトリの歴史いじることは推奨されてない気がするから
運用は似たようなもんじゃないの
0425デフォルトの名無しさん2013/09/15(日) 09:35:25.12
ぼくはこれからバージョン0.0から始まるプログラムを作ろうと思います
1.0まで作ったとします。コミットもプッシュもたくさんやってきました
そしてバージョンアップさせていき2.0になりました
そこで質問です
やっぱりバージョンが違う場合でも同じリポジトリにコミットとプッシュするほうがいいのでしょうか?
あとバージョンごとにブランチは分けたほうがいいでしょうか?
0426デフォルトの名無しさん2013/09/15(日) 09:44:38.26
そんなめんどくさいことしない
0427デフォルトの名無しさん2013/09/16(月) 16:48:00.63
>>421
git logで誰がいつcommitしたか残ってるけど???
0428デフォルトの名無しさん2013/09/16(月) 18:34:00.17
違うんです、commitした時点で別のログに記録したいんです
0429デフォルトの名無しさん2013/09/16(月) 18:38:41.35
>>400
.git/hookでできるんじゃないの
拡張じゃなくて組み込まれてる機能だけど
0430デフォルトの名無しさん2013/09/19(木) 23:11:39.01
CドライブとDドライブがあるんですが
Cドライブでコードを書いて、Dドライブをgithubの代わりとしてここにpushしたいのですが
こういう場合って、Dドライブのほうでgit init --bareってやってから
Cドライブ側でgit clone 〜ってやるべきでしょうか?
0431デフォルトの名無しさん2013/09/19(木) 23:50:18.12
HerokuとGithubしか使ったこと無く、Git単体で運用はしたことないんですが、
既に存在するプロジェクトのフォルダに対して

git init

git add .
git commit -m "comment"


を実行した場合、.gitフォルダにこれまでのバージョンが記録されていって、
いざとなれば、巻き戻せたりするんですよね?
0432デフォルトの名無しさん2013/09/20(金) 00:17:54.09
>>431
目の前の箱で試してみろ
0433デフォルトの名無しさん2013/09/20(金) 00:20:17.14
>>432
試してますが自身がないんです
0434デフォルトの名無しさん2013/09/20(金) 00:44:10.93
Githubって使った事ないけど、
ローカルリポジトリ無くても
使えるものなの?
0435デフォルトの名無しさん2013/09/20(金) 00:58:24.60
ローカルリポジトリは必要かもしれません。

ただしいつもgit cloneしてから、add, commit, pushしています。
0436デフォルトの名無しさん2013/09/20(金) 01:10:41.71
ふーん、くろーうしてるんだな。

あっそ。
0437デフォルトの名無しさん2013/09/20(金) 22:25:18.51
初心者がhelloworldやるのはgithubってやつでいいの?
0438デフォルトの名無しさん2013/09/20(金) 22:27:49.10
try gitでもやってれば
0439デフォルトの名無しさん2013/09/20(金) 22:31:10.14
全世界にhelloworldを公開したければ。
gitとgithubの違い分かってる? チーズとチーズケーキくらい違うよ。
0440デフォルトの名無しさん2013/09/20(金) 22:34:11.91
githubでhelloworldやっちゃった
テヘ
0441デフォルトの名無しさん2013/09/20(金) 22:35:10.10
「GitHub HelloWorld」でググるとみんなやってます
0442デフォルトの名無しさん2013/09/20(金) 22:42:24.20
Hello Worldからforkする人っているの
0443デフォルトの名無しさん2013/09/20(金) 23:03:11.09
初心者とかがレベルごとにステップアップできる
gitがあればいいのによくわらないけど
0444デフォルトの名無しさん2013/09/20(金) 23:15:24.16
>>439
ケーキとケーキ屋くらい違うと思うな。
試しに作った初めてのケーキをケーキ屋に並べるとか、恥ずかしすぎる。
0445デフォルトの名無しさん2013/09/20(金) 23:22:06.35
ぼくは恋人の始めてのケーキも味があっていいと思うんだ(直訳)
0446デフォルトの名無しさん2013/09/20(金) 23:30:59.55
445さんすてき!抱いて!
男だけど
0447デフォルトの名無しさん2013/09/20(金) 23:41:06.57
HelloWorldをGitHubに公開したからって誰かアクセスしてくるわけでもあるまいし
GitHub側が禁止してんならともかく何でもうpしてけ
0448デフォルトの名無しさん2013/09/21(土) 00:33:50.50
おまえらがうるさいから
今HelloWorldのリポジトリを削除していってるよ
0449デフォルトの名無しさん2013/09/21(土) 01:07:54.68
どうしよう、俺もSandBoxプロジェクト削除してこようかな
0450デフォルトの名無しさん2013/09/21(土) 16:52:31.32
git checkout -b test
ファイル編集
git add .
git commit -m "コミットします"
git push
でgithubにtestブランチができます
ここで「はっ!」と気づいたのですが、間違えてtestブランチにpushしてしまいました
testブランチじゃなくてmasterブランチにpushしたかったのですが、ここからどうしたらいいでしょうか?
0451デフォルトの名無しさん2013/09/21(土) 16:54:50.56
俺だったら自殺もんのミス
0452デフォルトの名無しさん2013/09/21(土) 16:55:42.26
バージョン管理システムなんだから前の状態に戻せるんじゃないの?
0453デフォルトの名無しさん2013/09/21(土) 16:57:38.23
git logのオプションに--graphと--reverseを付けられないんですが
--graphで表示したものを逆順に表示する方法ありませんか?
0454デフォルトの名無しさん2013/09/21(土) 17:00:32.88
>>450
そのままmasterにマージしてpushすればいいんじゃね
0455デフォルトの名無しさん2013/09/21(土) 17:08:11.83
×バージョン管理システムなんだから前の状態に戻せるんじゃないの?
○バージョン管理システムなんだから間違った状態も保存される。

間違った状態そのものを完全に履歴から抹殺するのは非常手段。
0456デフォルトの名無しさん2013/09/21(土) 17:10:59.62
もどしてやらないとダメでしょうか?


そのままpushしたら
To git@〜.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@〜.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
ってなりました
0457デフォルトの名無しさん2013/09/21(土) 21:07:39.45
Githubで質問です。
Pull Requestが来たんですが、内容の一部だけ採用して、他の部分は今までの自分のでいきたい、
という場合はどう処理すればよいのでしょうか?
0458デフォルトの名無しさん2013/09/21(土) 21:09:17.87
全部まとめて送るなカスって送っとけ
0459デフォルトの名無しさん2013/09/21(土) 21:10:46.12
一部だけ採用できるってことは別種の変更がひとつにまとまってるってことだろ?
コミット分けろボケって言っとけ

で、全部マージするんじゃなくて好きなやつだけcherry-pickするとか
0460デフォルトの名無しさん2013/09/21(土) 21:13:13.72
ぼくもきれいなおねえさんに、ちぇりーぴっくされたいです。
0461デフォルトの名無しさん2013/09/22(日) 03:03:18.32
GitHubの質問ってこのスレでいいのん?
0462デフォルトの名無しさん2013/09/22(日) 03:18:31.00
内容によるだろうな
0463デフォルトの名無しさん2013/09/22(日) 10:43:36.96
指定したcommitに対応するtagがあればそれを表示する方法は?
0464デフォルトの名無しさん2013/09/22(日) 10:58:58.87
リモートのブランチをマージすることはできないの?
0465デフォルトの名無しさん2013/09/22(日) 11:04:23.25
できますん
0466デフォルトの名無しさん2013/09/22(日) 13:00:59.45
,gitignoreの記述で、
サブディレクトリ以下には適用されない、
そのディレクトリ直下のみのパターンを書く方法は?
0467デフォルトの名無しさん2013/09/22(日) 13:31:09.00
パターンを/からはじめる
0468デフォルトの名無しさん2013/09/22(日) 13:46:13.30
>>463
git tag --points-at hoge
Tagとハッシュの一覧は
git show-ref --tags
0469デフォルトの名無しさん2013/09/22(日) 14:51:00.75
ファイルごとにバージョン番号を自動採番したいけど
どうしたらいいんだろうか
0470デフォルトの名無しさん2013/09/22(日) 15:03:54.92
バージョン番号って何だ?
0471デフォルトの名無しさん2013/09/22(日) 15:55:22.54
>>470
そのファイルのバージョン
0472デフォルトの名無しさん2013/09/22(日) 15:57:16.58
>>470
CVSにたとえるなら $Id$ みたいなものがほしい
0473デフォルトの名無しさん2013/09/22(日) 15:58:43.14
>>470
そのファイルのコミット回数のようなものでも構いません
0474デフォルトの名無しさん2013/09/22(日) 16:09:36.28
exportだかarchiveだかの時に置換フィルタをかけるやり方はなんかあった気がするけど
そもそもgitのIDだかってSHA-1ハッシュ値だから、何も嬉しくない気が
0475デフォルトの名無しさん2013/09/22(日) 16:38:46.50
フックはあるから自分でスクリプト書けばいいんじゃないかな なんでファイルごとのバージョン番号なんてものが必要になるのかは理解しがたいが
http://git-scm.com/book/ja/Git-%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-Git-%E3%81%AE%E5%B1%9E%E6%80%A7#キーワード展開
0476デフォルトの名無しさん2013/09/22(日) 16:42:58.40
バージョン番号1のファイルがあったとして、
そのファイルを複数のローカルリポジトリで更新したら
それぞれのリポジトリでのバージョン番号はどうなるんだ?
0477デフォルトの名無しさん2013/09/22(日) 17:03:54.74
>>461

GitHubやってる?
http://kohada.2ch.net/test/read.cgi/prog/1363523309/
0478デフォルトの名無しさん2013/09/22(日) 17:22:33.30
>>476
それぞれ2になるんじゃね
んでマージすると一気に4になるんだよきっと
0479デフォルトの名無しさん2013/09/22(日) 17:42:34.93
>>476,478
「どちらも2になって、マージすると3になる」説を推す
マージすると大きいほうの番号より1大きい番号になるってことで

それより不可解なのは番号がファイルごとに振られていることだな
0480デフォルトの名無しさん2013/09/22(日) 17:59:31.29
いやおまえらw仮にもバージョン番号なんだから、
同じバージョン番号の違う内容のファイルがあったらダメだろw
0481デフォルトの名無しさん2013/09/22(日) 18:03:56.28
つまりブランチ名がバージョン番号に含まれればいいのか!
いやちがう
レポジトリを一意に識別するための名前も含まれる必要があるのか!
0482デフォルトの名無しさん2013/09/22(日) 18:10:00.24
ローカルリポジトリでは番号をインクリメントさせません。
0483デフォルトの名無しさん2013/09/22(日) 18:25:26.05
>>482
メインのリポジトリで複数のブランチに別れたときはどうするの?
0484デフォルトの名無しさん2013/09/22(日) 18:46:53.20
どうやらgitのやり方とはそぐわないことをやりたいらしいってことは分かった
で、何をするためにバージョン番号とやらが必要なんだ?
■ このスレッドは過去ログ倉庫に格納されています