トップページtech
983コメント406KB

Git 12©5ch.io

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん 転載ダメ©2ch.net2015/03/23(月) 13:35:13.83ID:aBYp+bVs
ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。

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

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

◆前スレ
Git 11
http://peace.2ch.net/test/read.cgi/tech/1416195050/
0893デフォルトの名無しさん2015/07/31(金) 15:49:47.76ID:5Be3R/21
>>892
ならない。
0894デフォルトの名無しさん2015/07/31(金) 15:51:07.09ID:R58DjZqg
>>892
インストールしたGitを使ってGitのソースをアップデートできるって意味だな
当然ソースをアップデートしたあとmakeは自分でやる
0895デフォルトの名無しさん2015/08/01(土) 05:22:16.40ID:fbUoNrmE
>>885
> コンパイルできないものもコミットしていいですか?

他人に渡さないならば何の問題もない。

svnとか使ってると、この自分だけが触れる
コミットという概念がわからんのだろうな。
0896デフォルトの名無しさん2015/08/01(土) 05:24:32.97ID:fbUoNrmE
>>889
> 毎朝コミットで良いよ
なんで1日の区切りでコミットしてるんだよw

作業の区切りでコミットしろよ。
大抵の場合、1日に数回コミットするもんだ
0897デフォルトの名無しさん2015/08/01(土) 05:32:58.26ID:fbUoNrmE
>>888
> 「意味がある単位」でコンパイルできないものという発想が良くわからない。

コードとして意味がある単位だと、コンパイルできないことはないはずだね。

だけど、作業として見るとコンパイルできないけどコミットすることはあり得る。

例えば何かの修正をする時、設計Aの方法で実装するか、
設計Bの方法で実装するか悩んでたとする。

悩んで出てもわからないのでざっくりと作って検証することにする。
設計Aである程度作って、設計Bである程度作る。

そういった場合に、コンパイルできない状態でコミットすることはあるだろう。

もちろんこれはマージするときには、コンパイルできる意味がある単位に直すのは
当たり前だけど、作業中であればコンパイルできない単位でコミットすることはある

これがsvnだと即サーバーにpushされて周りに迷惑をかけたりすることがあるけど、
gitだと自分だけのコミットにしておけばいいので、中途半端なコードでも
バンバンコミットできる。というかgitならコミットしていいんだよ。
そのためにあるのがrebaseという機能なんだから。
0898デフォルトの名無しさん2015/08/01(土) 06:00:09.26ID:Fq14Oy7Q
msysgitは2系が出てくる気配ないし
もうgitに追従する気は無いってことか
0899デフォルトの名無しさん2015/08/01(土) 06:17:46.92ID:fbUoNrmE
>>898
俺はwindowsだとcygwinを使ってるよ。
色々他を試したが結局cygwinに戻ってきた。

昔と違ってマシンスペックが上がったから
たいして重さを感じないしね。
zshも使えるし。
0900デフォルトの名無しさん2015/08/01(土) 07:37:18.72ID:O3MfLUJM
>>898
v2系はこれ?
使ったこと無いけど
http://git-for-windows.github.io/
0901デフォルトの名無しさん2015/08/01(土) 11:19:27.66ID:BlX74pFF
>>897
あるある
俺も「筋が悪そうだからこのブランチは放棄」ってコメント付けてコミットした事は何度かある
0902デフォルトの名無しさん2015/08/01(土) 14:26:03.50ID:fbUoNrmE
他にも思い出した。

とある修正をしていて、コードを書いていると
うぉい、ここバグってるじゃねーか
(そのせいでとある修正がちゃんとできない)

一旦コミットしておいて、
先にバグの修正をコミットして、
んで戻ってくる。

こういった時に中途半端な状態でコミットする。

戻ったあとはバグ修正状態からの変更ににrebaseする。

このようにgitの素晴らしさっていうのは、
ファイルの管理やバックアップではなく、
実際の開発で起こることに対応するための機能なんだよ。

履歴管理ツールではなく、開発ツール。
そう認識しないといけない。
0903デフォルトの名無しさん2015/08/01(土) 21:25:30.14ID:fuLtc72j
>>902
rebaseしたくないので、同じようなことを
rebaseしないでやる方法も教えてください。
おねがいします。
0904デフォルトの名無しさん2015/08/01(土) 21:30:36.62ID:cZ9y3hcR
>>903
「rebaseしたくない」ではなく
「馬鹿だからrebaseを使える能力がない」の
間違いだろ?

「したくない」ではなく「できない」

自分に嘘をついてはいけない。
0905デフォルトの名無しさん2015/08/01(土) 21:39:52.86ID:Co43fSsi
正解は「rebaseする必要はない」でした
0906デフォルトの名無しさん2015/08/01(土) 22:52:16.85ID:cZ9y3hcR
道具は適切に使うものだ。

目的のために作られた専用のものがあるのであれば
それを使えばいい。

それが必要だから作られたわけなんだから。
0907デフォルトの名無しさん2015/08/01(土) 23:12:53.23ID:h+APIw5a
stashやcommit --amendや--no-commit系使える時は使う。rebase代わりにformat-patch使うことケースも1%くらいはある。
でもほぼrebase -iだな。
0908デフォルトの名無しさん2015/08/01(土) 23:18:37.12ID:Co43fSsi
道具は適切に使うものだ。

そして、それがあるから使うというのは適切な使い方ではない。

それは道具に使われてると言うんだから。
0909デフォルトの名無しさん2015/08/01(土) 23:31:46.83ID:fuLtc72j
>>904
rebaseという思想が好きじゃないんです。

それはそれとして、rebaseを使わないと出来ないことなのですか?
0910デフォルトの名無しさん2015/08/01(土) 23:49:08.71ID:RZc3oG0T
とりあえず空行交えて語りたい人たちは運用スレ行ってください
0911デフォルトの名無しさん2015/08/02(日) 00:01:19.35ID:ID0TD3H5
gitは運用方法に派閥っていうか宗派っていうか宗教戦争みたいなもんがあるのか
0912デフォルトの名無しさん2015/08/02(日) 00:09:46.39ID:KQ3UQl73
運用が自由すぎて
どこかの宗派の戒律を受け入れたほうが楽、と言うのはあるな

俺はgit-flow派
0913デフォルトの名無しさん2015/08/02(日) 00:12:00.18ID:uoA7o0bf
>>909
> それはそれとして、rebaseを使わないと出来ないことなのですか?



rebaseを使うとやりたい事が簡単にできるんだよ。

やりたい事=思想。

rebaseを使わなくても、同じことをするのであれば
rebaseの思想は正しいということとなんだが。
0914デフォルトの名無しさん2015/08/02(日) 00:15:40.65ID:gKbzhWvd
rebaseしたくないならmergeすりゃいいじゃん
0915デフォルトの名無しさん2015/08/02(日) 00:37:19.06ID:eV4xuuQq
複数コミットにまたがるamendのようなrebase
-> rebase開始位置に指定したコミットは変らない -> HEADのファイルは変化しない

分岐した元ブランチとの関係をFF状態にするためのrebase
-> rebase開始位置に指定したコミットが別のコミットになる -> HEADのファイルが変化する

良く知らない人はrebaseっていうと後者しか思い浮かばなくて
mergeすればいいじゃんとか言い出す
0916デフォルトの名無しさん2015/08/02(日) 07:51:47.64ID:zAkA6wkz
rebaseは手段の一つであるが目的ではない
rebaseの思想とかw馬鹿はこれだから怖い
0917デフォルトの名無しさん2015/08/02(日) 08:42:49.05ID:gKbzhWvd
rebaseでしかできないことがあるのは当たり前。

rebase以外で目的を達成することができることがある != すべてrebase以外で実現できる
0918デフォルトの名無しさん2015/08/02(日) 09:00:44.24ID:dTRZmQiN
論理値の比較に等号不等号つかうひとって筋が悪いよね
0919デフォルトの名無しさん2015/08/02(日) 13:19:25.28ID:5pxTtzkh
>>918
世間のレベルに合わせてるんだよ。
あと、rebaseは名前が嫌い。
0920デフォルトの名無しさん2015/08/02(日) 13:30:22.74ID:RcysspGc
たかがgitを使える程度で尊大な大先生がよくわくスレだ
0921デフォルトの名無しさん2015/08/02(日) 20:18:22.98ID:HQ+xGyu0
linuxでgit pullで新しいコミットを取得したら自動でビルドしたいんですけど
どうやればいいのか教えてください
0922デフォルトの名無しさん2015/08/02(日) 21:02:00.58ID:j05l/s8s
>>917
> rebaseでしかできないことがあるのは当たり前。

rebaseでしかできないことなんてない。

全ては効率の問題。
その他の方法でもやれるが、
効率が凄く悪くなる。

例えて言うのなら、東京から大阪まで徒歩でも行ける。
車でしか行けないわけじゃない。それと同じ。

ある目的のためにrebaseという手段が作られた。
rebaseは目的ではない。目的を最速で達成するための
手段なのだ。使わない理由がない。
0923デフォルトの名無しさん2015/08/02(日) 22:07:56.09ID:zAkA6wkz
rebaseでしかできないことなんてないし
rebaseしなければいけないこともない

ではなぜrebaseするのか?

これは哲学的であり、そしてかなり難しい問題のようにみえる
しかし、実は我々はその答を既に知っているのだ

その答とは

そこにrebaseがあるからだ
0924デフォルトの名無しさん2015/08/02(日) 22:13:02.07ID:j05l/s8s
いや、rebaseがなかったから作ったんだよw

Linusがね。必要だと思ったから作った。
0925デフォルトの名無しさん2015/08/02(日) 22:51:23.25ID:sASJ2DPa
Linusまたはその後継者が必要だと思ったからrebaseが作られた

きっとそうだろう

でも俺はLinusじゃない
0926デフォルトの名無しさん2015/08/02(日) 22:54:55.58ID:I5g9+RU+
Linusよりも劣る人間が言っても説得力ないな。
0927デフォルトの名無しさん2015/08/02(日) 23:04:48.44ID:sASJ2DPa
>>926
つまりだ、Linusのために作られた道具を
俺ごときが使いこなせるわけがない

ということだ
0928デフォルトの名無しさん2015/08/03(月) 08:13:34.83ID:6s/iApNK
誰でもrebaseを使う事によって最速のrebaseが達成出来る
全く問題はない
0929デフォルトの名無しさん2015/08/03(月) 17:13:09.03ID:CE59HNJ8
>>902
> 一旦コミットしておいて、
> 先にバグの修正をコミットして、
> んで戻ってくる。
stashしろよ。
0930デフォルトの名無しさん2015/08/03(月) 20:22:26.69ID:OzQ4PZKS
>>929
やってるよ?

コミットしてないファイルがあるとrebaseできないからね。
stashしても作業中のファイルを一旦対比してから、

その後で修正してrebaseする。
0931デフォルトの名無しさん2015/08/03(月) 20:35:53.78ID:nTSIXxVa
rebaseってどういう機能なの?
コミット済みのコミットにマージするの?
0932デフォルトの名無しさん2015/08/03(月) 20:40:24.64ID:6s/iApNK
履歴を改竄するだけの、稀に便利だけど、必然性は全くない機能。
0933デフォルトの名無しさん2015/08/03(月) 20:43:36.27ID:OzQ4PZKS
間違いをしないと言う人間には
不要でしょうなぁw

タイポしたことがない人、手を揚げて!
閻魔様の前に連れて行ってあげる♪
0934デフォルトの名無しさん2015/08/03(月) 20:57:28.47ID:DLpcuCaG
rebaseが無かったら単なるバージョン管理ツールだね
rebaseがあるから差分管理編集ツールとでも呼ぶべき別次元のツールになった
0935デフォルトの名無しさん2015/08/03(月) 21:01:48.03ID:Po35HDPO
rebaseがないと、もうバグはないかな?とか考えてしまって
まだコミットしないで様子を見よう。とかやってしまうんだよね。
そうすると小さくコミットすることが難しくなってしまう。
0936デフォルトの名無しさん2015/08/03(月) 21:20:26.33ID:6s/iApNK
バグの痕跡を秘密裏に闇に葬る暗黒のrebase使い達
0937デフォルトの名無しさん2015/08/03(月) 23:17:22.87ID:nTU4lW67
>>931
rebaseはブランチの分岐点を変更する機能
gitより前にclearcaseなどで実装されていてgit固有の機能という訳ではない
rebaseにコミットの編集・結合・取捨選択する機能を追加して
より柔軟にコミットを直せるようにしたのがgitかな
0938デフォルトの名無しさん2015/08/04(火) 02:11:14.86ID:pFxIT8vh
>>936
リリースしてないもののバグを
なんで痕跡残さないといけないんだ?
0939デフォルトの名無しさん2015/08/04(火) 08:51:51.90ID:1pDlaOkO
>>936
成果物の途中経過を次元の狭間に葬り去る古のno-commiterとの血で血を洗う闘争の幕開けであった
0940デフォルトの名無しさん2015/08/04(火) 09:07:24.48ID:LaebqzUe
前のコードはコメントアウトして残せ。
リリースしてないコードも全部だ。
0941デフォルトの名無しさん2015/08/04(火) 09:35:03.57ID:ioOBuo8G
年代記に残る争いになるわけですな

あ、改竄派が勝てば、そもそも争いはなかった事になって、年代記には残らないね

え?言葉が悪い?
では修正的歴史観と呼び直しましょう。
0942デフォルトの名無しさん2015/08/04(火) 10:08:20.01ID:rYHf65xq
>>930
> >>929
> やってるよ?
は?stashせずにコミットしてんだろ?
0943デフォルトの名無しさん2015/08/04(火) 14:23:44.57ID:jQzRldfC
コミットにランク機能がほしい

とりあえずバックアップ代わりのコミットと
コンパイル通ったコミットとガッツリテスト済みのコミットと
それぞれ記録したいけど、ログをみるとき
全部出てしまうのはうっとおしい
(ガッツリテストとおったログだけみたい)
0944デフォルトの名無しさん2015/08/04(火) 14:36:08.82ID:rYHf65xq
>>943
それぞれ何かキーワードを決めて、ログ表示するときに絞り込めばいい。
0945デフォルトの名無しさん2015/08/04(火) 14:52:01.94ID:wN0qaZCY
>>943
それぞれブランチをつくればいいと思う
0946デフォルトの名無しさん2015/08/04(火) 15:01:54.07ID:KT0L8boW
チェックアウトってなんすか?
ホテルとかで家に変えるときチェックアウトしますよね?
そうすると部屋空いてるから、だれでもチェックインできるようになるんですか?
0947デフォルトの名無しさん2015/08/04(火) 15:56:53.06ID:jQzRldfC
>>944
今はそうやってる
>>945
それ前やってたけど、今どのブランチにいるかうっかり忘れるんだよね
0948デフォルトの名無しさん2015/08/04(火) 18:13:17.56ID:rYHf65xq
>>947
> それ前やってたけど、今どのブランチにいるかうっかり忘れるんだよね
bashだったら、git-prompt.shを使うといい。
プロンプトを
[username@ dirname] (issue-2701-add-hoge-api *) $
みたいにできる。

ついでにgit-completion.bashもインストールすれば、gitコマンドやbranch名をTabで補完できるようになる。
0949デフォルトの名無しさん2015/08/04(火) 20:39:05.58ID:LaebqzUe
>>943
普通に日本語でコメント書けばいい。

> ログをみるとき全部出てしまうのはうっとおしい
ブランチに含まれるコミットが多すぎるってことさ。

いろんなプロジェクトのマージコミット見てみ。
マージコミットの内容=ブランチの内容なわけだが、
ブランチに含まれるコミットは数個しか無い。

>>947
> それ前やってたけど、今どのブランチにいるかうっかり忘れるんだよね

>>948がいっている通り。
それはさすがにgitを使いこなせてない。
gitというかシェルに近い話だが。

初心者のうちは、なにか使いにくいと思ったら
自分の使い方が間違ってるのではないかって
考えることが重要だよ。
0950デフォルトの名無しさん2015/08/05(水) 16:11:14.67ID:qTT2Q3HY
Git始めました
0951デフォルトの名無しさん2015/08/05(水) 22:03:19.51ID:Y8QWrwSI
冷えてるの?
0952デフォルトの名無しさん2015/08/06(木) 12:24:17.98ID:YnB06pEs
あったかいGit始めました
0953デフォルトの名無しさん2015/08/07(金) 21:38:28.11ID:VjeH+b7c
SourceTreeは結構バグ多いんだけど
代替GUIでお勧めはある?
0954デフォルトの名無しさん2015/08/07(金) 21:50:49.99ID:TJyjY+1J
あまりgitを使いこなせてないからか標準のgitgui?gittk?で割と十分だと思ってるんだけど
皆さんはどのへんに不満があるのでしょう?
0955デフォルトの名無しさん2015/08/07(金) 22:38:51.48ID:zZgheHLR
SourceTree時々固まるけどいうほどバグあるか?
コミットとブランチ編集はGUIでやってrebaseはCLIでやってる
0956デフォルトの名無しさん2015/08/08(土) 02:18:48.55ID:hvTU1eUO
>>955
とくに目立つのは
・日本語入力がたまにできなくなる
・日本語がたまに文字化けする
の2点かなぁ
0957デフォルトの名無しさん2015/08/08(土) 19:03:43.84ID:eLygs58n
ShiftJISとか使ってんの?
0958デフォルトの名無しさん2015/08/08(土) 21:12:25.04ID:hvTU1eUO
ShiftJISとか使ってませんよ?
0959デフォルトの名無しさん2015/08/08(土) 21:21:49.39ID:vBlQRCao
Windowsは全世界でShiftJISが使われているんだろう?
0960デフォルトの名無しさん2015/08/08(土) 23:20:35.51ID:BQYw/0/m
テスト
0961デフォルトの名無しさん2015/08/08(土) 23:27:16.33ID:m5zrYZQl
ファイル名とかは後方互換性でそうなっちまうわな
>>959
英語圏はとりあえず違うかな?
0962デフォルトの名無しさん2015/08/08(土) 23:32:51.12ID:A+ZgS5ti
>>959
ASCIIがShiftJISのサブセットだと大体そんな感じかな?
有名な円化するくらいで
0963デフォルトの名無しさん2015/08/08(土) 23:33:39.68ID:PKfIE09h
デモネ ダイジナカギモ
カギモ カエシタノ〜

    ∧_∧
   (*゚ー^)
   /つ¥ つ
  |*/;≡|@\
    ̄(/ U ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
チャーンッッ ウォーッ シィーーッ
`∧∧ ∧∧∧∧ ∧∧
(  )  )  )  )
0964デフォルトの名無しさん2015/08/09(日) 00:06:42.83ID:SZxZe4hf
>>959
SJISなわけはないがフランスやロシアや中国の人のソースもたまに化けてるの見る
https://en.wikipedia.org/wiki/Windows_code_page
0965デフォルトの名無しさん2015/08/09(日) 01:38:16.85ID:un4R4gw1
なんか最近のニュースで
MSのVisualStudio2015でシフトJISじゃコンパイル失敗するからなんか設定してねってあったぞ
WindowsでもソースコードのデフォルトはもうUTF-8なんだよ
0966デフォルトの名無しさん2015/08/09(日) 16:53:09.64ID:zMNscprH
そりゃC#の話じゃないの
0967デフォルトの名無しさん2015/08/09(日) 17:04:53.01ID:un4R4gw1
べつにC#限定の話じゃないようだが
ぐぐるとC#の話が一番上にでてくるがなw
0968デフォルトの名無しさん2015/08/09(日) 17:21:44.28ID:DsvXgH80
2015だとC++もデフォルトUTF-8になったのか?
いちいち変更しなくて済むようになったんならありがたいが。
0969デフォルトの名無しさん2015/08/09(日) 17:25:29.84ID:doZuGkX/
>>968
たぶん2010あたりから
0970デフォルトの名無しさん2015/08/09(日) 17:43:56.94ID:zMNscprH
Win32でC++新規作成するとSJISだけど、これうちの環境のせいなのか?
0971デフォルトの名無しさん2015/08/09(日) 17:48:54.67ID:TarQJqGz
>>969
Visual Studio 2013 Community ではシフト JIS ですけど?
0972デフォルトの名無しさん2015/08/09(日) 21:40:02.06ID:MwH/TAN+
大丈夫だ、2015でもCP932のままだ
0973デフォルトの名無しさん2015/08/10(月) 05:15:36.78ID:joKVIITR
Windows10のcmd.exeまだchcp65001のバグ治らないな
0974デフォルトの名無しさん2015/08/10(月) 08:39:31.31ID:woEY2l+M
>>973
もうほとんどやる気ないでしょ
この部分だけでいいからソース開示して有志に改造させて欲しいわ
0975デフォルトの名無しさん2015/08/10(月) 09:29:36.92ID:Y9npztmj
同意

だけど git for windows だったかなんかについてくる UTF-8 対応の cmd.exe っぽいのは結構使える
0976デフォルトの名無しさん2015/08/10(月) 09:37:10.95ID:7mEm0oAX
今どきCLIとか石器時代の生き残りかよ
0977デフォルトの名無しさん2015/08/10(月) 10:58:28.36ID:lE/gCziL
だがまあgitに限って言えば
GUIだけでは心もとないのもたしか
0978デフォルトの名無しさん2015/08/10(月) 15:32:34.36ID:iHuYT/si
テキストベースは便利なんだよ
自動化とか簡単だし、それをgitで管理できるから
0979デフォルトの名無しさん2015/08/10(月) 17:41:57.41ID:24CTSkEb
CLIはデプロイツールと親和性が高い
0980デフォルトの名無しさん2015/08/10(月) 18:43:19.26ID:wnxGShdH
自動化に関わるツールはCLIがないと困るよね
0981デフォルトの名無しさん2015/08/10(月) 20:12:09.12ID:Mkjl0645
git pullで新しい更新を取り入れた時に指定したシェルスクリプトを実行したいんですけど
フックの名前を教えてください
0982デフォルトの名無しさん2015/08/10(月) 20:12:45.22ID:Mkjl0645
俺はGUIの見方がよく分かんないからCUIしか使ってないよ
0983デフォルトの名無しさん2015/08/11(火) 06:26:57.50ID:/JNKK5gi
>>981
新しい更新がマージされたのを契機に処理をしたいなら post-merge になりそうだけど、
リモートからコミットがfetchされてそれがマージされたのかどうかは自分で判断しないといけないんじゃないかな
レス数が950を超えています。1000を超えると書き込みができなくなります。