Git 9
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/04/12(土) 13:22:20.98ID:s4x1CSLNGit - 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/
0112デフォルトの名無しさん
2014/04/23(水) 05:24:18.61ID:kDpoyMyg↓のsquashというやつで出来るんじゃないの?
Git - 歴史の書き換え
http://git-scm.com/book/ja/Git-%E3%81%AE%E3%81%95%E3%81%BE%E3%81%96%E3%81%BE%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB-%E6%AD%B4%E5%8F%B2%E3%81%AE%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88#コミットのまとめ
> # s, squash = use commit, but meld into previous commit
0113デフォルトの名無しさん
2014/04/23(水) 07:20:48.07ID:fIp3qZsIrebase -i
0114デフォルトの名無しさん
2014/04/23(水) 09:40:59.20ID:T4x0zu0j0115デフォルトの名無しさん
2014/04/23(水) 20:35:59.48ID:7vo5B08ZB-Dに分割したい時どうしてる?
俺はrebase -i
0116デフォルトの名無しさん
2014/04/23(水) 22:04:37.40ID:59LgjvrDただ慣れないと指定にちょっと戸惑う
>>111みたいにB以下をいじりたい場合だと rebase -i A ってしなくちゃいけないんだよな
それと、まとめたり順番入れ替えるだけなら操作は簡単だけど、バラす場合はちょっと操作がややこしい
0117デフォルトの名無しさん
2014/04/24(木) 00:12:45.07ID:6IEmJN8m逆に表示するオプションあるけどグラフ表示とは併用できませんし。
0118デフォルトの名無しさん
2014/04/24(木) 01:22:42.87ID:cdLHxk0Krebase -iの指示書は、前のコミットにまとめるとかの指定することを考えると古い順に並んでたほうがわかり易い気がする
まあ、自分は慣れてしまったからかもしれないが
0119デフォルトの名無しさん
2014/04/24(木) 01:29:19.68ID:SDYiDObTrebase -i B^
0120デフォルトの名無しさん
2014/04/24(木) 05:27:42.49ID:6xlhO1bi0121デフォルトの名無しさん
2014/04/24(木) 13:18:49.88ID:QakcezKL最新のタグをつけたコミットだけプッシュする方法
2つおしえてください
0122デフォルトの名無しさん
2014/04/24(木) 13:19:34.50ID:QakcezKL0123デフォルトの名無しさん
2014/04/24(木) 13:22:26.51ID:V8z90YIWsqush
0124デフォルトの名無しさん
2014/04/24(木) 13:47:51.32ID:JOpp0cve0125デフォルトの名無しさん
2014/04/24(木) 19:02:31.15ID:yOTIc0ZO0126デフォルトの名無しさん
2014/04/24(木) 21:18:41.68ID:hPYav21ogit filter-branch --env-filter 'GIT_COMMITTER_DATE="Thu, 01 Jan 1970 09:00:00 +0900
"; GIT_AUTHOR_DATE=$GIT_COMMITTER_DATE' --all
0127デフォルトの名無しさん
2014/04/24(木) 22:02:19.45ID:6xlhO1bi0128デフォルトの名無しさん
2014/04/24(木) 22:18:20.71ID:0H30XzcZgit checkout -b test
>Switched to a new branch 'test'
git branch
>何も表示されない
git checkout test
>error: pathspec 'test' did not match any file(s) known to git.
なんもコミットされてないとこうなるんですがどうしてこうなるんですか?
0129デフォルトの名無しさん
2014/04/24(木) 22:21:42.53ID:hPYav21oその状態だと、HEADはrefs/heads/test向けのsymbolic-refになっているが、
そもそも指すべきコミットがないのでrefs/heads/testは存在しない。
よってbranchも何も表示しないし、checkoutもできない。
0130デフォルトの名無しさん
2014/04/24(木) 22:23:42.17ID:0H30XzcZ一番最初のコミットが汚れるのがいやですね
0131デフォルトの名無しさん
2014/04/24(木) 22:25:13.61ID:6xlhO1bi俺は、とりあえず空コミットを作る。
かもしれないし、作らないかもしれない。
0132デフォルトの名無しさん
2014/04/24(木) 22:26:57.87ID:hPYav21oつまりコミット無し状態でブランチを複数作りたいということ?
0133デフォルトの名無しさん
2014/04/24(木) 22:31:15.84ID:0H30XzcZコミットなし状態からブランチを分けて開発したいんです
基本的にmasterは汚したくないのです
0134デフォルトの名無しさん
2014/04/24(木) 22:33:01.48ID:6xlhO1birebaseできないからなんだけど?
それぐらい、というかそれ以上に
よく使う機能だぞ。
汚くしないためにrebaseがある。
0135デフォルトの名無しさん
2014/04/24(木) 22:37:44.72ID:hPYav21o129で言ったようにHEADが存在しないrefを参照していればgit initした状態と同じなのだから、
二個目のブランチを作るときにgit checkout -bではなく
git symbolic-ref HEAD refs/heads/branch_name してから開発を進めればいいじゃない
0136デフォルトの名無しさん
2014/04/24(木) 23:47:09.80ID:T/Y/fuz3そこまで潔癖ならマージもしないだろうからブランチじゃなくてリポジトリを分けたら?
0137デフォルトの名無しさん
2014/04/25(金) 00:27:14.58ID:kupFdBxu1つ目のcommitがあって、それがtestブランチだとする。
が、masterはこのcommitから辿れる親コミットも指してないし、どれも指していない。
fast forward mergeできない状態だけどいいの?
どうせmasterはなにかしらコミットした段階で一番汚されてなくたってそのコミットを指してしまうのだから、コミットしてからチェックアウトしてもいいじゃん。
0138デフォルトの名無しさん
2014/04/25(金) 03:08:01.24ID:XQM8U6nM0139デフォルトの名無しさん
2014/04/25(金) 04:07:01.58ID:zu0sgmwaつか空の.gitignoreくらい作ってからでも汚れとは思わんぞ
0140デフォルトの名無しさん
2014/04/25(金) 04:20:32.33ID:jzYptMLV個人の趣味でやってるならVCSは好きなのを使えるのにね
0141デフォルトの名無しさん
2014/04/25(金) 04:23:50.66ID:4klH39dY0142デフォルトの名無しさん
2014/04/25(金) 05:28:33.42ID:cdj1D6xv俺はローカル全部svnだわ
0143デフォルトの名無しさん
2014/04/25(金) 08:52:14.28ID:xiFjVo8G3つ前に巻き戻してからブランチするのでしょうか
最後の2つのコミットも念のために残したいのでブランチにしたいのです
具体的には
最後の2つのコミットの変更が破棄になったけど
念のために残したい
という状況です
0144デフォルトの名無しさん
2014/04/25(金) 11:14:49.10ID:4klH39dYブランチ作ればいいじゃん。
0145デフォルトの名無しさん
2014/04/26(土) 02:05:43.27ID:pkQNyj+Nrebaseはブランチ取り込むときにontoと組み合わせて使うことの方がおおいなぁ。
コミットログの都合もあるから履歴整理にはほとんど使ってない人がここに。
0146デフォルトの名無しさん
2014/04/26(土) 02:08:06.72ID:/GEUo84h普通にマージかチェリーピックすればいいだろ。
そのための機能なんだから。
0147デフォルトの名無しさん
2014/04/26(土) 02:26:05.50ID:pkQNyj+N複数のブランチ平行したときとかontoつかってカットする感じに履歴いじらないとFFになってくれないことが多かった。
0148デフォルトの名無しさん
2014/04/26(土) 02:39:25.28ID:7YL+swb1だからなんでFFにするんだよ
0149デフォルトの名無しさん
2014/04/26(土) 02:41:39.49ID:/GEUo84hなんか無駄に複雑なことしている気がするな。
0150デフォルトの名無しさん
2014/04/26(土) 13:53:59.32ID:Vv5x70uzブランチ分けるどころか、リポジトリも1つだけで全部まとめて入れてる
そういう使い方するとGitよりSubversionが使いやすい
0151デフォルトの名無しさん
2014/04/26(土) 13:58:18.76ID:/GEUo84hいや、ディレクトリがわかれるだろ?
subvertionを使うと、
* ファイルがあるディレクトリ
* リポジトリ
と二つにディレクトリがわかれるだろ?
それだけで使いづらいじゃん。
0152デフォルトの名無しさん
2014/04/26(土) 14:05:48.63ID:Z8XCebgD0153デフォルトの名無しさん
2014/04/26(土) 14:20:33.69ID:dMJ+hsKf全くその通りなんだけど、svnしか使った事のない人には多分理解出来ないと思う。
0154デフォルトの名無しさん
2014/04/26(土) 14:56:15.48ID:1yS20LQ1じゃあ例えば
C:/php/.git
C:/php/bbs
C:/php/wiki
C:/php/cms
みたいなのがあって、C:/php/cmsの履歴だけ戻す場合とか苦労するぞ
0155デフォルトの名無しさん
2014/04/26(土) 15:03:43.34ID:/GEUo84hリポジトリを作るのが面倒であるということである。
0156デフォルトの名無しさん
2014/04/26(土) 18:03:12.98ID:Vv5x70uz自分一人で使うだけでそんな面倒なことしない
0157デフォルトの名無しさん
2014/04/26(土) 18:26:46.44ID:ztOmzoR+commitがすごく大変で間違えられない作業なので、
このように避けようと思うようになります。
gitだと気軽なのにね。
0158デフォルトの名無しさん
2014/04/26(土) 18:27:44.99ID:bHDNIx6I0159デフォルトの名無しさん
2014/04/26(土) 18:30:43.24ID:Vv5x70uzcommit間違えたらもう一回commitするだけ
開発頻度の低いファイルの管理にgitは過剰
0160デフォルトの名無しさん
2014/04/26(土) 18:39:48.80ID:ztOmzoR+コンフリクトかどうかは
重要じゃないよ。
gitが便利なのは過去を修正できるって所。
一人でやっていても、簡単なミスはするもの。
追加漏れのファイルを追加
スペルミスの修正
こんなマヌケなコミットを残さないで済む。
0161デフォルトの名無しさん
2014/04/26(土) 18:42:46.95ID:ztOmzoR+gitが残すとのは"修正"履歴
だからsubversionは、いろいろ作業したものが
そのまま残って、あとで、で結局何をしたかったの?って
わけがわからなくなる。
gitは修正履歴だからこのコミットで何を修正したかが
はっきりするから、ある修正を取り除こうとした時も簡単。
subversionだとある修正を取り除くとき
それに関する作業を洗い直さないといけないけど、
gitだとそのある修正に対するコミットがどれかはすぐに分かる。
0162デフォルトの名無しさん
2014/04/26(土) 18:47:04.31ID:ztOmzoR+ちょっと気軽にコミットしようということができない。
gitだとちょっと一旦ここでコミットしておいて
少し違う作業をとか、こまめにコミットしておいて
あとでまとめようとか、一つのファイルの修正のうち
一部分だけをコミットしておこうとか簡単にできるが
subversionだとこまめにコミットしたら
その内容がずっと残る。恥ずかしいから
こまめにコミットできない。
あとでまとめてやるからいろんな修正が混ざってしまう。
0163デフォルトの名無しさん
2014/04/26(土) 18:56:37.43ID:Vv5x70uz0164デフォルトの名無しさん
2014/04/26(土) 18:57:44.05ID:ztOmzoR+こういう奴がgitに反対しているわけさ。
0165デフォルトの名無しさん
2014/04/26(土) 19:04:14.03ID:a+LUSt4b0166デフォルトの名無しさん
2014/04/26(土) 19:10:57.12ID:Vv5x70uz0167デフォルトの名無しさん
2014/04/26(土) 19:12:42.80ID:ztOmzoR+bareは必須ではない。
gitを始めるのに必要なのはディレクトリで
git initするだけ。
これでもうすぐにブランチ切り替えも
タグの作成もできる。
某subversi○nみたいに
わざわざtrunk、branches、tagsディレクトリを作って
コミットなんて面倒なことしなくていい。
0168デフォルトの名無しさん
2014/04/26(土) 19:13:48.14ID:ztOmzoR+君は.screenrcの管理とかしかしないんだねw
えぇ、subversionは面倒だからでしょうね。
気軽に始められないw
0169デフォルトの名無しさん
2014/04/26(土) 19:17:57.35ID:Vv5x70uz0170デフォルトの名無しさん
2014/04/26(土) 19:22:53.05ID:ztOmzoR+※ブランチ作るたびに、この長いURLをいちいち入力する必要があります。
svn cp https://www.example.com/svn/trunk \
https://www.example.com/svn/branches/v1p2p3
gitだとこれだけです。
git branch v1p2p3
さてブランチに切り替えてみましょう。
svn sw https://www.example.com/svn/branches/v1p2p3
ぷぷぷぷw
なんでsvnはそんな長いURLが必要なんですか?wwww
あ、ブランチは、ただのコピーでしか無いから、どこにでもコピーできる=コピー場所を指定しなければいけないんですね。
これを毎回毎回入力して切り替えるんですね。大変ですねぇwwww
git checkout v1p2p3
みじかい!
0171デフォルトの名無しさん
2014/04/26(土) 19:24:43.18ID:ztOmzoR+gitではブランチはブランチという機能なんで
subversinoみたいに、ブランチディレクトリ(branches)なんてのを
作る必要はないんですよ。
だからgitではブランチ名だけで、作成や切り替えが可能です。
いちいちディレクトリ(branches)書く必要はありません。
こんなの、き・そ・! です。
0172デフォルトの名無しさん
2014/04/26(土) 19:30:14.03ID:y+As8odQ0173デフォルトの名無しさん
2014/04/26(土) 19:30:26.82ID:Vv5x70uz0174デフォルトの名無しさん
2014/04/26(土) 19:32:08.93ID:ztOmzoR+0175デフォルトの名無しさん
2014/04/26(土) 19:33:56.04ID:Z8XCebgD別に git はゴミ!とか貶してるわけじゃないのに
0176デフォルトの名無しさん
2014/04/26(土) 19:34:13.93ID:Vv5x70uz俺はそんなことしてないけど
0177デフォルトの名無しさん
2014/04/26(土) 19:35:28.56ID:ztOmzoR+ブランチ作らないって言ってるんでしょうかね
みんなブランチ要らないと言っているのであれば
subversion使っているだけで、アホとみなして良さそうですね。
実はブランチ作れないの間違いでしょうかねw
面白いですねwww
0178デフォルトの名無しさん
2014/04/26(土) 19:36:05.09ID:ztOmzoR+ブランチの必要性から説明しないといけないのでしょうか?www
0179デフォルトの名無しさん
2014/04/26(土) 19:39:59.70ID:iVzDEpppお前がブランチ作らないとかどうでもいいわ。
バージョン管理システムにおいて
ブランチは重要な存在であり、
subversionがブランチの管理が面倒だという事実に
代わりはないんだから。
それともSubversionの一般的な使い方において
ブランチは使うべきではないと言うつもりかい?
0180デフォルトの名無しさん
2014/04/26(土) 19:44:23.08ID:Vv5x70uz個人の.bashrcを開発ブランチとリリースブランチに分けて更新するのが一般的という認識はなかった
0181デフォルトの名無しさん
2014/04/26(土) 19:46:55.41ID:koYBfWi3git initするだけでもう使えるよ。
subversionはそれだけで面倒。
最初の一歩の時点でもう負けてるんだ。
0182デフォルトの名無しさん
2014/04/26(土) 19:51:45.97ID:Z8XCebgD0183デフォルトの名無しさん
2014/04/26(土) 19:54:06.41ID:HaseiyYq別に面倒な方法だってわかってやってるなら問題ない。
面倒じゃないどころか、Subversionの方が簡単だって言い出すから悪い。
gitはgit initですぐにgit管理が始められるのに、
それよりも手間がかかるsubversionが簡単なワケがない。
せめて反証を出せと。
0184デフォルトの名無しさん
2014/04/26(土) 19:54:51.87ID:Vv5x70uzなんでリポジトリを別の場所に置いたらダメなの?
特にマシン間で設定フィルを共有する場合、中央リポジトリが必要になるのは同じなんだから
0185デフォルトの名無しさん
2014/04/26(土) 19:56:09.41ID:Z8XCebgD0186デフォルトの名無しさん
2014/04/26(土) 19:56:42.73ID:HaseiyYq> なんでリポジトリを別の場所に置いたらダメなの?
ダメなんて言ってないだろ。
面倒だって言ってるだけ。
gitでも当然のようにリポジトリを別の場所におけるわw
だけど、リポジトリを別の場所に置くのは面倒。
必須でない作業なのだから、オプションであるgitの方が簡単。
少なくともその意見はsubversionの方が簡単だという理由にはなっていない。
リポジトリを別の場所に置くしか無いという欠点しか言っていない。
0187デフォルトの名無しさん
2014/04/26(土) 19:59:08.48ID:Z8XCebgDこれは「俺にとっては」ってのが頭につくだけの話でしょ。
別に白黒付けるもんでもなかろうに。
0188デフォルトの名無しさん
2014/04/26(土) 20:01:00.30ID:HaseiyYqじゃあ、俺は、
「多くの人にとっては」って頭につけることにするよ。
お前ん中ではそうなんだろうなw
お前ん中では、設定ファイルの管理にぐらいしか使わないんだろうな
0189デフォルトの名無しさん
2014/04/26(土) 20:14:52.93ID:7bCdF05U(俺にとっては)Subversionの方が簡単
俺にとってはって、君、Subversionを何に使ってるの?
設定ファイルの管理だけど?
ブランチは使わない!
でもブランチやタグを使うと面倒だよね?
だから、俺はブランチは使わない!
ふーん、そう、それで何が簡単なの?
git なら git initだけで初められるけど。
gitで別の場所にリポジトリを置いてみなさい。
subversionはそれと同等!
いや、同等って、それ簡単ということになってないじゃん。
0190デフォルトの名無しさん
2014/04/26(土) 20:38:24.09ID:knmAOh4aドットファイルをブランチに分ける事は基本ないわな
0191デフォルトの名無しさん
2014/04/26(土) 20:42:18.34ID:7YL+swb1俺はブランチを切りまくって、そいつらをマージしたものをマシン毎につかってるな。
いつのまにか47もブランチできてたわ。
0192デフォルトの名無しさん
2014/04/26(土) 22:24:36.07ID:jBTvJ1OX最終的にはどんな環境でも一つの設定ファイルで動くようにまとめることが多いけど、
一時的に特殊な環境用にカスタマイズとかブランチ切って編集してるね
暇なときにマージして統合
0193デフォルトの名無しさん
2014/04/26(土) 23:35:52.72ID:pkQNyj+Nたとえば
$ git log --color=never --all --graph --pretty="[%h] %d %s"
* [6a1c481] (HEAD, master) 2
* [523984e] (branch2) branch2-2
* [6554768] branch2-1
| * [05c389f] (branch1) branch1-2
| * [6b85c6d] branch1-1
|/
* [9d47912] 1
ここから、 branch1をFFなるように取り込もうとしたら
$ git rebase --onto master 3829497 branch1 として 分岐なくしてからマージしない?
それとも履歴にはこだわらず、 rebaseで1世代だけにしてからcherry-pickするのが普通?
0194デフォルトの名無しさん
2014/04/26(土) 23:37:58.13ID:pkQNyj+N$ git rebase --onto master 9d47912 branch1
の間違い、 行数削ったときに直すのわすれてた
0195デフォルトの名無しさん
2014/04/26(土) 23:46:42.24ID:7YL+swb10196デフォルトの名無しさん
2014/04/26(土) 23:47:26.43ID:7YL+swb1あと、普通は
git rebase master branch1
で済む。
0197デフォルトの名無しさん
2014/04/26(土) 23:49:50.02ID:DhTsVAJ/0198デフォルトの名無しさん
2014/04/27(日) 01:10:15.13ID:TcUJdg0lその通りだね。
やっぱり無駄なことしてるじゃんw
onto使う必要がない所でonto使ってた。
0199デフォルトの名無しさん
2014/04/27(日) 05:35:56.46ID:/n7QikUKただの一度もしたことねえわ
0200デフォルトの名無しさん
2014/04/27(日) 06:08:30.59ID:TcUJdg0l0201デフォルトの名無しさん
2014/04/27(日) 10:01:09.95ID:YIeV8hDmなくても平気なのかー、単純にrebaseするだけじゃダメな時あったんだけどなぁ、まっいっか。
FFこだわるのは、FF縛りがあるから。
0202デフォルトの名無しさん
2014/04/27(日) 10:13:05.46ID:+jGSbN4U0203デフォルトの名無しさん
2014/04/27(日) 14:15:59.24ID:ijMC55vL0204デフォルトの名無しさん
2014/04/27(日) 16:48:41.84ID:/n7QikUK0205デフォルトの名無しさん
2014/04/27(日) 16:52:16.11ID:s0HPULD5リモートから取り込んだコミットを
ローカルで改変してたりしないか?
開発用の修正を間に挟んだりとか。
0206デフォルトの名無しさん
2014/04/27(日) 20:05:48.91ID:0q81XbwGそれでもFFにならないわけはない。
0207デフォルトの名無しさん
2014/04/27(日) 20:42:56.75ID:RalmXzvw>GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus) [単行本(ソフトカバー)]
>大塚 弘記
>http://www.amazon.co.jp/gp/product/477416366X/
この本買ってみた。題名とは違うがGitそのものの入門的な解説もちゃんとあるな。
やたらけなしている人がいたが本当のところはどうなのか確認してみるつもり。
読んだらまた感想書く。
0208デフォルトの名無しさん
2014/04/27(日) 20:56:58.74ID:37jfUrsD0209デフォルトの名無しさん
2014/04/27(日) 21:34:00.25ID:FuM1UcuM> この本買ってみた。題名とは違うがGitそのものの入門的な解説もちゃんとあるな。
でもGitの入門的な解説としてはよろしくない印象。
diff --cached を書いてなかったり、不自然な reset の例を示してたり。
まぁそれが主題じゃないからいいんだけどさ。
0210デフォルトの名無しさん
2014/04/27(日) 21:39:02.03ID:FuM1UcuM> FFこだわるのは、FF縛りがあるから。
何がなんでもrebase && FF派ってやっぱlogが一直線になるのが嬉しいのかね?
俺的にはlog --first-parentで要約できないほうが辛いんだが、
もし他にrebase && FFの利点を知ってれば教えてくれ。
0211デフォルトの名無しさん
2014/04/27(日) 21:46:21.84ID:0q81XbwG■ このスレッドは過去ログ倉庫に格納されています