3 :
デフォルトの名無しさん:2014/04/12(土) 15:13:56.03 ID:hrYZFkTS
頭悪すぎで話にならないID:s4x1CSLNはng推奨
>>9 ここGitのスレだからGitHubメインでGitのことがほとんど書かれてない本はお門違いじゃないの
>>11 GitHubスレいけができなくなるがよろしいか
format-patchで、
本線だけのパッチって作れないんでしょうか?
マージコミット部分ではマージされた区間をsquashしたようなパッチが生成されて欲しいのですがムリでしょうか?
>>13 詳しく調べてないので外してたらすまんが、マージコミットをパッチにはできなかったはず。
ベースになるコミットから現在のHEADまでマージコミットについてはmerge --squash しながら再構成、
新しいHEADとオリジナルのHEADをdiffして漏れがないのを確認後、format-patchするとかでどうかな。
>>12 本の紹介でしょ?
そんなに毛嫌いするほどのことなの?
>>15 Gitに関係ないGitHubの話や質問をここですることを受け入れるかということです
>>16 本を紹介すると
> Gitに関係ないGitHubの話や質問をここですることを受け入れるかということです
になるんだ...
なんかの宗教なの? (w
GitHubはGit関係なので
話題にしてOK
祝・GitHub解禁
gitやるなら、gitコマンドだけじゃなくて
gitを使った開発手法も対象内だし、
gitサーバーやgitワークフローもgitの話題の一つ。
GitHubはそのサーバーとワークフローのためのツールなんだから
このスレで全然問題ない。
OpenSSLにすごいバグがあるらしいけど、OpenSSHは大丈夫なのかな。SSHでgitサーバに接続してます。
>>20 BitbucketとSourceForgeもいけるね
やったー
>>22 はい、そのとおりですよ。
gitサーバーとしての使い方なら
問題ありません。
git 単体で ITS なしの運用って辛いな・・・
なんでメールのみでのやりとりなんだ・・・
ITSって何だ?
29 :
デフォルトの名無しさん:2014/04/14(月) 14:48:38.62 ID:pS18deUR
発行追跡システマ
>>28 おぉ、さんきゅ。
ITSだけでググっても、明らかに関係無さそうなヤツしか出てこなかったから何かと思ったよ。
関東ITなんちゃらとか、なんちゃら交通システムとか。
関東ITはなかなか良いぞ
>>14 レスありがとうございました!
やはり再構成していくしかないですよね。
そんな感じでやっていこうと思います。
Gitって色々あるけどどう違うのかわからない。
GitHubのアカウントをとってみたり、
>>8のリンク先を見たりしたが
色々種類があってわからない。
やりたい事は「プログラムのバージョン管理をしたい(Gitはそう言う用途だからあたりまえだかけど)」と言う事と
何より重要なのが「ソースコードを誰にも見られたくない」と言う事くらいかな。
後は、「どこにいてもソースが落とせる」ってのもある。
GitHubはTwitterみたいなUIだから「どこにいてもソースが落とせる」って事はできそうだけど色んな人から見られそう。
>>8のはローカルで管理する感じなのかな?
良ければ初心者に簡単なGitを教えて下さい。
34 :
デフォルトの名無しさん:2014/04/15(火) 20:33:20.49 ID:D1Ol4DiB
「ソースコードを誰にも見られたくない」ならローカルで完結させるしかないね
たくさんあるってどういうこっちゃ。クライアントプログラムは色々あるかもしれんが git は一種類しかないぞ。
github は git を使ったホスティングサービスであって git の一種ってわけじゃない。
ホスティングサービスどれがいい?って質問なら↓の方が回答もらえるんでないかな。
・OSSホスティング総合【SourceForge,GitHub,etc..】
ttp://toro.2ch.net/test/read.cgi/tech/1384821518/ 他人にソースを見られたくない場合は
・自分で git のサーバを建てる
・ローカルで使う
・プライベートリポジトリをサポートしてるホスティングサービスを使う(大抵は有料)
github もプライベートリポジトリサポートしてるけど有料だね。パブリックだと無料だけど。
自分でサーバを建てる場合も自由になるサーバ持ってないならどっかから借りなきゃいけないから有料になる。
初心者ですが、
Gitの説明でよくブランチの分岐が書いてあってそれでrebaseだcherry-pickだ等々
説明が書いてあるけど、
このブランチの構造自体は皆さんgitのログとかから頭の中でイメージしたり
できるんですか? 自分にはまずそこが問題w
VPSを自分専用のgit鯖にしてる。
って、ssh開けるだけだから、鯖という言い方もおかしいか。
自宅鯖が安心最安だろうけど、1k円/月くらいあれば安いVPSあるんじゃないか。
>>36 git graphっていう、よく出回ってるalias見て理解してる。つもり。
git log --gragh --all
でツリー出てくるよ。
コミットログの書式短いのにした方が見やすいけど。
とりあえずならこんな感じか
git log --graph --all --decorate --oneline
自分はこれだとちょっと表示が気に食わないので、
--decorate --onelineの代わりに--pretty=formatで表示を加工してる
俺はDropboxにbareリポジトリ置いてるだけだ。
壊れるのが怖いから時々zipに固めてるけど。
>>34-35 ありがとうございます。
>>8を見ながらインストールしてみました。
取り合えずローカルで使う予定なのでコミットまで一通りやってみました。
ローカルで使うならリポジトリの共有以降は不要ですよね(Gitとしての恩赦も薄そうだけど)
皆さんはリモート使って他の人と共同で何かを作ってるんでしょうか?
仕事で使う以外はローカルでも不便しなさそうですが、勉強のため開発と平行して使い方を勉強していこうかな。
リモートリポジトリを使った共同作業が git の本領発揮するとこだから読んでおいたほうがいいと思うけどな
一人で使ってるんだとしても、作業用のローカルリポジトリとリモートの(別にリモートじゃなくてもいいが)マスターリポジトリが分かれてると
push/pull のタイミングでコミット纏めたりとか出来て都合がよかったりするし
自分は githubでプログラム書いたり設定ファイル載せたりしてる
基本的に自分ひとりで書いてるけど誰かが勝手にバグ直してパッチ送ってきてくれたりして楽しいよ
逆に公開されてるソフトなんかで気になる部分を修正してパッチ送ったりとかね
とりあえずアカウントでもとって練習用として色々遊んでみたらいいんじゃない
>>36 githubフローに近いやり方で開発している。
自分が開発しているブランチがどこから分岐したかとかは一応把握してる。
それでも忘れるけど忘れたらgit log --decorateで確認するだけ。
自分が作業中のブランチはそんなに多数に平行して
開発するわけじゃないので、数個にしかならない。
他人のブランチの状態や過去のブランチは何も考えていない。
知りたくなったら調べるけど、基本的に無監視。
気にしてるのは、masterが更新されたかどうか。
基本的に自分のブランチは「masterの最新からの開発」という形にしたいから
誰かがマージしてmasterが更新されたら、git rebase masterして
masterの最新からの開発に配置し直す。・・・ってのを定期的に行う。
あとは単純にmasterにリベースしづらい時とか、一時的に他の人のコミットを取りたいとか
なんかミスってコミットを整理し直したいとかイレギュラーな作業でcherry-pickを使う程度。
まあ分岐しまくってそれを把握しなきゃってことはまずないよ。過去は忘れて、自分の現在の作業分だけ。
VS2013でgit使ってるか?
どうやるの?
>>36 初心者はgitk --allでビジュアルに状態を確認しながら
雰囲気をつかむと良いと思う。
あと、「開発・バグフィックスはすべてトピックブランチを作って作業する。」
「トピックは原則としてmasterから分岐する」などのルールを設けて、
確認しないといけないこと(分岐元がどこか、とか)を減らす。
統合ブランチは master またはmasterの先端に作った使い捨てブランチだけにして、
マージ状況は log --oneline --first-parentで俯瞰するなど
ワークフローを工夫すれば、正確なコミットグラフをイメージしなくても
だいたいの状況を把握できるようになる。
たまーに他人のコミットとコンフリクトしまくったりマージのミスでバグが混入したりするから、そういうときにコミットツリーをよく確認したいときは、
SourceTreeとかGitHub/BitBucketとかのサービスで詳細に把握しようと思うことはあるかな。大抵はそこまで把握しなくてもトラブらないけど。
それってツリー見てなにかわかるん?
というよりbisectだよね
自動ビルドテストしようず
GitHubでプルリクエストすればマージ前でも自動テストしてくれるみたいだからリモート環境だけでテストできるんじゃないの
やったことないしどうせ自動化のテストはローカルでしなきゃならんけど
そういやbisectで思い出したけど、
テストコードをしっかり書いているとする。
バグが何処かで混入されたとして、
それを見逃したということはテストコードがなかったということになる。
そこで新たにテストコードを追加する。
さて、このテストコードを使って、どこでバグが混入されたかを
bisectで調べるにはどうしたらいいだろう?
git bisectをするたびにコミットが変わるのはいいんだが、
そのコミットには当然追加されたテストコードは含まれていない。
やばい、酒ははいってて、何を書いているのかわからないwwww
おーい、ちゃんと文章なりたってるかー?w
>>49 上手いこと説明できないが、ツリーがないよりあったほうがマージのやり直しはしやすい気がする。たぶん自分が関わってるプロジェクトの特性上のものだと思う。
まあ、ツリーだけってよりは1個1個コミットを見ていってそのローカルブランチではなにをするつもりだったのかとかを解釈していくという方が重要なのだろうけど。
>>51 インタラクティブなアプリだと自動でのビルドテストがかなり難しいんだよね。
OpenGLとかメディア系ライブラリと各種センサを使ったアプリとかだと、描画が想定通り行われてるかとか、ムービーが正しく再生されてるかとか、
センサの値が正しく反映されてるかとか、そういうものをテストコード書くのが難しすぎる、というか結局人間が解釈しないとOKかNGか判断できないものが
多すぎてTDDしづらいんだよね。ゲームとか典型例なんじゃないかな?
>>54 そりゃ無理だな
UIが複雑なのはテストの維持がめんどすぎて割に合わない
>>52 git bisectはコミットされてないdiffを各コミットに適用してくれるから、
テストコードを自動マージできるように書いて
それをコミットしないままbisectすればできるよ
漏れはソースを他人に見せたくて仕方がない
露出狂鴨試練
git statusをgit sだったりgsにエイリアスを設定して短くするやり方ありますよね
これgitの開発人たちに公認公式のエイリアスの設定方法って公開してませんかね?
alias の設定の「仕方」なら公認公式もへったくれもなく今やってる方法が公式だろうと思うが
大抵の人が設定してるであろう、一般的な alias の一覧みたいなのないかってことかね
git config alias.変更表示 diff
こんなのがあったところで使うかよw
そんなの自分の自由
shellのalias使えば良いだけじゃね?
git sとか一意に出来るところまであれば自動で補完して実行する機能をオンオフ出来れば良さそう
>>56 サンクス
コミットしないままbisectできたのか。
まあ確かに動き的にはcheckoutしているだけだもんな。
>>58 subversionを真似したら?
短いエイリアスがあるから。
gitのコマンドが長いのは、短縮は自分で好きなの
割り当る用だと思ったりもしてるんだけど
なんか理由あるのかな?
設定してあるエイリアス晒してみる
st = status
ci = commit
co = checkout
br = branch
dif = diff
difc = diff --cached
lo = log --oneline
lf = log --first-parent
lof = log --oneline --first-parent
statusはsだろうが
commitはcだろうが
きめえよ
一番良く使うstatusとかlogはシェル関数で置き換えちゃってるな
gst = git status -s -b
glo = git log --graph --branches --remotes --pretty=format:'%C(black white)%h%Creset%C(blue bold)%d%Creset %s'
>br = branch
わかる
>dif = diff
まぁ、わかる
>ci = commit
どういうことなの
せめてcmでしょ
>>68 俺はかつてCVSユーザだったんだが、
CVSのcommitはciというエイリアスを持ってたんだよ。
SVNもciはcommitのエイリアスになってるだろ?
といってもそもそも何でCVSのcommitがciなんだよ?って話だよな。
CVSは当初、その前に流行した単一ファイルバージョン管理用RCSにかぶせてつかう
ディレクトリツリー管理拡張のためのラッパースクリプトとして登場した。
RCSのコミットに相当する操作はcheck inと呼ばれ、コマンドはciだった。
CVS, SVNはそれを継承してるというわけだ。
現在でも主要なディストロはだいたいRCSのパッケージを持ってて、
インストールすればciコマンドを使えるぞ。
ちなみにRCSのcheckoutは当然coだから使い方はmanを見てくれ。
ci co は結構多いと思うぞ。
過去の VC の流れで。
checkinの略だったよね?
そうなんか、知らんかった
調べたらmercurialもciなんだな
branchはbだろうが
diffはdだ!
一文字だと不安(?)なのか二文字が多いなgithubだと
2文字派か1文字派か。主要コマンドは比較的統一してる人多いね
cがかぶりやすいからだなw
おれはねエイリアスでgit revertをecho ""に設定している
危ないコマンドや初心者が過去を隠すために使うようなコマンドをあえて禁止している
git revertは危なくもないし過去を隠すコマンドでもないだろ
むしろイケてない過去のコミットを無かったことにできるのがgitの利点かと思うが
revertを禁止にするならresetも禁止にするべき
前進あるのみ
え? エイリアスの話?
俺は、
bisect bad に bisect-fixed を
bisect good に bisect-unfixed を
割り当ててる。
便利だよ。
晒してみる。省略形は多用するとクセになるから避けてるなぁ
[alias]
serve = daemon --reuseaddr --base-path=. --export-all --verbose
stat = status --short --branch
exec = "!exec "
>>36ですが皆さん(
>>38-40 >>44 >>47 >>48)アドバイスをどうもありがとうございます。
いやーgitをよく知らないままgitで大勢でメンテしているプロジェクトに送り込まれて
しまいまして。
とりあえずgitkとかで表示してみました... うわっ、平行な線が沢山走っている部分が!
なんか宇宙戦艦ヤマトのワープの図を複雑にしたような(たとえが古いか)
線が沢山集中した部分でチェックアウトするともの凄い速度で開発できたりとか
開発する人数やワークフローにもよるけど、平行な線は
沢山あるべきじゃないよ。マージしづらくなるからね。
>>84 > 線が沢山集中した部分でチェックアウトするともの凄い速度で開発できたりとか
むしろそこは多量のブランチをマージしたところなのでものすごい速度が落ちてるとこじゃないかな
初心者ですけどリポジトリを作ったフォルダの中が管理対象になるんですよね?
でそのリポジトリを削除するとソースファイルまで削除されるんですが
もちろんブックマークだけ(sourcetreeで)の削除はできるのですが
間違ってハードディスク上のリポジトリを削除してしまったら大変です。
何か対策はあるのでしょうか?それともこういうものなのでしょうか
そりゃそうだろう
リモートにあろうがローカルにしかなかろうがリポジトリ物理的に消したらなくなるわな
大事ならバックアップとっといたらいい
bitbucketあたりにアカウントとってそっちにプッシュしておくとか
ローカルのみで使おうと思ってたのですがリモートにも上げた方がよさそうですね
Dropboxにリポジトリを作るやり方はここの先輩方はやってますか?
>>84 gitkはgit log(というかgit rev-list)と同じ範囲指定が可能だから、
--allで表示が多すぎるなら表示範囲を適切に限定してやればよい。
特定のtopic(ここではmasterから分岐したとする)とmasterにだけ注目すればいいんなら
gitk master..topic (masterから分岐後のtopicのコミットのみ表示)
gitk master...topic (masterから分岐後のtopicのコミットとmasterにマージされたブランチを表示)
とか。範囲指定は複数回可能なので関係する範囲を好きなだけ指定すればよい。
>>91 .zshrcとか.vimrcとかをつっこんだリポジトリはDropboxにbareで載せてる。
gitignoreで
/*
/.*
このふたつを指定しているのをたまに見かけますが
はじめに/*ですべてのファイルを除外しているので/.*を書く意味は無いと思うんですが何故書くのですか?
ドットで始まるファイルは * のワイルドカードにひっかからない仕様になってる。
シェル由来だね。
なにそれバグだろ
クソだなgitって
98 :
デフォルトの名無しさん:2014/04/21(月) 20:57:12.01 ID:1sDt+ic8
無知発見
餌を与えないでください
gitは糞だからsubversionを使え
やだGitじゃないと
VSS、これ最悪でした。
チェックアウトされたままコンパイル通らない状態で担当者休み。どーすんの?
でもMSじゃないと駄目、OSSなんか信用できないとかで泣く泣く使う現場多数。
それに比べるとSubVersionかなりマシだけどオフラインな状態でコミットできない。
ちょっと痛い。
バージョン管理はgitしか使ったことがない
SVNは何がなんやらサッパリわからないから使えない
>>101 × SubVersion
○ Subversion
オフラインの状態でコミットできないとか言ってるけど
コミットしたところでローカルにあるだけだからオンラインで他の奴がお前のリポジトリに
アクセスできなきゃ何もかわらんだろアホか
例えばあなたが飛行機で移動中に10項目ぐらいの作業して
帰社してコミットする時にコメントに10項目だらだら書くの?
やーだー
移動中に仕事するようなワーカホリックになりたくないわ正直
一例として挙げただけなのに。想像力無いなあ。
セキュリティ的なこと考えるとオフラインでソースにアクセスってあんまりないんだよね
>>97 いわゆるシェルは.(ドット)で始まるファイルは隠しファイルとしている
隠しファイルは ls *.conf とかで表示されない (.hoge.conf とか)
そんな時に rm *.conf して普段表示されてないファイルが消えるのは困る
だから * だけでは隠しファイルにマッチしないようになっている
ちなみに git が内部でどう処理してんのかは知らん
ふつーにfnmatchでは
commit A
commit B
commit C
commit D
commit E
commit F
と順番に作業して
あとから B から D をまとめて
commit A
commit b(B-D)
commit E
commit F
としたいときはどうすれば・・・
2.0って来月でる?
>>111と反対に、一つのコミットであるbを
B-Dに分割したい時どうしてる?
俺はrebase -i
rebase -i はいろいろ便利だよな
ただ慣れないと指定にちょっと戸惑う
>>111みたいにB以下をいじりたい場合だと rebase -i A ってしなくちゃいけないんだよな
それと、まとめたり順番入れ替えるだけなら操作は簡単だけど、バラす場合はちょっと操作がややこしい
git rebase -i のコミットの表示順とgit logの表示順が逆なのは何故なんだぜ?
逆に表示するオプションあるけどグラフ表示とは併用できませんし。
logは新しい順に表示しないと不便だと思うし(見たいのは最新の辺のことが多いよね)
rebase -iの指示書は、前のコミットにまとめるとかの指定することを考えると古い順に並んでたほうがわかり易い気がする
まあ、自分は慣れてしまったからかもしれないが
rebase -i ^_^b
最新のコミットだけプッシュする方法と
最新のタグをつけたコミットだけプッシュする方法
2つおしえてください
なぜかというとコミットログからニートがバレるのでコミットログを全部プッシュしたくないからです
githubのコミットログからニートを検索するツールはよ
その前に日本人を探すツールが必要だ
>>122 git filter-branch --env-filter 'GIT_COMMITTER_DATE="Thu, 01 Jan 1970 09:00:00 +0900
"; GIT_AUTHOR_DATE=$GIT_COMMITTER_DATE' --all
コミットログに日時変えればいいだけじゃん。
git init
git 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.
なんもコミットされてないとこうなるんですがどうしてこうなるんですか?
>>128 その状態だと、HEADはrefs/heads/test向けのsymbolic-refになっているが、
そもそも指すべきコミットがないのでrefs/heads/testは存在しない。
よってbranchも何も表示しないし、checkoutもできない。
仕様なんですか
一番最初のコミットが汚れるのがいやですね
rebaseすればいいじゃんw
俺は、とりあえず空コミットを作る。
かもしれないし、作らないかもしれない。
>>130 つまりコミット無し状態でブランチを複数作りたいということ?
漢がrebaseなんて許せないタチなんですよ
コミットなし状態からブランチを分けて開発したいんです
基本的にmasterは汚したくないのです
subversionがだめな理由が
rebaseできないからなんだけど?
それぐらい、というかそれ以上に
よく使う機能だぞ。
汚くしないためにrebaseがある。
>>133 129で言ったようにHEADが存在しないrefを参照していればgit initした状態と同じなのだから、
二個目のブランチを作るときにgit checkout -bではなく
git symbolic-ref HEAD refs/heads/branch_name してから開発を進めればいいじゃない
>>133 そこまで潔癖ならマージもしないだろうからブランチじゃなくてリポジトリを分けたら?
master汚したくないっていうのが出来たとして、
1つ目のcommitがあって、それがtestブランチだとする。
が、masterはこのcommitから辿れる親コミットも指してないし、どれも指していない。
fast forward mergeできない状態だけどいいの?
どうせmasterはなにかしらコミットした段階で一番汚されてなくたってそのコミットを指してしまうのだから、コミットしてからチェックアウトしてもいいじゃん。
mergeする予定無いのにブランチ切りたいとか意味不明すぎる
空コミットじゃあかんのか?
つか空の.gitignoreくらい作ってからでも汚れとは思わんぞ
気に入らない部分があってもgitを使わざるをえない人は大変だね
個人の趣味でやってるならVCSは好きなのを使えるのにね
気に入らない部分が、git以外には多すぎる。
142 :
デフォルトの名無しさん:2014/04/25(金) 05:28:33.42 ID:cdj1D6xv
だねー
俺はローカル全部svnだわ
3つ前のコミットに戻ってブランチを分岐したい場合ってどうすればいいのでしょうか
3つ前に巻き戻してからブランチするのでしょうか
最後の2つのコミットも念のために残したいのでブランチにしたいのです
具体的には
最後の2つのコミットの変更が破棄になったけど
念のために残したい
という状況です
三つ前のコミットIDから
ブランチ作ればいいじゃん。
>>134 rebaseはブランチ取り込むときにontoと組み合わせて使うことの方がおおいなぁ。
コミットログの都合もあるから履歴整理にはほとんど使ってない人がここに。
なんでブランチ取り込む時にontoなんだ?
普通にマージかチェリーピックすればいいだろ。
そのための機能なんだから。
やり方がわるいんかな?
複数のブランチ平行したときとかontoつかってカットする感じに履歴いじらないとFFになってくれないことが多かった。
onto使ったら必ずほぼ確実にFFできないだろ?
なんか無駄に複雑なことしている気がするな。
ホームディレクトリ以下の設定ファイルだとか、個人で使ってる自作ツールはSubversionで管理してる
ブランチ分けるどころか、リポジトリも1つだけで全部まとめて入れてる
そういう使い方するとGitよりSubversionが使いやすい
>>150 いや、ディレクトリがわかれるだろ?
subvertionを使うと、
* ファイルがあるディレクトリ
* リポジトリ
と二つにディレクトリがわかれるだろ?
それだけで使いづらいじゃん。
?
>>151 全くその通りなんだけど、svnしか使った事のない人には多分理解出来ないと思う。
リポジトリを1つだけだとさ
じゃあ例えば
C:/php/.git
C:/php/bbs
C:/php/wiki
C:/php/cms
みたいなのがあって、C:/php/cmsの履歴だけ戻す場合とか苦労するぞ
なぜリポジトリを一つにまとめるのか?
リポジトリを作るのが面倒であるということである。
リポジトリをたくさん作るとその数だけcheckoutしてpull/updateしてcommitしないといけない
自分一人で使うだけでそんな面倒なことしない
subversionだと、このようにpullやupdateや
commitがすごく大変で間違えられない作業なので、
このように避けようと思うようになります。
gitだと気軽なのにね。
cvs使ってた10年以上前は、私もひとつのリポジトリでやってたことがありました。(*ノωノ)
一人でしか使わないんだからコンフリクトなんかしない
commit間違えたらもう一回commitするだけ
開発頻度の低いファイルの管理にgitは過剰
>>159 コンフリクトかどうかは
重要じゃないよ。
gitが便利なのは過去を修正できるって所。
一人でやっていても、簡単なミスはするもの。
追加漏れのファイルを追加
スペルミスの修正
こんなマヌケなコミットを残さないで済む。
subversionが残すのは"作業"履歴なんだろうね。
gitが残すとのは"修正"履歴
だからsubversionは、いろいろ作業したものが
そのまま残って、あとで、で結局何をしたかったの?って
わけがわからなくなる。
gitは修正履歴だからこのコミットで何を修正したかが
はっきりするから、ある修正を取り除こうとした時も簡単。
subversionだとある修正を取り除くとき
それに関する作業を洗い直さないといけないけど、
gitだとそのある修正に対するコミットがどれかはすぐに分かる。
subversionだと作業履歴が残っちゃうから
ちょっと気軽にコミットしようということができない。
gitだとちょっと一旦ここでコミットしておいて
少し違う作業をとか、こまめにコミットしておいて
あとでまとめようとか、一つのファイルの修正のうち
一部分だけをコミットしておこうとか簡単にできるが
subversionだとこまめにコミットしたら
その内容がずっと残る。恥ずかしいから
こまめにコミットできない。
あとでまとめてやるからいろんな修正が混ざってしまう。
.bashrcや.inputrcが数千行になったらgitの導入を考える
HAHAHAHA、基準がおかしい奴がいる。
こういう奴がgitに反対しているわけさ。
bareめんどくない?
だいたい.screenrcに対する特定のコミットを取り消すとか、そんな必要性感じたこと一度もない
面倒くさいなら作らなくていいよ。
bareは必須ではない。
gitを始めるのに必要なのはディレクトリで
git initするだけ。
これでもうすぐにブランチ切り替えも
タグの作成もできる。
某subversi○nみたいに
わざわざtrunk、branches、tagsディレクトリを作って
コミットなんて面倒なことしなくていい。
>>166 君は.screenrcの管理とかしかしないんだねw
えぇ、subversionは面倒だからでしょうね。
気軽に始められないw
いや、何の事かわからないが、subversionでもgitでもどういうブランチ構成にするかはその人次第だから
>>169 gitではブランチはブランチという機能なんで
subversinoみたいに、ブランチディレクトリ(branches)なんてのを
作る必要はないんですよ。
だからgitではブランチ名だけで、作成や切り替えが可能です。
いちいちディレクトリ(branches)書く必要はありません。
こんなの、き・そ・! です。
おっ、そうだな
いや、初めからブランチ作らないって言ってるし、.my.cnfでも.pgsqlでもなんでもいいが、ブランチ切って修正を分ける必要性を全く感じない
※
>>173 は「俺は日付毎のディレクトリを作るだけで十分」と言ってるのと同じだと見てあげましょうwww
なんでこの人こんなに発狂してるの・・・
別に git はゴミ!とか貶してるわけじゃないのに
世の中には.ssh/configをテストファーストで日々更新してる人もいるのかもしれない、そういう人にはリリースと開発でブランチを分けてるのかもしれない
俺はそんなことしてないけど
subversion使っている人は、みんな
ブランチ作らないって言ってるんでしょうかね
みんなブランチ要らないと言っているのであれば
subversion使っているだけで、アホとみなして良さそうですね。
実はブランチ作れないの間違いでしょうかねw
面白いですねwww
subversion使っている人には、
ブランチの必要性から説明しないといけないのでしょうか?www
>>173 お前がブランチ作らないとかどうでもいいわ。
バージョン管理システムにおいて
ブランチは重要な存在であり、
subversionがブランチの管理が面倒だという事実に
代わりはないんだから。
それともSubversionの一般的な使い方において
ブランチは使うべきではないと言うつもりかい?
いや、ホームディレクトリ以下の設定ファイルという前提なんだけど
個人の.bashrcを開発ブランチとリリースブランチに分けて更新するのが一般的という認識はなかった
ホームディレクトリ以下をgitで管理しようと思うのならば、
git initするだけでもう使えるよ。
subversionはそれだけで面倒。
最初の一歩の時点でもう負けてるんだ。
なんか話を一般化して叩いてるけどホームディレクトリ内のファイルの管理ぐらい好きにやらせたれや・・・
自由にやっていいよ。面倒な方法だって言っているだけだから
別に面倒な方法だってわかってやってるなら問題ない。
面倒じゃないどころか、Subversionの方が簡単だって言い出すから悪い。
gitはgit initですぐにgit管理が始められるのに、
それよりも手間がかかるsubversionが簡単なワケがない。
せめて反証を出せと。
>>181 なんでリポジトリを別の場所に置いたらダメなの?
特にマシン間で設定フィルを共有する場合、中央リポジトリが必要になるのは同じなんだから
まあそこら辺は git スレでわざわざ頑張る内容ではないだろな
>>184 > なんでリポジトリを別の場所に置いたらダメなの?
ダメなんて言ってないだろ。
面倒だって言ってるだけ。
gitでも当然のようにリポジトリを別の場所におけるわw
だけど、リポジトリを別の場所に置くのは面倒。
必須でない作業なのだから、オプションであるgitの方が簡単。
少なくともその意見はsubversionの方が簡単だという理由にはなっていない。
リポジトリを別の場所に置くしか無いという欠点しか言っていない。
>そういう使い方するとGitよりSubversionが使いやすい
これは「俺にとっては」ってのが頭につくだけの話でしょ。
別に白黒付けるもんでもなかろうに。
>>187 じゃあ、俺は、
「多くの人にとっては」って頭につけることにするよ。
お前ん中ではそうなんだろうなw
お前ん中では、設定ファイルの管理にぐらいしか使わないんだろうな
まとめ
(俺にとっては)Subversionの方が簡単
俺にとってはって、君、Subversionを何に使ってるの?
設定ファイルの管理だけど?
ブランチは使わない!
でもブランチやタグを使うと面倒だよね?
だから、俺はブランチは使わない!
ふーん、そう、それで何が簡単なの?
git なら git initだけで初められるけど。
gitで別の場所にリポジトリを置いてみなさい。
subversionはそれと同等!
いや、同等って、それ簡単ということになってないじゃん。
ブランチ使わないって前提の話で、subversionはブランチ作るのが面倒とか的外れな反論しておかしくなった
ドットファイルをブランチに分ける事は基本ないわな
>>190 俺はブランチを切りまくって、そいつらをマージしたものをマシン毎につかってるな。
いつのまにか47もブランチできてたわ。
Unix系のツールの設定ファイルとか複数の環境で使いまわすことが普通だし
最終的にはどんな環境でも一つの設定ファイルで動くようにまとめることが多いけど、
一時的に特殊な環境用にカスタマイズとかブランチ切って編集してるね
暇なときにマージして統合
>>148,149
たとえば
$ 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するのが普通?
>>193 $ git rebase --onto master 9d47912 branch1
の間違い、 行数削ったときに直すのわすれてた
だからなんでFFに拘るんだよ
>>193 あと、普通は
git rebase master branch1
で済む。
FFはCoolだかr
>>196 その通りだね。
やっぱり無駄なことしてるじゃんw
onto使う必要がない所でonto使ってた。
199 :
デフォルトの名無しさん:2014/04/27(日) 05:35:56.46 ID:/n7QikUK
svnでわざわざtrunk、branches、tagsディレクトリを作ってコミットなんて面倒なこと
ただの一度もしたことねえわ
まあ、そういう変な人もいる。
>>198 なくても平気なのかー、単純にrebaseするだけじゃダメな時あったんだけどなぁ、まっいっか。
FFこだわるのは、FF縛りがあるから。
202 :
デフォルトの名無しさん:2014/04/27(日) 10:13:05.46 ID:+jGSbN4U
俺は、FFT派
git覚えたての子が暴れてて凄いなこのスレ
204 :
デフォルトの名無しさん:2014/04/27(日) 16:48:41.84 ID:/n7QikUK
git派は自分のやり方以外は認められない原理主義者が多いんだろ
>>201 リモートから取り込んだコミットを
ローカルで改変してたりしないか?
開発用の修正を間に挟んだりとか。
Gitについてはさわり中のさわりしか書いてないからまともにGit使おうと思ったら別の入門書買い足すことになるってだけだよ
>>207 > この本買ってみた。題名とは違うがGitそのものの入門的な解説もちゃんとあるな。
でもGitの入門的な解説としてはよろしくない印象。
diff --cached を書いてなかったり、不自然な reset の例を示してたり。
まぁそれが主題じゃないからいいんだけどさ。
>>201 > FFこだわるのは、FF縛りがあるから。
何がなんでもrebase && FF派ってやっぱlogが一直線になるのが嬉しいのかね?
俺的にはlog --first-parentで要約できないほうが辛いんだが、
もし他にrebase && FFの利点を知ってれば教えてくれ。
まっさきに思いついたのは無能なPMに強制されてるという理由だったが
もうそろそろ2.0リリースされそうだけど使ってる?
2.0は5月の第三週あたり
214 :
デフォルトの名無しさん:2014/04/28(月) 05:49:30.90 ID:G/O2/oE+
プロジェクトいくつも首突っ込んでればリポジトリなんてすぐ数十にはなるわけで
手作業でpullだupdateだとかいちいちやるかよ
そんなもんはスクリプトで一括でやるもんだ
Gitはリポジトリ数十になってもpullとか手作業でいいと思うが?
どのプロジェクトが何の言語で書いたのかわかんない
githubのリポジトリに言語名/プロジェクト名で名前を付けても
スラッシュがハイフンに変換されるか不便
どの言語かなんて気にする必要ないだろ。
言語は変わるかもしれないし、複数の言語で
作られているかもしれないんだから。
言語名を頭に入れるという考え自体がおかしい。
Git 2.0になって.gitconfigも変わる?誰か調べてる人いる?
Gitインストールするときにタグ指定し忘れて開発版の最新2.0をインストールしたんだけど特に不具合ないんだよね
リリースノート読む限り大きな変更はgit pushのデフォルトがsimpleになることくらい?
自分の場合は既にsimpleに設定してたし
git addでパス省略ってやらないし影響なさげ
でも暫くは移行しない
>>210 FFは、利点がーというよりも、うちはリリースの終わったbranch削除しちゃうので一直線にまとまっていないと、都合悪いだけかな?。
btanchは開発工程の作業場所としてわりきってる。
>>221 FFじゃない状態でブランチマージしてから、そのブランチを削除すると何が問題になるのですか?
もしかして削除したランチに属していたコミットが消えちゃうのですか?
>>221 どういうふうに都合わるいのか詳しく頼む。
mergeコミットが残ってたほうがブランチの情報が残るという認識なんだけど。
修正履歴を残したいのに履歴をいじるのはおかしい
rebaseなんてGOTOと同じくらいいらない
はぁ?
わざわざログを壊してまで見やすくしようっていうのがいらねえんだよ
コミッターが何をしたのか把握できないだろう
そういうのはタグで管理するべき
rebaseを使うのは下手くそが使うコマンド
議論が変な方向に行くのがイヤなんで一応ハッキリさせときたいんだけど、
俺が気にしてるのは rebase && FF マージね。
master(統合ブランチ)にトピックの作業を取り込む際に rebase してから
FF merge するってやり方のこと。これをやりたくなる意味がわからない。
他の目的のrebase自体は問題ないと思ってる。
masterにブランチをマージするときに、そのブランチのベースがどこだったかという情報に意味があるか
意味がないならrebaseしてからのほうがログが読みやすい
どこで作業を行ったかの記録も重要である
余計なことはするな
>>229 > masterにブランチをマージするときに、そのブランチのベースがどこだったかという情報に意味があるか
どういう場合にベースを意味がある(または意味がない)くわしくたのむ
俺にとって重要なのはブランチの目的とその目的に向かってコミットがどう積み重ねられたのかであって、
ベースがどこかは明示的にはあんまり気にしないんだが。
FFマージじゃなければ統合ブランチの履歴を log --first-parent で要約できるのと、
マージコミットのログなどに表示される親コミット2つ使って
git log deadbeaf..cafebabe
のようにトピックのログだけ簡単に取り出せるのが便利なのに。
後者は内部で merge-base 使ってるのでベースに意味があるのは確かだが、
だとすれば常に(俺にとっては)意味があると言える。
コミッターが行った作業をありのままに記録するべき
はたして捏造された記録に意味があるのか
>>224 コミットログとしてほしいものは、
修正の履歴であって作業の履歴じゃない。
コミットして1分後に気づいたタイポの修正なんか
修正の履歴として残す価値はないはない。
レビューを誰かに依頼して見つかったバグの修正なんか
修正の履歴として残す必要はない。
このコミットで何を修正するのかを明確に記録するには
rebaseは必須の機能。rebaseの機能なしで同じことを
やろうとしたら大変すぎて断念するレベル。
反論できる?
その修正の裏に気づかずに別の箇所を修正しているかもしれない
不具合がそこにあればそこのログをみなければならない
でもそれを消しちゃったら困るよね
>>228 > master(統合ブランチ)にトピックの作業を取り込む際に rebase してから
> FF merge するってやり方のこと。これをやりたくなる意味がわからない。
rebaseしないでmergeしようとするとコンフリクトが起きる可能性が高い。
masterへのmergeで起きたコンフリクトをその場で修正すると
バグを入れる可能性が高くなる。
コンフリクトが起きなければ問題ないが、いざマージしようと思った時に
コンフリクトが起きたら、修正する必要がある。
masterへの追尾が遅れれば遅れるほど、コンフリクトが起きる可能性も高くなるし、
コンフリクトが起きた時の修正も大変になる。だからこまめにmasterへrebaseしておく。
その一環として、最後にrebaseしておくだけのこと。
そうすればレビューアーも安心してレビューを行える。
もしかして一人での開発しかしてないんじゃない?
作った人とは別の人がレビューするとき、最新のmasterにマージできない状態だと困るんだけど。
レビューする人は自分で作ったわけじゃないから、コンフリクトをどう解消させればいいか判断できない。
>>235 どうタグを使うっていうんだ?
そもそもタグの使い方が間違っている。
タグはある状態に対してつけるもの。
タグがついたらコードフリーズした状態で
それ移行変更してはいけない。
>>234 gitはrebaseしてもコミットが消えてしまうことはない。
コミットIDさえわかればその時のコードは分かる。
コミットIDはreflogに記録され続けるのでコミットIDがわからなくなることはない。
あとはdiffをとれば何を修正したかがわかる。
俺としては歴史修正ツールとしてのrebaseの使用には賛成なんだが、
やはりそっちの議論にいってしまうか。
いや、本当に全てのrebaseが有害と言ってるヤツもいるのかもしれんけども。
・rebase && FFマージの話
・歴史修正ツールとしてのrebaseの良し悪し
これらは分けて議論したいんだがな。
俺は後者としてrebaseは絶対必要だが、前者の使い方に疑問がある。
>>239 じゃあピンポイントで聞くわ。
開発者と、masterへマージ(レビュー)する人が別々の人だとする。
masterへマージする時にコンフリクトが起きました。
この時どうしますか?
1. 開発者に修正(rebase)してもらう
2. 自分で適当に修正する。
>>236 おぉ、そういう主張か。
>>239 はとりあえず忘れてくれ。
> rebaseしないでmergeしようとするとコンフリクトが起きる可能性が高い。
> masterへのmergeで起きたコンフリクトをその場で修正すると
> バグを入れる可能性が高くなる。
主題から少しはなれるがここはおかしい。
masterにマージする人間とtopicを作ってる人間が別人ならその場で修正なんかせず、topic 作ってるやつに一旦 merge か rebase させるべき。
topic 側から master をマージした直後なら、その topic を master にマージするときはコンフリクトは起きない。このときは master 側からは no-ff でマージすべきだが、topic作ってくれたやつがmergeした方向による。
もちろん topic 作ってる人間は rebase してもいい。たぶん君が取ってる戦略はこっちなんだろう。
ただし topic を rebase したなら master にマージする人間は no-ff マージすべき。
もう一度言うが、俺が気にしてるのは rebase && FFマージだからね?
rebase後にno-ffでマージしてるなら大きな疑問はないよ。(topic作る側はめんどくさそうだなってだけ。コンフリクトしないのに不要なrebaseも強制するわけでしょ?)。
> レビューする人は自分で作ったわけじゃないから、コンフリクトをどう解消させればいいか判断できない。
やっぱ他人なんだよな。mergeする場合はコンフリクトの解消はmerge/rebaseで書いたやつにさせるように運用するのがお勧めだよ。
>>240 > 1. 開発者に修正(rebase)してもらう
> 2. 自分で適当に修正する。
どちらかで選ぶなら1だね。ただし、そこにはmergeという選択肢もある。
そしてより重要なことだが、俺が疑問視してるのはそこじゃない。
rebase修正してもらうのはいい。そのあとFFマージをするのはなんでだぜ?ってこと。
> ただし topic を rebase したなら master にマージする人間は no-ff マージすべき。
gitlabでmasterにマージするときは、
ウェブの管理画面からボタンを押すだけ
その時勝手にno-ffされる。
というか、ウェブの管理画面からはno-ffでしかマージできない。
> (topic作る側はめんどくさそうだなってだけ。コンフリクトしないのに不要なrebaseも強制するわけでしょ?)。
コンフリクト起きないならrebaseもすぐに終わる。1コマンド入力してあとは自動処理。
コンフリクトするなら、結局どこかで作業するのだから大差ない。
コンフリクトするのかな〜?って考えるぐらいなら
さっさと1コマンド入力して終わらせるだけの話。
>>243 > というか、ウェブの管理画面からはno-ffでしかマージできない。
rebase && FF派じゃねーのかよ (´・ω・`)
rebase派だけど、FF派じゃねーよ?
rebaseのあとはどっちでもいい派。
rebaseすることに異議を唱えてるんじゃないの?
>>245 ちがうよ、rebaseはなくてはならない重要なツール。
俺が疑問に思ってるのは rebase && FF だよ。
理由はrebase && FF してしまうと
1 log --first-parent で要約をとれなくなる
2 マージコミットの親コミットの情報をもとにtopicのログを分離できなくなる
から。詳しくは上の方を見てくれ。
別にどっちでもいいというか
プロジェクトの性質に合わせて運用するべきで
他人がどうこう言うもんじゃないと思うが
FF派にとっては1と2は大して重要じゃないんでしょ
どうせログなんて参考にしかならんのだから
コードを追うならFFの方が都合がいい場合もあろう
プロジェクトの性質にもよるし、そのブランチで音一連の変更がどの程度の変更量かだったり、変更の意味にもよるし、mergeやrebaseをする人の技量にもよるよな。
merge/rebaseについて検索すると、mergeはログが分岐するから良くない、原則rebaseするべきとかいうブログが出てくるけど、
http://blog.layer8.sh/ja/2013/04/08/best-git-commands-for-the-lonely-programmer/ (ちょっと違う例だけど)
こういうのって、ケースバイケースでしかないのに、mergeは悪!rebaseは正義!みたいに思っていそうで、
しかもこういうのを読んでmergeやrebaseの利点欠点について理解してない人たちがまたmergeは悪!rebaseは正義!と思い込んでしまって、害しかないと思うんだよな。
pullしてマージが発生したら「これでは自分が持っていたコミットの方が正統としているようなものです。origin へ push したのは a と b の方が先なのに…。」とか意味不明もいいとこ。
>>247 > 別にどっちでもいいというか
> プロジェクトの性質に合わせて運用するべきで
> 他人がどうこう言うもんじゃないと思うが
rebase && FFすべきプロジェクトの性質ってなに?
> コードを追うならFFの方が都合がいい場合もあろう
それってどういう場合?
一応断っておくが煽りではないよ。
どっちも例でよいので示してみてくれないか。
「あぁ、そういうことならrebase && FFマージ戦略にすべきだよね」
「rebase && FFマージ戦略じゃないと困ったことになってしまうね。解決策としてはrebase && FFマージがベストだよね」
って感じのをたのむ。
ちなみにこれも勘違いされるとイヤなので書くが、rebaseが常に悪ではないのと同様、
俺はFFが常に悪と言っているわけではないぞ。
些細な変更(ドキュメントのtypo修正1コミットとか)なんかはFFでも気にしないし、
コンフリクトしたときtopic開発者がmergeした方向によってはそれをmasterにマージする際はFFすべき。
俺が疑問を持っているのは「何がなんでもrebase && FF」ってタイプの主張だ。
どうでもいい
このスレの先輩方の議論のまとめとか入門とかをwikiにまとめませんか?
俺も他人が管理してるプロジェクトであれば「うちではrebase && FFでやるから」って言われても
「フーンそうですか。(大変ですね)」くらいで済ますわけですよ。
だが利益もないのに「履歴が一直線になってわかりやすい!」とか主張するやつが増えて、
それが正義みたいになるのは避けたいのです。
# 今のところ rebase && FF は面倒なだけで、「わかりやすい」というのは幻想だという認識
もし rebase && FF がフィットするプロジェクトの性質とやらがあるなら自分の認識を変えるし、
そうでないなら「rebase && FFが許されるのは中学生までだよねー」的な雰囲気になってほしいの。
巨大なプロジェクトでも--first-parentで見れば直線的だし、
かなり要約(圧縮)されるので把握しやすい。
これがもしrebase && FFされてたらと考えるとログ見るのイヤになるだろうね。
例えば Linux で v3.13 から v3.14 の間には
マージコミットを除くと全部で12311個のコミットがあるんだが、
gitk --first-parent v3.13..v3.14
ってやったときに出てくる履歴は12311個と比較するとわずか422個で見た目も"直線的"だ。
これが12311個のコミットを見ないといけないとしたら、
直線的に並んでようが把握するのは楽じゃない。
422個(+マージベースの422個)のタグを打ちたきゃ打ってもいいけど、リリース用のタグが埋もれるわな。
命名規則で回避する?頑張れって感じ。
イマイチ何を問題としているのかが分からん
> 1 log --first-parent で要約をとれなくなる
> 2 マージコミットの親コミットの情報をもとにtopicのログを分離できなくなる
これらが必要になるようなブランチの切り方・コミットの仕方が
FF前提の運用方針と合致してない(=土俵が違う)気がするんだが
>>249にあるように些細な変更はFFでも気にしないんだろ?
些細な変更を積み重ねて全体を変えていくのがFFの考えの根底にあるんじゃないの
考え方の違うものを己の考え方基準で評価したら幻想にも見えるだろうよ
>>252 rebase && FFが適してるような状況ってのは普通にあると思うよ。
複数人で開発していて、担当者がモジュールごとにほぼ完璧に分かれているような場合でかつ、クライアントがシステムの仕様についての微修正を一度に広範囲にわたって、何回も指示するような場合。
実際には作業分担が発生するから並行した開発が行われ、それによってブランチが分岐するが、それは作業上の都合であって、修正指示と1:1対応しているものではないから、嬉しいブランチの使い方ではないでしょ。
そういうときにはrebase && FFがベストケースだと言えるような気がするけど。
>>255 そういうことなの?
トピックブランチを用いる場合、そのトピックがあるひとつの目的を表していて、
その目的を達成するための変更が複数のコミットになったりはしょっちゅうあるんだが。
rebase && FFはトピックブランチ使わないってことなのかね。
>>256 なるほどなるほど。そういう意見を待ってた。
ちゃんとトピックごとにブランチを作るのを諦めざるを得ない状況ってことね。
first-parentを見てもマージコミットから単一のトピックが見えるわけじゃなく、
同一の目的であっても複数のマージコミットに情報が分散してしまう。
ならもういっそのこと rebase && FF でとにかく全体をいっぺんに見れるようにしよう、
って感じかな。
感謝感謝。
なぜトピックブランチ使わないって結論に至るの?
FFをスムーズに実現するなら
トピックごとに細かくブランチを切る方が得策じゃないの
まあ黙るならそれでいいというか少なくとも俺はもう黙るよ
逃げてすまんね
さっきからrebase && FFが問題であるかのように言ってるが、
問題なのは「FF only の masterマージ」だろう?
rebaseはFF onlyにするのに、使うかもしれないってだけで、
別にrebaseしなくても、FFでmasterにマージできることもある。
さらに言えば、masterへのマージ以外には
当てはまらないだろう?
>>258 > ちゃんとトピックごとにブランチを作るのを諦めざるを得ない状況ってことね。
ブランチ切らないなら、FFでのmasterマージは
ブランチそのものがないから、ありえないだろう?
トピックごとにブランチがあるからこそ
masterへマージするときにFFにマージすることが出来るんだろう
>>259 いや、お前の主張には納得できなかったが議論してくれたことに感謝する。ありがとう。
>>260 > さっきからrebase && FFが問題であるかのように言ってるが、
> 問題なのは「FF only の masterマージ」だろう?
そうなんだけど、FF only の masterマージをしようと思ったら
(コンフリクトするかどうか関係なしに) rebase が必須になるよな?
> さらに言えば、masterへのマージ以外には
> 当てはまらないだろう?
統合ブランチへのマージの話であって、
統合ブランチがmasterとは限らないのでコレは賛同できないが、
話をシンプルにするためにmasterへのマージに限定してもらってもいいよ。
>>262 ブランチを明示的に分けなくたって、複数人が同じブランチで作業したら実質的にはローカルブランチの分岐が発生しているわけだから、
pushするためにpullするときにマージが発生するでしょ。
>>252 > だが利益もないのに「履歴が一直線になってわかりやすい!」とか主張するやつが増えて、
「履歴が一直線になってわかりやすい!」のは明確な利益だよ。
実際にわかりやすいんだから。
さて本当の問題は「FF only の masterマージ」といったわけだが、
no-ffのmasterへのマージ。これでも履歴は一直線に出来る。
履歴は一直線だが、no-ffを使っているから、この場合は問題ないだろう?
>>267 > 「履歴が一直線になってわかりやすい!」のは明確な利益だよ。
> 実際にわかりやすいんだから。
うーん、FFマージせずに、必要に応じてno-FFしてfirst-parentで要約したほうが
直線的なだけでなく情報が圧縮されてわかりやすいと主張しているんだが、
君には伝わってないように思えるな。
>>254 をもう一回読んでみてくれないか?
>>266 > それで、このライブラリでは何の利点があって FF only で master マージしてるんだってばよ?
俺がそのライブラリの開発者じゃないからしらんけど、
no-ffにする理由がないからだろ?
トピックブランチでは複数の修正を行わない。
トピックブランチでは必ず一つの修正のみを行う。
大きな修正はせずに小さく修正する。小さな修正を連続させて開発する。
そうするとトピックブランチに含まれるコミットは必然的に一つになる。
もしくはトピックブランチの内容は必ずsquashしてからマージすると考えてもいい。
そうする--first-parentでまとめてみたいと思っていたログは
masterへマージする段階で単に一つのコミットにまとまるだけの話。
逆にまとまって見れれば十分なわけでそれを分割する必要あるの?
と考えていると推測。
俺は小さな修正の連続での開発にしきれないから
トピックブランチに複数の修正を入れるけどね。
>>269 > > それで、このライブラリでは何の利点があって FF only で master マージしてるんだってばよ?
> 俺がそのライブラリの開発者じゃないからしらんけど、
ちゃんと説明できないならこのライブラリの例は無視するよ。
# いったいどこからどこまでがお前の主張なの?
俺もトピックでは複数の修正をよく入れるし、
意味のある単位で分割してる(つもりだ)からsquashなんてしたくない。
>>270 説明してるじゃねーか。
ライブラリの作者じゃないんだから
作者の本当の考えはわからん。
それは当たり前。
それとは別に推測で
ちゃんと説明してる。
>>270 > 意味のある単位で分割してる(つもりだ)からsquashなんてしたくない。
意味のある単位で分割してるのであれば、
それを一つづつのコミットに分割して、それぞれマージすることは可能だよね?
また一つのコミットだけのトピックブランチは作ったこと無いの?
コミット一つに対応する、マージコミットを作るなんて無駄だしなくてよい。
(rebase・・・かどうかは実は関係なくて)して
FF-onlyでmasterにマージするってのは、単にコミットを
一つづつマージしていると考えれば良い。
大きな修正を一度にするのではなくて、
小さな修正の繰り返しで開発するとこうなるんだよ。
ちなみに俺が反論している所を明確にしておくと、
「履歴が一直線になってわかりやすい!」というのが
メリットではないような言い方をしている点。
トピックブランチに複数のコミットが含まれている時に
それをno-ffでマージというのは俺もしている。
履歴が多少一直線になっていなくても、ちょっと見づらいだけだから目をつぶる。
目をつぶるのであって、履歴は一直線になっていたほうがわかりやすい。これは事実。
rebaseなんてコンフリクトが起きなければ大した作業ではないし、
とある誰かが要求しているようにno-ffでのmasterへのマージはちゃんとするんだから
「わかりやすくするためにrebaseで履歴を一直線に直してもいいだろう?」ということ。
(
>>261はあくまでFFでmasterにマージするのも
小さな修正の繰り返しで開発できてるならありという例であげただけ)
トピックブランチのコミットが2個以上なら
マージはどうあれno-ffでやるべきだろ。
ffでマージしちゃったら、
あとでそれらコミットがなんのトピックに属していたのか
わかりにくくなるんだから。
そういうケースまで一直線のほうがいいとか言うのはアホ。相手にするだけ無駄。
連投するが、俺がいいたいのは
・masterへのマージするときはno-ffをつけろ。(念を押すがmasterへのマージの話)
・コンフリクトが起きるようなmasterへのマージは禁止。
・rebaseはしたほうがベター。なぜベターなのかというと履歴が一直線になって見やすいから。
ということ
この結果、no-ffでmasterへマージする前に「rebaseするのは一般的なオペレーション」になる。
そしてrebaseしていなくても、コンフリクトが起きなければmasterへno-ffマージしてよいので
そうするとマージ前のrebaseの有無は関係なくて単に「masterへはno-ffマージしろ」って話になる。
>>273 コミットグラフを書けるかちょっと試し書き。ずれてたらすまん。
お前の主張は
A-B-C
/ \
X-------M-M
\ /
D--E--F
こういう変更は DEF をrebaseして
A-B-C
/ \
X-------M---------M
\ /
D'-E'-F'
こうすべき、ってことでいいかい?
俺的にはどちらもfirst-parentで
\
X-M-M
/
に要約可能だからどっちでもいいよ。
# ただ自分でやる場合はコンフリクトしない限り前者のほうがrebaseしなくていいから楽だけと思うけどね。
# もちろんDEFのマージ時にコンフリクトしたらrebaseすることもある。DEF開発者によるmergeも可。
疑問視してるのは
X-A-B-C-D'-E'-F'
にすべきという主張だ。
これはA-B-CとD-E-Fが本来別の目的を目指して重ねたコミットだという情報が失われてしまうから
たとえ一直線でもわかりにくいと俺は主張しているんだよ。
トピックが2個程度ならどっちでも良さそうだが、トピックが数十の場合を想像してくれ
X-M-M-M-.....M-M
という数十個の要約を見る(必要に応じてトピック内のABC等を確認する)のと
X-A-B-C......(区切りもなく、めちゃくちゃたくさんのコミット)....x-y-z
を見るのと、どっちがわかりやすいの?ってこと。
ブラウザによっては結構ずれるな。わかんなきゃ無視してくれ。
2.0からデフォルトでFF onlyになるのは知ってるよね君たち
どうしてこうなったのかもちろん議論されてるのも知ってるよね
これもうわかんねえな(バグったときの修正範囲が)
>履歴は一直線になっていたほうがわかりやすい。これは事実。
一見わかりやすい気がするっていうのと、意味的にわかりやすいというのは別だと思うのだがどうだろう
svn のように時系列にコミットが一直線に並んでるのはわかりやすいか?
rebase → ff マージでトピック内の全コミットをフラットにしたのがわかりやすいか?
rebase → squash マージだと master のコミットグラフは一見綺麗になるかもしれんが実態はちょっとアレだし
そしてfirst-parentオプションつければたとえ一直線でなくとも意味的に見やすいログが手に入るんだろう
>>279 pull.ff 設定が可能になったのは確かだし、単に上流を追従するだけでその上で作業しないリポジトリなら
ff-onlyのほうが嬉しいのは確かだが、今議論してる内容とは前提が全然違うぞ。
# rc1だがmergeもpullもデフォルトでFF onlyな動作じゃないのを確認しちまったじゃねーか。
>>281 そうそう。
ちなみに gitk --first-parent すると要約されたコミットグラフは事実上一直線なのがわかると思う。
ベースブランチの状態が多いイコール検証箇所も多くなって面倒だからそうならないようコミットも最小限にしたほうがいいんじゃないの
>>223 というわけで、実験してみた。
ブランチ削除しても履歴はのこるんですね。
そのツリーがごっそりなるものだと思ってた。
マージにしても、前やったときは、強制的に変なコミットログ追加されて気色わるかったきがしたけど、今やると普通だな。
僕含めまわりもまだ不慣れなので、FF縛りは、外せないけどマージするだけなら問題なさそう。
> ちなみに gitk --first-parent すると要約されたコミットグラフは事実上一直線なのがわかると思う。
ね? 一直線は見やすいでしょ?
常にに--first-parentするわけじゃないので、
しなくても一直線になったほうが嬉しいよ。
>>285 報告ありがとう。
今後もGitに慣れるにしたがって、見え方も変わってくるかもしれないな。
周りも不慣れということで大変だと思うが、お前のプロジェクトのベストプラクティス確立にむけて頑張ってくれ。
グッドラック。
一直線バカは救いようのないバカだな
「履歴が一直線になってわかりやすい!」かどうかって、もはやコミットの順序というものにどういう意味があるかどうかという意味論なのだから、
ケースバイケースでしかないだろう。
アプリケーションの見た目を変更するときにAプランとBプラン、どっちもやってみて、Aプランから20%、Bプランから80%採用、なんてときは履歴が一直線になってないほうがいいだろうし。
(そんな変更をマージコミット一つで済ませてしまうのか、という問題はあるが)
結局、履歴が一直線になってたほうが良い場合もあるし、良くない場合もあるというだけだろ。どっちかが明らかに正しいというもんじゃない。
一直線が良いケースが挙げられてないけどな
一直線: 見えを貼りたいだけのバカ。俺はまっすぐ順調に開発をしてきたというアピールがしたい
東大一直線
293 :
デフォルトの名無しさん:2014/04/30(水) 05:04:21.07 ID:mdKtpEfX
意味不明なエラーでpush不可能になった
remote: FATAL: WM refs/heads/*** **** **** DENIED by fallthru
remote: error: hook declined to update refs/heads/***
git reset --hard origin/upstream_worktree
して差分再適用してやり直したら通った
こんな意味不明なことが多発するのがgit
現実的には使い物にならないね
hook declined
ってかいてあんじゃん
書き込み時刻を見ろ 察してやれ
296 :
デフォルトの名無しさん:2014/04/30(水) 14:42:09.85 ID:mdKtpEfX
dis発言に対してはただ叩くだけ
それも論理的に叩けないから人格攻撃に走るしかない
情けない奴らだよな
297 :
デフォルトの名無しさん:2014/04/30(水) 14:48:31.80 ID:mdKtpEfX
別リポジトリで他人による大量の更新があって
半端にマージした挙げ句途中でこけて
半端にステージングした状態になり
結局
git reset --hard origin/upstream_worktree
するしかなくなった
ここまで致命的に腐ってると使い物になるならない以前の次元だね
またいつものコンフリクト恐怖症の人か
299 :
デフォルトの名無しさん:2014/04/30(水) 18:26:55.40 ID:mdKtpEfX
コンフリクト解消で済めばいいんだが腐ってるから済まないんだよね
なるほど、コンフリクトの解消の仕方が分からないから
コンフリクト恐怖症になってしまったのか
Aリポジトリでもらったpull requestを
Bリポジトリに反映する方法を教えてください
302 :
デフォルトの名無しさん:2014/04/30(水) 18:59:19.90 ID:1L5gAVQy
ところで、大声でジットと呼ぶ人がいて困ってるんだ
ディスクトップパソコンみたいな
職場がSubversion教に汚染されてるので仕方ないな
じっと我慢汁
レーダーデスクカラオケ
ギットギトにしてやんよ
>>297 > 半端にマージした挙げ句途中でこけて
(コンフリクトしたときのデフォルトの動作だ・・・)
> 半端にステージングした状態になり
(コンフリクトしたときのデフォルトの動作だ・・・)
> 結局
> git reset --hard origin/upstream_worktree
> するしかなくなった
(コンフリクト解消できなかったなら git merge --abort すればよかったんじゃ・・・)
>>297 > git reset --hard origin/upstream_worktree
わろたwwww
え? あんた自分の作業けしちゃったの?www
馬鹿だなぁ。
gitはsubversionと違ってmergeやrebaseの途中で
コンフリクト起きてごちゃごちゃなっても、
merge/rebase作業をキャンセルして簡単に戻せるのにwww
情けだ、ヒントをあげよう。
mergeしてるってことはコミットしてるってこと。
そのコミットIDはgit reflogすればわかるので
あとはそのコミットIDをチェックアウトすれば前の状態に戻せる。
gitはコミットしたものが消えることはない。
gitって安全だよねー
>>217 プロジェクト名に言語が入ってないとなんの言語で作ってるのかわからないじゃん
言語を変えたらリポジトリ名を変更すればいいじゃん
そういやgithubってプロジェクトで使用している言語がわかるようになったよね。
gitだと、カラフルなバーをクリックすると以下のように表示される。
C 45.5% Shell 34.6% Perl 9.6% JavaScript 3.4% Python 2.9% Tcl 2.6% Other 1.4%
>>308 で、このようにリポジトリにプロジェクト名入れなくても
githubならわかるし、gitのように複数言語使ってる時どうすんの?
そんなことも考えれずに、言語名にこだわるなら、
センス無いなとしか言えないなw
githubだけの視野で語られても
github以外のプロジェクトでも
複数言語でアプリ作るのは一般的だけど?w
313 :
デフォルトの名無しさん:2014/04/30(水) 23:26:12.17 ID:mdKtpEfX
307は本当に馬鹿なんだなぁ
管理されてないファイルがreset --hardの対象にならないことは以前に確認済みだから関係ないし
コミットしたものはすぐに権限持ちに差分送ってるし
コンフリクトは元々未来分の作業は既に入っててそこからコメント消す程度
俺が泣かなくて残念だったな
結局gitのおかげで無事でした
めでたしめでたし
>>312
プロジェクトを1つのディレクトリに詰め込むタイプですか?
>>313 意味がわからないなあ
コミットしたものを権限持ちに既に送ってあるとしたら、
お前が上流からマージしようとしたブランチは一体何なの?
お前がコミットしたものを含んでいないブランチ?
>>315 なんでそんな発想が出てくるんだ? (w
おれはさ
php/wiki
php/cms
php/mailform
っていうふうに管理してるの
他の言語で同じ物を作ることもあるから
ruby/wiki
みたいに言語をネームスペースにすると管理が楽なんだよ
Gitはソースコードを管理するわけだからプロジェクトと関係あるだろ
C:/appData/User/toyohiko/マイドキュメント/mycode/php/wiki
これを外部のリポジトリ管理サービスに突っ込むときのリポジトリ名はphp-wiki
名前付けのポリシーとか別に好きにすればいいと思う。
>>320 そんなもん上流のリポジトリ管理方針次第だ
例えば俺はandroidのapp01プロジェクトを
ssh://remotehost/repo/android/app01.git とかに格納してる
>>310 複数言語使っているときは
C:/appData/User/toyohiko/マイドキュメント/mycode/other/wiki
というようにして言語名のフォルダにいれず名前空間に言語名を付けない
もう自由にタグ付けできる自分用プロジェクト管理ツール使っちゃえよ。
>>318 コードネームつければいい。
phpは犬の種類、rubyは猫の種類とか原則を持たせても良い。
だからさGitHubだけで語るな
確かにSubversion使ってたときは一つのリポジトリに色々入れてたけど(そしてSubversionを適当に使う限りではそれで事足りてた)、
Gitは部分チェックアウトも出来ないしコミットもブランチも困ることだらけだからプロジェクトごとにリポジトリ分けるのが当然だよな。
自分もGit初心者の頃はSubversionと比較しちゃって部分チェックアウトが出来ないのが不便だのsvn:externalsと完璧に同等のものがないのが困るだの言ってたけど、
そのときGitユーザーから「Subversionとは思想が違うから比較するのは意味が無い」的なことを言われたけど、今はまさにそのとおりだと思うよ。
とりあえずSubversionでややこしい開発はしたくないね、もう。
329 :
デフォルトの名無しさん:2014/05/02(金) 03:41:26.83 ID:ZGvM0amq
>>316 pullするだけでその状態になることすらわからないとかお前本当に馬鹿だな
自分の管理下にあるリポジトリなら好きに名前付けりゃいいじゃん
>>330 とよひこ君はまだわからないのか
githubじゃなければ、リポジトリ名をphp/wikiとかruby/wikiみたいにネームスペースにして管理できるって言ってんだよ
>>329 pullするだけですべてうまく行くと思ってるのは幻想だ
ちゃんと勉強したほうがいいな
334 :
デフォルトの名無しさん:2014/05/02(金) 08:09:07.29 ID:ZGvM0amq
わざわざvcsの勉強なくて無価値なことはしたくもないね
Gitに関しては勉強する価値があった
正直まともなVCS使わないのは、高機能エディタやIDEも使わずメモ帳で開発するようなもんだわ
パスワードを含んだファイルがあるんですけど
このファイル内のパスワードを削除して雛形だけの状態にしてからプッシュしてます
一度プッシュしたらほとんど修正はしないファイルなんですがこういう場合ってどうするものですか?
>>336 $ touch password.txt; git add password.txt; git commit
$ git update-index --skip-worktree password.txt
$ echo -n 'himitsu' > password.txt; git status
On branch master
nothing to commit, working directory clean
とか?
>>332 > リポジトリ名をphp/wikiとかruby/wikiみたいにネームスペースにして管理できるって言ってんだよ
別に、/ スラッシュを使わなくても
php\wiki や ruby\wik でもいいだろう?
php_wiki や ruby_wik でもいいだろう?
>>336 aaa.confってファイル名だとしたら
.gitignoreにaaa.confを登録してaaa.conf.sampleみたいなファイル名で
コミットしておくのが多いんでないかな
>>338 話の流れを読めないアホなのか?
>>216が話のはじまりだ
別に本人が / 以外でいいのならそれでいいぞ
ただし、\ で区切るのは勘弁してくれ
User/repository.gitが
User/php/oreore.gitじゃなくてGItHubが/を-に変換してUser/php-oreore.gitになる
bitbucketは名前を強制的に変換はしないがurlのほうは変換される
余計な機能
% git clone
http://.../User/php-oreore.git php/oreore.git
すればいいだけじゃねーの。
手元で php ディレクトリが存在してるかどうかに関わらず
Gitは指定したパスにクローンしてくれるよ。
わざわざ指定するのがイヤなら
そういうcloneをするようなスクリプトかぶせてもいいし。
C:¥testからD:¥testに移動したいんですけど
ファイラーで移動したらgitできなくなりました
.gitの中でどのファイルを開いてパスを書き換えたらいいですか?
>>343 わからん。ありそうなのは .git/config だが、
適切に答えるには情報が不十分かつ不正確。
C:¥testでgit initして適当にファイルを作ってコミットして
C:¥testをコピーしてD:¥testにペーストしたんです
D:¥testのなかでgit logしたらログが表示されません
全く再現しねえな
eeeeeeeeeeee
GitBushから
cd /c/temp
mkdir git
cd git
mkdir test1
cd test1
git init
vim README
git add .
git commit -m "initial commit"
エクスプローラで
Cドライブ(C:\Temp\Git\Test1)を右クリックメニューでコピー
Dドライブ(D:\Temp\Git)にて右クリックメニューから貼り付け
GitBushから
cd /d/temp/git/test1
(ちゃんとmasterって表示になった)
git log
(ちゃんとinitial commitのコミットが表示された)
まったく再現しない
エクスプローラ以外のファイラーは知らんが、隠しファイルや隠しフォルダは移動しない設定になってんじゃないの
おかしいな・・・またあとできます
Gitのこともほとんど具体的な操作方とか知らないままなんだけど、GitHub実践入門を買った
ので、Git操作のお勉強と同時にGithubも使いだした。
rmした後に全く関係ないファイルをaddするとrmしたファイルのrename扱いになるんですが
単に新規ステージングしたファイル扱いにできますか?
直後にrmしたファイルではなく、始めにrmしたファイルのrenameになっていたり
動作がわけわららんです
>>337 横レス
設定ファイルとか便利そうだな。覚えておこう。
どうやら中身が同じファイルは勝手にrename扱いにしてくれるようですね
空ファイルでトレーニングしていたので混乱してしまいました
>>351 gitのデータ構造としては、ファイルの移動や改名とかは管理してなくて、
表示の時にヒューリスティックに判断してrenameとか出してるだけだから、
気にする必要ないよ。
>>354 ありがとうございます
そういうものだと、気にしないようにします
356 :
デフォルトの名無しさん:2014/05/02(金) 21:42:27.82 ID:x3xYwsX7
gitはファイルではなくコンテンツを管理していると言われる所以だね。
gitでhookファイルを変更した場合
これをGitHubにプッシュした阿戸に
ローカルのファイルとリポジトリを削除してからクローンしたらhookファイルの内容がないんですが何故ですか?
喜ぶべきか悼むべきか・・・
>>357 フックは版管理されてないから。configも同様。
フックをシェアしたいならワーキングディレクトリにフックを置いて、Makefileなりsetupスクリプトからインストールできるようにする。
クローンしただけで勝手にスクリプトに走られたら困る。
>>360 文章読むだけならGithubで公開されてる
>>353 rmしたファイルのindexに注意。git rm。
git mvはgit addとgit rmを同時にやってくれる。
>>353 中身が似てるファイルね
rename扱いにしてるのはログ表示の時だから、まあ気にしなくていいには変わらない
コピペ検出機能だとでも思っておけ
リモートにtagをpushした後、リモートに存在するtagを確認するにはどうすればよいのでしょうか
ローカルリポジトリのtagなら git tag, リモートのブランチなら git branch -r ですが、
リモートのtagを表示するコマンドが見つかりません
git ls-remote リモート名
>>365 これでリポジトリを直接指定して確認できるけど、
git ls-remote --tags リポジトリのURL
もっといい方法があるかも?
リモートリポジトリからPullした直後で一切変更を加えていないにも関わらず
git statusでいくつかのファイルで差分が検出されてしまう現象にが起きています
差分が検出されているファイルのdiffを見るとソースコード全体が入れ替えられたような表示になります
しかし、該当ファイルをgit addしてから再度git diffすると変更点なしと表示されます
現象が起きるファイルは.cpp、.cs等複数の拡張子で
その拡張子のファイルすべてで起きる訳ではなく、頻繁に更新されるファイルで起きているように見えました
この現象についてWeb検索したのですが、該当しそうな情報は得られませんでした
githubのクライアントとVisualStudio2013のgit機能を併用していることに
原因がありそうな気がしているのでそのあたり調査する予定ですが
見直すべき設定等、何かヒントを頂けたら嬉しいです
371 :
デフォルトの名無しさん:2014/05/04(日) 18:11:29.06 ID:Efc5dGc7
git config core.filemode false
git config core.symlinks false
pullは1箇所から取得してpushは複数にする方法を教えてください
AitHubのみpullして
pushはAitHub,BitHub,CitHubの3箇所に送信してバックアップがしたいんです
>>372 git remote add知ってる?
それ知ってますけど1つのとこしかpushできませんよね
一つの所ってなんですか? originですか?
なんでいちいち名前を指定すると思いますか?
一つだけなら名前は必要ないはずですよね?
なんでremote addだと思いますか?
一つだけならremote setでいいはずですよね?
あとは自分で考えてください。
git push {A,B,C}itHub branch
379 :
369:2014/05/06(火) 15:12:16.47 ID:5E8fiGLl
>>370,371,378
ありがとうございます。
いただいた助言を参考に試行錯誤して、とりあえず以下の操作をしたら
現象が落ち着きました。
・core.autocrlfをtrueからfalseに(Windowsでしか開発しないので)
・core.whitespaceを明示(space-before-tab,trailing-space)
・該当ファイルをVisualStudioの「ドキュメントのフォーマット」を使用して整形
もしかしたらwhitespace周りが原因だったのかもしれません。
どうもありがとうございました。
masterブランチの内容をtestブランチに移動して
masterブランチ内のファイルの内容を空の状態にする方法を教えてください
ファイルの内容を空の状態にする?ファイルのサイズを0バイトにするってこと?
あるブランチでコミットした内容をmasterに反映させる時rebaseを使えっていうのをここで習ったんですが
具体的にどうやるのか教えてください
git init
touch a
git add a
git commit -m "INITIAL COMMIT"
git checkout -b kaihatu1"
echo "1" > a
git add a
git commit -m "1を追加"
echo "1" > a
git add a
git commit -m "数字を2に変更" ←いまここ
この後から何をしたらいいのか教えてください
絵に描いたような教えてクン
あるブランチでコミットした内容をmasterに反映させる時に使うのはmerge
ブランチには複数のコミットが含まれている。という前提とする。
masterにマージする時のやり方
1. squashして一つのコミットにしてマージ
2. squashせず、マージコミットを作ってマージ(no fast foward)
3. squashせず、マージコミットもつくらずマージ(fast forward)
ブランチは作業履歴とか入っていてコミットが汚いことがあるので
mergeする前にブランチを綺麗にしておくと良い。
ただし1ならコミットは一つになるからrebaseする必要はない。
2. もしくは 3の時、マージされたコミットを綺麗にしておきたいならrebaseする。
小さなバグ修正とか、タイポの修正とかそんなのが残ってても気にしないならrebase不要。
ただし、rebaseせずにfast fowardでmasterにマージすると
revertしづらくて死ぬだろう。コミットが綺麗なら3でも良いが、
2にしておくと、ブランチ単位でrevertできるから楽。
1.9.3 がリリースされたね
今回のはつまらんリリースだ
まだ1.9つかってるの?もうこっちは2.0使ってるよ
389 :
デフォルトの名無しさん:2014/05/11(日) 19:24:38.83 ID:04FzsR6r
俺のはいまだに1.7ですが
カレントを追いかけているから俺も常に最新・・・
アップデートきてたから1.9.3に今した
391 :
デフォルトの名無しさん:2014/05/11(日) 21:23:17.01 ID:pXskIuQ6
1.8 位から、処理速度が速くなったと思う
俺初めて使ったとき、まずルートでinitしていつまでも延々待ちになってしまって
壊れているかと思った。
>>390 カレントってなに?gitからクローンすると2.0になるけど?
>>393 >カレントってなに?gitからクローンすると2.0になるけど?
「現時点で GitHub から Git のリポジトリのクローンを取得してビルドしてインストールすると 2.0 になる」という意味?
現時点で 2.0 は正式版ではなくて RC 版だよ。
https://github.com/git/git/releases 現時点の最新の 2.0 は 2日前にリリースされた v2.0.0-rc3。
現時点の最新の正式版は 2 日前にリリースされた v1.9.3。
>>394 カレントって普通
> 現時点の最新の 2.0 は 2日前にリリースされた v2.0.0-rc3。
を指すんじゃね?
カレントって普通は安定板stableの最新版じゃないの
テスト要素のあるrcやβは含まないんじゃないの
398 :
デフォルトの名無しさん:2014/05/13(火) 00:36:15.98 ID:A9K77IIM
普通は安定版だよ
currentというとバージョン管理システムから持ってきた
開発版のソースを指すケースもあるな
*BSD方面とか
2.0を使ってるひとは、2.0がrc版だって認識して使ってるの?
RCというのはリリース候補。ベータ版よりも
完成度が高い、リリース版レベルのもののことだよ
そりゃそうだろ
ソースからビルドするならタグから引っ張ってくるだろうし
>>401 v2.0.0はrcが1、2、3と出てるんですがそれは
>>403 完成度もせいぜいベータよりはマシ、ってレベルで
gitのリリース版レベルなんてのは所詮その程度だ
ってことを
>>401は言ってる。
2.0で付加される新機能を早く使いたいとかGitのバグ取りに協力したいっていうなら理解できるんだけど、それ以外に2.0rcをあえて使う理由ってあるの?
自分が何かgitに関連するモノを作って自分以外の人に提供してるなら
最低でもRCの段階で問題無い事を確認しておきたいな
>>406 それは理解できる
でもこのスレの
>>388 とか
>>393 ってそういう感じじゃないんだよね
GitHubからクローン取得してビルドしたら2.0で、2.0がrcであることも知らないで使っている、そして2.0未満のバージョンのユーザを馬鹿にしている
こんな風に思えてしまう
データを蓄積するツールとして使ってるから安定版。俺はまだ1.7使ってるし。
>>407 身の回りにいるならともかく、ネットの向こうにいる他人なんてほっとけよ。
あと、
>>388 でバカにされたとか思うようなら、このての掲示板見ない方がいいと思うぞ。
410 :
デフォルトの名無しさん:2014/05/13(火) 13:14:13.76 ID:+cSIqVHp
gitでバージョン番号管理って、みんなどうやってる?
411 :
デフォルトの名無しさん:2014/05/13(火) 18:24:36.93 ID:A9K77IIM
vistaでgui使ってコミットするファイルの選択してたら固まりまくったんだけどなんなん
1.8.4で起きて1.9.2に更新しても再発した
もろもろ込みの15mくらいのexe
Git-1.8.4-preview20130916 → Git-1.9.2-preview20140411
Gitのmasterはrcとはいえpuやnextに比べれば安定してんじゃねーの
あとGitはrcをリリース4 5週間前から毎週出すポリシーみたいだから、
rcの数が多いか少ないかで安定度は測れない。
一応今週末に正式リリース予定ぽいんで、
今週出なければなんかまずいバグが残ってるのかもね。
gitをコンパイルして入れるときってユーザーはrootでやってますか?
>>414 コンパイルは一般ユーザー
ディストリは?
debianです
ソースコードから入れる時って/usr/local/srcにいれてるんですが
ここ一般ユーザーだと書込できないんですよね
おまけにrootにsshの設定をしてないのでgit cloneできないし
rootにsshの設定をするべきではないらしいのでどうするのがいいのかわかりません
debianなら /usr/local 以下は staff グループになってるでしょ?
なら自分をstaffグループに追加すればいいだけ。
まあ、俺は自分のhome以下でコンパイルするけど。
なんかさ、よくコマンド実行できなかった時、
グループに追加すればいいのに、すぐsudo使う人いるよね。
ソースなんてどこに入れてもいいし、バイナリやライブラリもパス通ってるならどこでもいい
なんか呼ばれたような気がしたので
なんかエラーで全然ここに書込ができません
ありがとうございます
あとはlinxuできいてきます
>>410 リリース番号とかなら、CIツールのビルド番号とかでいいんじゃね
そもそも自分しか使わない PC で、いちいちグループに追加とかしてると、むなしくなってくるわ
sudo で十分だよ
sudo & パスワード打つのが面倒だろ?
楽な方を提案してるんだよ。
もうrootになっちゃえよ。
侵入されたら即乗っ取られそうなインターネッツですね
>>425 それはだめ。
root使うなって流れでsudoなんだろうけど、
なんでもsudo使ってたら意味ないって。
そのうち普通のコマンドまでsudo使う癖がつくとかな。
sudoつかってホームディレクトリ以下にファイルやディレクトリを
作るもんだから、自分のファイルを編集できないとかアホなことにw
一般ユーザの権限増やしちゃうほうが余程ダメだろ
確かに初心者の頃には自分に弄れないファイル作ったりするもんさ
…でも、そこでそのファイルの所有者を自分に戻す方法や
どうすれば一般ユーザのファイルとして作れるのかを考えず調べずに
「一般ユーザの権限を増やしちゃえ」
ってやるのは思考停止だと思うよ、root常用と発想が変わらない
普通にrootでapt-getしてstaffなユーザでgit使ったらいいんじゃないの。
staffグループに入れるのすら嫌うのにsudoersに入ってるってどゆことよ。
GUI があって sudoers 弄ってる認識ないとか。
>>429 > 普通にrootでapt-getして
いちいち root でログインしてるのか?
脱線はそのくらいで
433 :
デフォルトの名無しさん:2014/05/14(水) 10:07:15.20 ID:LFlUnuUg
>>431 権限あればいいんだから方法はなんでもいい
須藤でも流宇屠でもなんでもいい
そもそもlinux公式のパッケージなんて古いのに誰が使うんだよ
俺が使ってるのディストリのは1.7だぞ
OpenSSLの件もあるのに今1.9.1以下を使ってる奴は世界の地雷
権限設定が大雑把すぎる
rootにならないと何もできない
>>433 >>429 が sudoers どうのこうの言ってるから聞いただけ。
関係無いけど、須藤とか流宇屠とか面白いと思って書いてるの?
437 :
デフォルトの名無しさん:2014/05/14(水) 13:19:05.91 ID:LFlUnuUg
>>436 面白いと思ってるならいちいち確認しにくるなよ
もっと自分の感性に自信持てや
>>427 >なんでもsudo使ってたら意味ないって。
たしかにsudoインフレ気味のきらいはある。
お前もう別にrootでログインしているのと変わらんのと違うか、みたいな。
スクリプトの中でsudo書いたら負け
>>437 ひょっとして皮肉って、わからなかったのか? (w
どうでもいい
相談させてください。
開発ブランチをmasterへマージしたいのですが、
masterブランチがかなり進んでしまい、開発ブランチとの共通コミットがかなり前の物となってしまいました・・・
このままマージすると履歴が見づらいので、masterでリベースをしたいのですが、
開発ブランチにも、沢山のマージコミットがあり、そのままリベースするとマージコミットが吹き飛んで困ります。
マージコミットを残したままで、masterとリベースする方法というのはあるでしょうか?
もし、そのような方法がない場合・・・
どのようにすれば、少しでも見やすい履歴として残してマージする事ができるのでしょうか・・・
よろしくお願いします
マージじゃあかんのか?
--preserve-merges で ggrks
だけど俺もマージをおすすめする
>>443-445 お答えありがとうございます
まさしく、--preserve-merges この機能を求めていました!
本当に助かりました
普通にマージでも、運用はまったく問題ありません。
しかし、あまりに前のコミットからブランチが切れている物なので、
グラフ上でその他のマージしたコミットなどを、またぎまくりで見るのた大変な状態でした・・・
本当に感謝です
男なら履歴をいじってんじゃねえよ!
>>428 > 一般ユーザの権限増やしちゃうほうが余程ダメだろ
意味不明。
今の話はsudo権限で書き込める人に対して
sudo使うな一般ユーザー権限でコマンド使えるようにしろって話だから。
誰もsudo権限ない人に権限与えろなんて言ってねーよw
> …でも、そこでそのファイルの所有者を自分に戻す方法や
> どうすれば一般ユーザのファイルとして作れるのかを考えず調べずに
> 「一般ユーザの権限を増やしちゃえ」
> ってやるのは思考停止だと思うよ、root常用と発想が変わらない
そんな話してないけどねw
sudo使って権限を変える行為のがroot常用と同じだから
sudoも使わずに一般ユーザーでやれるようにしろと。
ユーザに必要な権限を与えるのは、必要で許されるならば何の問題もなく、
権限を与えなければ、sudo使うしか無いわけでそれがroot使ってるのと変わらない。
っていうか、sudo常用=root常用ってわかってる?
a.phpを修正(50行)した後にb.php(500行)を修正しました
このときgit add a.php; git commit -m "a.phpを修正"したあとにgit checkout -fしたらどうなりますか?
クソニートの戯言はチラシの裏にでも書いてくださいね
煽って何がしたいの?w
今週の中学生日記はここですか
>>449 「どこからがどの権限なのか」を意識しづらいのがroot常用の一番の問題かと。
まあそもそも、もうスレチなんだが。
>>449 > っていうか、sudo常用=root常用ってわかってる?
こういう奴って /etc/sudoers の ALL = (ALL) ALL をおまじないだと思ってるんだろうな...
能力のないものには、いい道具与えても無駄なのがよくわかるな (w
>>456 本当にsudo常用がroot常用と変わらないの分からないの?
sudo touch a ってやったら、root:rootでファイル作られるよね?
sudoはなるべくrootにならずに、root権限(ユーザー未指定の場合)で
実行するものであって、結局のところrootで実行しているのと同じ。
sudoを常用したら意味がないんだけど。
なんでもかんでもsudo使って"root権限で実行"するのではなく
適切な権限を指定しなさいと言ってる。
>>457 > sudo touch a ってやったら、root:rootでファイル作られるよね?
お前俺のレスの意味わかってないだろ (w
touch でファイル作られるのが嫌なら禁止すればいいだけ
ALL = (ALL) ALL って書いといて、root 常用と同じとか、バカすぎ
「俺のレス」
くさかべ先生が怒りそう
460 :
デフォルトの名無しさん:2014/05/15(木) 02:39:04.28 ID:mVM4WfmV
そういうことにしたいのでつね
>>458 お前根本的に間違ってるじゃんか。
/usr/local/srcへの書き込みだぞ。
実行コマンドを制限してどうする。
こういう時はグループで書き込み権限を与えるんだよ。
sudo使うにしても結局グループ使うんだから、
sudoの前にまずグループだろうが。
>>461 > /usr/local/srcへの書き込みだぞ。
俺はそんな話してない。
俺は、
> っていうか、sudo常用=root常用ってわかってる?
がおかしいって言ってるだけ。
ちなみに sudo はグループでもユーザーでも指定して制御できるから
> sudo使うにしても結局グループ使うんだから、
は、根本的に間違ってる。
なので、
> お前根本的に間違ってるじゃんか。
これはお返ししておくよ (w
ブランチ名に日本語使ったりする?
>>462 > 俺はそんな話してない。
そもそもそれが間違ってるじゃないか。
話の流れを読め。
最初の
>>416 は ファイルを書き込む権限の話。
> ソースコードから入れる時って/usr/local/srcにいれてるんですが
> ここ一般ユーザーだと書込できないんですよね
>>428 でもファイルを書き込む権限の話。
> 一般ユーザの権限増やしちゃうほうが余程ダメだろ
> 確かに初心者の頃には自分に弄れないファイル作ったりするもんさ
最初っから、ファイルの権限の話なんだよ。
sudoをroot権限を与えること以外で使うなら
setuidで十分な事が多くね?
/usr/local/srcを一般ユーザーに権限与えるのってLinuxの意に反してないの?
rootしか書き込みできないのは意味があってそうなってるんじゃないの?
>>466 staffなら書き込めるんだからそれこそが意だろ。
本当の一般ユーザをstaffにするのはおかしいが、
それならそもそもsudoも使えないべきだし。
sqliteのデーターベースファイルに日々データを追加しているんですが
これもリポジトリで管理したほうがいいですか?
GitHubでこのファイルをみたことがないのでどうしたらいいのかわかりません
バックアップが目的なのでデータベースファイルを使ってるプロジェクトだけはzipで固めるべきか
>>464 > 話の流れを読め。
そんな話には興味がない。
俺は単に、
> > っていうか、sudo常用=root常用ってわかってる?
がおかしいって言ってるだけ。
まあ、誤魔化そうと必死なのは伝わったよ (w
>>469 バイナリだと差分が見えないからsql文をバージョン管理するとかになるのかな?
ダンプがそのままsql文にならなかったっけ?
面倒なら定刻にダンプするスクリプト走らせとけばいいかもね。
>>466 /usr/local/ 以下は、自分がPCを持っている人の話
WinのOwnerみたいなもの
testブランチからmasterブランチにマージすると
testブランチのコミットログがmasterブランチのコミットログと合体しますよね
だからここのスレの先輩方はrebaseしろって書かれているのでrebaseしようとおもうんですが
rebaseしたらtestブランチのいままでのコミットログはgit logで見れなくなりますよね
>>463 俺はめちゃ使う。
むしろ英語は使わない
>>473 見れるけど・・?
よくわからないなら、rebaseはやめてmergeにしておくのがいい
>>465 -gで、プライマリグループを変更して実行することはある。
newgrpとかsgコマンド知らなかったから。
すれ違いなのはわかっているがこれだけはいわせてくれ
passwdとsudordersの編集は、実行できないようにしとけ?
>>470 それで、sudo使う時ってどんな時?
あんたは常用してるんだよね?
>>467 > staffなら書き込めるんだからそれこそが意だろ。
そういうことだね。
debianではちゃんとグループが設定されている。
だからsudoを使うことは殆ど無い。
>>476 俺が常用してるかどうかなんて関係無いでしょ?
難癖つけようとしてるのバレバレですよ (w
クッソくだらん喧嘩をだらだら続けるな
あ、常用してないんだw
FUoGOy6EはNG登録した
NG登録した = もう反論はしない(見えないからできない)
なんだけどわかってるのかなぁ?w
まあ、反論なければそのほうが俺は楽でいいけど。
荒らしに対抗できる唯一の手段は「反応しない」だからね。
ってひょっとして
>>482はその荒らしか
「反応しない」っていうのならレスするなよw
自分で言ったことぐらい守りましょう。
C:¥ripo¥bbs¥.gitがリポジトリとします
これでコミットしまくったらコミットログがたまりますが、この状態でGitHubプッシュするとすべてのコミットログもGitHubにあがりますよね
朝昼晩とコミットしていてちょっと知り合いにコミットした時間を見られたら困る事情があるので
プッシュするまでのコミットログを全部まとめて一つに書きなおして毎日17:00にコミットしたことにしたいのですが、
いまあるコミットログはgit logで見られるようにしておきたいのでいじらずそのまま残しておきたいのです
こういう場合はどうしたらいいでしょうか?
17:00にコミットというのは自分でコミットをするものだとお考えください
自動でコミットさせるという意味ではありません
とくに17:00ぴったりというわけじゃなくて夕方過ぎにコミットするものとお考え下さい
夕方にしたコミットにsquashで朝昼のコミットをまとめればいいじゃないの
コミットを自分のとこだけ残しておきたいならプッシュしないブランチを作ってそこで開発すればいいのよ
そのブランチからプッシュするブランチへマージするためのブランチを作ってそこでrebaseなりsquashなりでまとめてプッシュするブランチへマージ
そんでもってブッシュするの
rebaseしてもauthor dateは変わらないんじゃなかったっけ?
コミット内容を修正すればさすがに変わるし、
reset authorすればよい
2.0 延期らしい。
今のところ来週リリースが目標ぽい
来週もまた延期の予定です
何で日本人って見栄はってカタコトの英語でコミットログ書くんですか?
どうせ人様のに目にも止まらないようなプロジェクトなのに
見栄はってるんでしょうか?
日本語入力に切り替えるのが面倒
>>493 日本語読めない人がいるなら英語でログ書いてあげるのもいいけど、
日本人だけのチームなのに英語でログ書いてるのは、ちょっとアレな方々だと思う。
文字コード的な問題を抱えてるとかじゃね
英語で書いてると見栄張ってるっての、正に日本人的だよな
そういうのでハマっちゃうと時間食うからね。
本能的に避けちゃうんだな。
コミットログが日本語だと git format-patch のファイル名に反映されない
>>493 自分しか使わないので何も書いてません。
なんだよこいつ。英語でコミットログ書いてるのかよ。
見えはってるな。
これが
>>493が言ってること。
webブラウザで見たときに英語インターフェースの中に日本語があると浮くから
超てきとーな英語で入れてる
自分用だから自分が分かればいい
文字化け面倒くさいしな
技術英語でカタコトもくそもないし
レガシーなコードがsjisだったりすると、マージの際にコミットログが化けて出る。
英語が書けなけりゃせめてローマ字で書いて。指差して笑うけど。
505 :
デフォルトの名無しさん:2014/05/18(日) 07:58:50.19 ID:7h87TJ0i
bagu fix
当たり前だけどUTF-8でログを書く事。
もしも文字化けとかしててもnkfとか使えば解決するだろ?
下手な英語で書かれるログより、日本語できちんと書かれているログの方が価値がある。
当たり前だけどGitなどのバージョン管理システムを使う場合、プロジェクト管理規約を
遵守すべきであり規約としてプロジェクト内の公用語を定めるべきである。
プロジェクト内公用語で書かれていないログは、どんなに価値ある内容であっても
ログとしての価値はない。
asciiの範囲内だけ使っておけば文字コード関係で変になる事がないw
>>507 ログの本来の意味を理解せず上辺だけの運用だとこんな感じになるんだろうな。
fix bug
update function
add text
こんなわけのわからないログを書かれてもね
わかりもしない英語で加工として意味のないログを書く意味が本当にない
>>511 ちょっと何言ってるのかわからないんですけど・・・
ログの本来の意味を理解しているのであれば、
価値ある内容のログを「ルールと違う方法で書いてるから無価値」なんて判断しないって事を言っている。
本来のログとして役立つ記録を
英語で書けばいいんじゃないの?
いや、どんな言語で書くかではなくプロジェクト内で「通じる言語で」しかも当然ながら
ログとしての意味のある記録内容を記すべきなのである。
更新したファイル名と行番号を書いておくのが一番
mergeするかどうか、revertするかどうかの判断を
ログを眺めただけで出来れば十分
変更の目的や意図を書くのが一番重要。
単なる変更点ならdiffを見ればいいから。
diffで目的や意図が判ると良いね
diffで目的や意図は分からんけど、更新したファイル名と行番号だと分かるんだ。
普通の人はそうじゃないから。
変更ファイルとか行数とか
わざわざ人間が書く必要ないと思うが。
何やったか思い返すヒントになればいいんだから何でもいいんだよ。
>>514 あれ?
なら英語しか選択肢なくね?
日本語だと日本人しか理解出来なくね?
別に英語で書くなって言ってないし
英語もわからない奴が英語でログ書くなって歯なし
>>522 プロジェクト公用語として、どのような基準を採用するか次第だ。
英語しか選択肢がないと考えがちなのがオープンソース界の悪習だ。
別に日本語のみに限定し、ソースコメントも日本語にすることすら
間違いではない、それをプロジェクト公用語と定めるならば。
文書以外で日本語なんて使う気しない
英語コンプはフォルダ名も日本語にしてるのかと
>>525 君があるプロジェクトに関してプロジェクト公用語を定める事に影響力や決定権を
持ったら、日本語禁止にできるよ。只の下っ端ならブツブツ言いながら従えば済む。
527 :
デフォルトの名無しさん:2014/05/18(日) 11:55:22.75 ID:0kvX68pZ
>>526 でも、元々の
>>493 はそういう話じゃないんよね
別に日本語でも英語でもその変更がどういう意味なのか分かりゃいいワケで
何故か英語=見栄みたいな扱いにしちゃってるのはおかしいと思わね?
まあ
>>493 の周囲には分かりにくいログが多いのだろうけど、そんな人は多分日本語でも似たようなことしか書かないんだろうし
Add text
みたいなログを書く人間が日本語でまともなログを書けるかなぁ?
プログラミングが出来るって事は、英単語が分からない訳じゃないだろうから、変更点を他人に伝える気自体が無いわけだろう
こんなの英語以前の問題だよ
Add main window toolbar button help text
みたいな糞でもログとして使えるし
log言語の誕生である
BTSを利用してる時でも、コミットログはさぼらない方がいいのかな?
同僚に対する不満をここでぶちまけられても
俺らにはどうしようもないんだ
なんでこの変更が必要なのか書いてあればそれでいいや。
537 :
片山博文MZバグロボ ◆T6xkBnTXz7B0 :2014/05/18(日) 21:11:53.29 ID:wTsBQBni
Gitでバージョン番号を管理する方法ないの?
>>537 あるけど、具体的にどういう
バージョン番号管理をしたいの?
539 :
片山博文MZバグロボ ◆T6xkBnTXz7B0 :2014/05/18(日) 21:29:08.38 ID:wTsBQBni
コミットするたびにソース中のバージョン番号を自動的に更新して欲しい!!
>>539 ソースコードのバージョン?
アプリのバージョンじゃなくて?
prepare-commit-msgフックでコミットメッセージにバージョン番号でも入れりゃいいんじゃねえの
>>539 少しバージョン番号のつけ方の仕様を決めてくれないかな。
たとえば、仮にバージョン1のソースコードがあったとして、
それをAさんとBさんが個別に修正した時、
それぞれのバージョンはどうしますか?
アプリケーションでバージョン番号を持ってるファイルの更新だろな。
どっちかっつーとpush時な気がするな。
>>543 どういう運用にしたいかによるでしょうね。
git推奨でいえば、バージョン番号 = ハッシュID
この方法が優れているのは、ソースコードに何も書かないでいいし、
複数の人が平行で作業していても、バージョン番号がかぶることがないというメリットが有る。
git推奨の方法以外をやりたいのであれば、その仕様を決めてもらわないと答えようがない。
545 :
デフォルトの名無しさん:2014/05/18(日) 22:49:36.09 ID:7h87TJ0i
リリース前に、バージョン番号を格納するファイルを更新しpusu、そしてtagをつける
ってやってる
>>544 >git推奨でいえば、バージョン番号 = ハッシュID
当のgitがそれやってなくね?
>>546 いえ、"ソースコードの" バージョンの話です。
アプリのバージョンの話ではありません。
推奨とか書いちゃうから
>>547 そうなのか。
ところで、アプリのバージョン番号はどうやって管理してる?
自動でインクリメントする仕掛けってやっぱほしいよね
それこそフックで何らかのスクリプト走らすって話じゃね?
自動なのはビルドだけでバージョンは手でいいんじゃね
CIツールでやれ
時々さ、--versionってやると
バージョン番号としてコミットIDが
表示されるのあるじゃん?
あれってどうやってるの?
コミットしなければ現在の
コミットIDわからないはずなのに。
>>553 それを表示するコードをビルド時にリポジトリ情報から自動生成すればいい
>>554 サーセン、LL使いなんでビルドなんて
ないんですwww
そうだそうだ!
>>557 ビルドは無くてもデプロイするだろ
インストールスクリプトみたいなものを用意しないか?
PHPerとかサーバで運用しているコードをそのままいじったりするから恐ろしい。
たまにgitにアプリのログやパスワードとか含まれてたりする。
> そのままいじったりする
どゆこと?
>>561 運用と開発の環境が同じものってこと。バージョンとかでなくて、同一のリソース。
Webサーバとして公開してるディレクトリでgit initして開発してるってことか
>>563 git じゃなくて Subversion だけどテストサーバーはその運用だわ。
開発と運用を分ける場合ってどうやるんですか?
例えばC:¥apache2.2¥htdocs¥kaihatu¥.gitで作って
運用で動かすのはC:¥apache2.2¥htdocs¥honban¥.gitみたいにしたらいいですか?
honbanフォルダでhaihatuをcloneして動かすっていう感じでしょうか?
リポジトリの話と実行環境の話がごっちゃになっとる
ものにもよると思うが開発マシンでそのまま運用するとか恐ろしいな
これがDevOpsというやつか
git archiveで取り出して、テスト環境にインストールしてテストして、同じものを本番環境にインストールが普通だよな? 普通だと言ってくれ。
テスト環境でリポジトリから直接インストールは許す。
今の時代、スクリプト言語でもソースコードを
そのまま配置するとかやっちゃだめだよ。
デプロイはサーバーにログインして
git pullとかやっていいのは小学生までw
この話git関係ないだろ
何のためのバージョン管理かわからんなw
問題出たら巻き戻せって事?
なんだかテストもしてなさそうw
574 :
デフォルトの名無しさん:2014/05/20(火) 23:20:14.34 ID:DeZ/1+VP
>>569 rsyncとかするの?capとか使うの?
gitじゃだめなのか、、?
本番環境にgit pullでデプロイするのは.gitが残るから問題あるよね
テスト環境ならいいと思うけど
緊急事態が起こって巻き戻すぐらいならええじゃないか
デプロイした先の本番環境で頻繁に巻き戻さないといけない方が余程テスト不足では
本番サーバーがそのままリポジトリのマスターってのもありそう。
GitHubでプルリクの流れがよく分かりません。
コミットするときはmasterではなくてbranchにしろとは聞いてますが、
自分が理解するところでは、
@フォークする
Aローカルにcloneで持ってくる
Bリモートにフォーク元のmasterリポジトリをaddする
Cローカルにブランチを作る
Dローカルのブランチを修正する
Eローカルのブランチに変更をコミットする
FGitHubのブランチに変更をコミットする
GGitHubのフォーク元のmasterリポジトリにpull requestを出す
Hマージされたらブランチを削除
Iローカルでfetchする
こんな感じになるんでしょうか?
最近気づいたけど変更したファイルだけコピーしたくてもxcopyじゃ出来んのな
チェックアウトでファイルの更新日時が更新されるとは
>>580 チェックアウトしてmakeかけたときに変更したファイルだけコンパイルするのが普通なんで
gitに限らずUnix由来のVCSはそういう挙動になる
言われてみればたしかにmakeするときはobjファイルとか別ブランチの状態になってたりするからそういう仕様でないと困るね
そのプロジェクトをgitで管理する前はxcopyで更新したファイルだけ移動してたけど移動には別手段考えるしかないか
gitにかぎらずだけど、よく考えて作られてるわ。
時たまgitのやり方に合わないやり方をしたいっていう人がいるけど、
よく考えて作られたgitがどうしてそうなっているのかを
考えたほうがいいと思う。
gitと全然関係ないGitHub固有のサービスの話題もここで扱う気なの?
GitHubPagesやGistsやissueやwikiやOrganizationや有料サービスについてや
色々とあると思うんだけど
587 :
565:2014/05/21(水) 18:07:42.08 ID:T6zeFgZl
とにかくどうしたらいいのかおしえてくだしあ
ゆとりはgitって名前が付いてるからgithubもこのスレでいいじゃないかっていうけど
そうやって幅を広くすると俺みたいなカスの質問が流れるか軽くあしらわれてしまうのでやめてほしい
gitみたいなバージョン管理ソフトで、
rc版使う奴ってどういう奴なの?
もしも不具合とかで全部吹っ飛んだりしたらどうすんの?
バックアップとてたとしても、そんな面倒な事してまで使う物なの?
なんなの?ばかなの?しぬの?
>>590 テスト版使ってる連中はリスク承知で使ってんだから大丈夫だろ
何かバグでどうにかなっても取り戻す手段くらい準備してやってるだろ
最高に意地悪でひねくれたテストを見せてくれ。
pushこまめにしてれば問題ない
テスト環境のをすべてシンボリックリンク貼ればいいだろ
>>590 gitは分散型だからユーザーが多くなれば多くなるほど
それぞれがバックアップを持っている。
だからたとえ一人が壊れても復旧可能。
そしてディスク壊れたらどうすんの?って話と一緒。
バックアップぐらいとれや。
>>539 GitHubのGistみたいな感じ?あれもGitで実現されてるらしいけど
>>580-583 VSCの仕様はコンパイルする言語向けって感じで
更新したスクリプトファイル等だけを借りてるサーバーにアップロードしたいという需要には応えられない感じだな
需要としてはアップロードに通信量制限があるとかそういう感じ稀なケースくらいだろうからしかたないか
>>601 UNIXの世界ではそういうのはrsyncを使うからね
タイムスタンプじゃなくてMD4を用いて更新チェックしたり
更新の転送もファイル全体じゃなくて変更部分だけを転送して通信量を最小化する
なるほどね
簡易なftp通信ツールじゃなく同期ツールを使うのか
gitとgithubは(media)wikiとwikipediaのような関係かw
ふむ
>>604
それはちがうね
wikipediaはmediawikiそのものだから
そういうこと言ってんじゃない
>>601 >VSCの仕様はコンパイルする言語向けって感じで
>更新したスクリプトファイル等だけを借りてるサーバーにアップロードしたいという需要には応えられない感じだな
いや全然違うと思う
VCSが言語を選ぶとかじゃなくて、VCSに向かない作業をやってるのがダメなんでは?
そういうのは専用のデプロイ・デリバリツールを選ぶべき。
上の方で話題に出てた「ビルド時にリビジョン埋め込みたい」みたいな要望も
VCSじゃなくてビルドツール等が行うべき領域。
バージョン管理に向かない言語とかは特にないと思うな
ソースコードそのものがバイナリとかいうのがあるなら分からんけど・・・
あと細かい指摘ですまんがVCSのタイポだよな?
しばらくググって悩んじゃったじゃねーか
>>608 >ソースコードそのものがバイナリとかいうのがあるなら分からんけど・・・
Piet言語のことか
bitbucketが作ったstash3.0ってなに?
developで開発中、急きょ必要がありmaster(stable)からfixブランチを切り修正masterにマージ
developでは弄ってるがfixでは弄って無いファイルの更新日時まで変更される(これはdevelopから切り替えた時点でおきるが)
ファイル更新日時だけでアップロードしようと思うと無理がある
とうとうgit 2.0が
gitchainを知らなくていいのって小学生までだよね〜
>>601 コミットしたものをサーバーにアップロードしたいのか?
コミットする前にテストしたりするためにサーバーにアップロードしたいのか?どっちかよくわからないけど
前者なら作業用のリポジトリをクローンしたものをローカルに用意しといてpullしてxcopyすればいいし
後者ならムダだと思うかもしれないけど今の挙動のままが正解だと思う
checkoutしてタイムスタンプが更新されたファイルは転送されるべきなんだよ
git checkout -b topic_foo HEAD
git push origin topic_foo
というのをよくやるんですが、git push origin topic_foo をもっと簡潔にできますか?
具体的には topic_foo を省略したい。
初審者質問でごめんなさい!
616 :
デフォルトの名無しさん:2014/05/27(火) 03:17:32.65 ID:Ha9yhWBf
バッチにしろ
>>615 alias p="git push origin topic_foo"
>>615 git config push.default current
自己責任で使え
>>616 必ずしも連続して実行するわけではないので、バッチでない方法がいいなあ。
git checkout はこれでいいと思うので、git push origin topic_foo が簡潔になるよい方法があれば教えてください。
(topic_fooが、実際にはけっこう長い名前なので、入力するのがめんどくさい)
>>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
> (topic_fooが、実際にはけっこう長い名前なので、入力するのがめんどくさい)
TABで補完すれば良い
>>618を設定しとけば、topic_fooを省略してgit push originでいける
remoteがoriginならこれも省略できるから、git pushでいい
623 :
デフォルトの名無しさん:2014/05/27(火) 16:10:42.92 ID:Ha9yhWBf
バッチすら作れないのか(笑)
619がしょぼいのか619が使ってるosがしょぼいのか(笑)
うちのvistaならファイルすら不要でランチャーにいくらでも作れるんだが(笑)
vistaでなければ、バッチなんてめんどくさいもの作る必要すらない。
625 :
デフォルトの名無しさん:2014/05/27(火) 19:21:12.08 ID:Ha9yhWBf
いやいや面倒でもなければターミナルに切り替える必要もなくただボタン一つ押すだけだから(笑)
必ずしも連続して実行する訳ではない、と言われてるのに脳内で作れないって決めつけちゃうのヤバいな
これからの日本社会に必要な人材だ
バッチってもしかしてブランチ毎に作るんか?w
主となるブランチが1個なら別にいいだろ
元の質問はトピックブランチの話をしてるんだから
主となるブランチが1個とかじゃないだろw
トピックブランチっていくつあるの?
そこからかよw
無知が提示する案ほど
迷惑なものはないよなw
作ったトピックブランチを確実にpushする前提なら
(トピックブランチ作ったけどやっぱpushするのやめたーってのが無い前提なら)
push.default=currentにしなくてもpush.default=simpleで(2.0からのデフォルト)
ブランチ作ってすぐgit push -u origin topic_fooをやっとけばいい
それ以降はgit pushだけで済む
コミットの回数とタグの数をそれぞれ取得する方法おしえて
コミットの回数
git rev-list --all --no-merges | wc -l
タグの数
git tag | wc -l
637 :
デフォルトの名無しさん:2014/05/29(木) 00:23:03.07 ID: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>
どうすればいいのでしょうか
>公開リポジトリにプッシュしたコミットをリベースしてはいけない
>
>この指針に従っている限り、すべてはうまく進みます。もしこれを守らなければ、あなたは嫌われ者となり、友人や家族からも軽蔑されることになるでしょう。
639 :
デフォルトの名無しさん:2014/05/29(木) 00:40:14.69 ID:RABmUlyV
そうなったらまずはgit pushを取り消せばいいのでしょうか?
>>636 gitってこう引数がおおくてわけわかめ
コマンドを増やしてgit commit-countみたいにわけてほしい
wcは引数じゃないだろ
unix使いの大好きなシェル芸
>>641 シェルの引数じゃん
とか屁理屈を言ってみる
シェルの引数ってなんだ?wcはただのコマンドだぞ
>>645 シェルへの引数と言いたかったんじゃないの?
シェルへ引数なんて渡してないし
wcはトイレだわな
>>647 はいはい
人と会話できるように頑張ってね (ハート
msysgitのv2.0.0はまだまだ先かな・・・
>>636で多いって言ってる人って、
リダイレクトやパイプって使ったことこないの?
Linuxを使う上での基礎。初心者レベルのことなんだが。
自己紹介よろしく。Linuxつかえませーんという自己紹介をしてくれw
それ「おまえが気持ちよくなれる」以外の何のメリットがあるんだ
シェル芸とかって言って煽る方もなんだかな。
commit-countとかどんどん増やしていってもきりがないし、どうしても専用コマンドを作らないといけないってもの以外は出力をパイプで処理とかでいいじゃん。
まあ
>>635みたいな無能そうな奴の質問には答えないほうがいいのかもしれないな。答えても「わけわかめ」とか言われるんだからw
コマンドが多機能になっても、単純なコマンド組み合わせた方がわかりやすいから、ついついパイプ使っちゃうな。
githubとかでもなんでもsshを使ってgitする方法が安全って言われているじゃないですか
んでsslキーっていうんですかid_rsaっていうファイルありますよね
こういうのをdropboxに置いて管理するのは間違ってますか?
>>657 sshのid_rsaファイルのことをsslキーなんて言わない
秘密鍵のid_rsaファイルは普通パスフレーズをつけて暗号化してあるけど、それでも他人から見えるとこに置くべきではない
dropboxは厳密に他人から見えない場所とは言い切れない
その鍵で何を管理してるかで鍵の取り扱い方針は決めるべき
まじっすか
なんかdropboxで共有したらどの環境からでも接続できるよってブログを見かけたんですけどやっぱりセキュリティ的によくないですよね
>>659 どの程度の強度の暗号化をするかによるね
とりあえず10文字未満のパスフレーズ程度じゃあまり役に立たない
安全のために鍵かけるなら鍵の扱いも安全にしろよw
というかid_rsaってPC外に出すもんじゃないんじゃないの?
間違えた
×というかid_rsaってPC外に出すもんじゃないの?
○というかid_rsaってPC外に出さないもんじゃないの?
どうしても移動させるときは暗号化したUSBメモリ
665 :
660:2014/05/29(木) 19:41:02.34 ID:H5LJYYF1
一応パスワードは70文字にしています
パスワードはkeepassに保存していて、パスワードが保存されているデータベースと鍵ファイル?の2つもdropboxで共有しようと思ってました
>>665 パスワードが保存されているデーターベースが一緒の場所に置いてあるなら、
その70文字に意味無くて、keypassのマスターパスワードの強度が問題になる
>>659 オンラインの認証は、警備員の見てる前で金庫の暗証番号入力するようなもの。
dropboxや情報漏洩などで盗まれた暗号化された情報は、金庫を持ち帰って機械なども使って開けようとするもの。
警備員の見てる前でそんなことしたら捕まるが、持ち帰ればやりたい放題。
>>668 最悪はちょっと言い過ぎたかもだけど
それは暗号化してない秘密鍵をdropboxに置いてるのとほぼ変わらない
つまり他人に見られる可能性のある場所に一般的なパスワードをそのまま置いてるのとほぼ同じ
いいえ、最悪です。
f
ファイルを作らないでgitに直接データをコミットする方法ありませんか?
rubyのgollumってgitでデータを管理しているそうでファイルを作らないでどうやってgitで管理しているのか疑問に思って質問しました
あるブランチ上にある2つのコミットの間で変更・追加・削除・移動されたファイル名(ファイルパス)の一覧を表示する方法ありますか?
>>674 git diff a..b --name-status
>>673 patchを取り込むのってファイルなくてもできそうな気がするけど、どうだろう?
>>673 gitのレポジトリの構造は簡単だから、レポジトリに直接アクセスするライブラリとか各種言語向けにいろいろ作られてる
gollumはrubyで書かれてて、rubyにはgritっていうレポジトリに直接アクセス可能なライブラリがあって、gollumもgritを使ってる
ここでたまに話がでるgitlabもgritを使ってるね
すげえそんなのあるのか
phpかpythonでそのライブラリってないっすか?
rugged なら、その上のlibgit2下にずらっとあるけどそれでどうかな
どうもありがとう!
どうしたしまして!
どうしたいしまして!
Python2/3のgitインターフェースはないですか?
できればbottleみたいにインストール不要なので
gitlib2のPythonバインディングはコンパイルが面倒でした
なんでやねん
秘密鍵にパスフレーズ振ってるやつなんていねーよ……
ノートPCに秘密鍵入れといて
ノートPC盗難されたらどうするつもり?
>>692 諦めるに決まってんだろ、何言ってんだ
お前、自分の頭にしかパスワードが無ければ
頭を持ってかれるんだぞ? それに比べれば
ノーパソくらい大した損害じゃねーよ
秘密鍵が盗まれたってそれがどこにつながる鍵なのかわからなければ悪用されないじゃん
ところがどっこい
>>692 HDDやSSDは暗号化して使うのが基本
そうじゃなければ秘密鍵ファイルを暗号化汁
暗号化されたってログインされたら意味無いじゃん
699 :
デフォルトの名無しさん:2014/05/31(土) 16:59:58.04 ID:2ArsU7CW
2.0のリリースノートを機械翻訳したら、何かいろいろ速くしたって書いてあるようだけど
実際どうなんだ
てめーが、やれ
>>694 つまり、どこにつながる鍵なのかわかれば悪用されるって
君はいいたいんだよね?
yes
githubに登録してある公開鍵はすべて誰でも簡単に取得できるから、
秘密鍵が盗まれると簡単にイタズラ可能だよ
>>703 ん?なに?w
もしかして「とは限らない」って言ってるの?w
俺は悪用される可能性があるって話をしてるんだけど。
1. パスワードが盗まれたってそれがどこのパスワードかわからなければ悪用されないじゃん
2. つまりどこのパスワードかわかれば悪用されるってことだよね(俺が言ったこと)
3. 裏ガー、対偶ガー
こう言われた気分w
どこのパスワードかわかっても悪用されるとは限らない(キリッ)
こう言ってるように俺は感じたw
具体的に何割とか計算できるもの以外の可能性は
ただごねてるだけと変わらない
本当に悪用されないと思ってるなら
ここで秘密鍵を公開すればいいんだよな。
じゃあさ
8gjk39joi4njodgf9
ってパスワードがあったとしたらこれで悪用してみろよ!
>>712 どうせそれ偽物だろw
偽物を貼った時点で自覚してるじゃん
ここに秘密鍵を書くのは怖いことだってw
だいたい秘密鍵がバレた時は、
どこに接続しているかの情報もわかることが
大半なのでそこまで書くべきだよ。
え?どこの秘密鍵かは答えられない?
あぁ、それは、どこの秘密鍵かわかれば悪用されるって
自覚しているからだね(最初に俺が言ったこと)
(ヒント)わずか22秒で書けると思う?w
偽物ってなんのだよ
このパスワードがどこのサイトのかわからないと使い道ないぞ
あとidもわからないとまったく使えないぞ
これはおれんちのlocalhostのパスワードだから
なんでどこに接続しているかわかるんだよ
>>706 > 俺は悪用される可能性があるって話をしてるんだけど。
可能性とか言いながら
> つまり、どこにつながる鍵なのかわかれば悪用される
とか、言い切る奴って (w
悪用される可能性があるときは、必ず悪用される。
というのが防犯の鉄則だよね
720 :
デフォルトの名無しさん:2014/06/01(日) 15:03:48.27 ID:G7XNVB3u
スレチなので移動をおながいします
パスワードと公開鍵認証の秘密鍵との違いを理解できてないのか
>>692 ペアの公開鍵を捨てる以外になにがある?
トピックブランチ名をチケット番号と紐付けて運用してるとして、
1. ブランチ ticket1 を切る
2. ticket1 にたくさんコミットして、開発・テスト完了
3. ticket1 を develop にマージして push
4. ここで、ticket1 に実装漏れとかバグが発覚
この場合、どんなブランチの使い方が妥当なの?
ticket1 っていう名前を再利用して、そのままブランチ切って開発・マージする方法とか
いったんマージしたのを revert して、ticket1 のトピックブランチを正しく補完してからマージしなおすとか
別の ticket2 を作って、ticket1 と ticket2 は git の外での関連付けに任せる方法とか
> いったんマージしたのを revert して、ticket1 のトピックブランチを正しく補完してからマージしなおすとか
漏れてまいそうで(アカン)
俺なら別のチケット切る
チケット番号とブランチ名を一緒にしておきたいのはBTSの運用の都合だと思われるので、
BTSを重要視し、ブランチ名を一緒にしておく事が大事だと思うならするならdevelopの最新からもう一度ticket1というブランチを切ってそこから修正すればいいと思うし、
Gitの履歴の方が重要だと思うならticket1_fixとかで新しくブランチ切ればいいんじゃないかな。
言語ごとにリポジトリを作成した時に自動で.gitignoreを生成するライブラリとかってありますか?
ステマ乙
>>728 リポジトリを作る時に言語名を入力してgit init と.gitignoreをつくってほしいんですよ
有りそうな気がするんですけどそのサイト見て自分でコピペするしかないんですかね?
.gitignoreに全部入れりゃいいじゃん?
たとえばPHPの開発だとして、Ruby標準の
.gitignore(それが何なのかよくわからんが?)を
追加して何が問題なんだ?
だいたい、一つのリポジトリで複数の言語使うことなんて
よくある話で、言語名で.gitignoreを作るという発想がよくわからん。
どうせエディタのテンポラリファイルとかバックアップファイルとかは
言語名指定しても含まれないんだろ?それじゃ片手落ちじゃね?
そもそも、言語標準の.gitignoreって意味分かんないんだよな。
どっちかと言ったら、.gitignoreに入れるものは言語ではなくて
使うツールによって決まるものだろう。
そんな事言ったら世の中のフレームワークやライブラリに喧嘩売ることになりますよっと
そういうツールが無いのなら自分で作ってしまえばいいの
そしてそのツールを売りに出せばバカ売れ間違いなしなの
>>732 意味がわからん。
今話しているのは.gitignoreの話で
フレームワークやライブリの話は全く関係ないだろ。
基本的な所がわかってないのかもしれないな。
言語名を入力してgit initとか言ってる時点でハテナだし、
(1リポジトリ = 1言語ではない)
言語名が決まったからって.gitignoreは決まらない。
たとえばC言語であっても、Linux用であれば.oを.gitignoreに
追加するだろうけどWindows用だと.objeだし。
その他のOSを考えると、.gitignoreは言語名できまるのではなく、
使うツールで決まるもの。(
>>731で既に俺が言ったこと)
あ、なるほど
>>728は
>>735を指定したとおりに繋ぎ合わせてくれるのか
やるじゃないかMr. Blau
.gitignoreはあとから入れるもんだよなー。
使うツールが決まった時点で追加するものだ。
>>728にコマンドラインから取得する方法まで懇切丁寧に教えてくれてるし
何も困る事ないじゃないですかー
複数言語入れて使いにくいのはおつむの問題
リリースでビルドしたいならタグを使えよ
linuxのgitのdiffコマンドって何のdiffツールですか?
githubみたいなdiffが欲しいんですけどあれってgit diffの結果を出力してるだけなんですかね?
>>741 git checkout v2.0.0しないと
745 :
216:2014/06/03(火) 22:17:39.88 ID:Q95pPloD
ダメだ一つのフォルダにphpで作ったやつとかrubyで作ったやつをごっちゃにしていれてるとわけわかんねえ
やっぱり言語ごとにフォルダ分け内とダメだね
gitで管理する以前の問題では
この1ヶ月間何やってたのかと
一ヶ月でけっこスレすすんでるなw
言語ごとにというか、ひとつの言語のコードでも機能ごとにある程度フォルダわけないと混乱するだろ
そもそもどういうリポジトリなんだ
c:¥myrepo¥gazoudownloader
c:¥myrepo¥createxml
c:¥myrepo¥bbs
こんな感じでプロジェクトの名前だけ
もうねわけわからん
このプロジェクトはなんだったかな?フォルダの中身を覗いて初めてphpとわかる。php用の環境を立ち上げる
↓
よしこのphpで書いたプロジェクトは終わったから続けて他のphpのプロジェクトを更新するか
↓
あれ?どれがphpで書いたプロジェクトだっけ?これかな?あ、ちがうこれはperlだ。じゃあこれは。ああrubyだった。じゃあこれは・・・よしphpだ。
もうめんどうくせえよ
ReadMe.txtくらい書けよ。
grep使え。
c:\myrepo\php\gazoudownloader
c:\myrepo\php\createxml
c:\myrepo\perl\bbs
とかにすればいいんじゃない?
そうするとここのスレの先輩が怒るんですよ
誰も怒ってないと思うが
もうお前がめんどうくせえよ
git関係ねーし
>>752 gitの話関係ないよね?
単にディレクトリで分ければいいだけの話だよね?
>>755 スレ読んでみたけど、
あんたがgithubのプロジェクト名とローカルにリポジトリを置くパスの区別がついて無いだけだな
>>754 それは馬鹿だろw
だいたい、プロジェクトごとにリポジトリを分けるのが
普通だってわかってる?
c:\php\myrepo\gazoudownloader
c:\php\myrepo\createxml
c:\php\myrepo\perl\bbs
こうすればいいだけだよ。
git関係ない。
整理術の本でも買って読んでなさいって感じ
>>759 gazoudownloaderとかcreatexmlとかbbsが各々リポジトリで、それぞれgitで管理されてて、
myrepoっていうのがリポジトリ置き場ってことじゃないの?
「超」整理法で日付ディレクトリ最強ですね
>>761 あぁ? くだらなすぎてちゃんと見てなかったよw
c:php\gazoudownloader (1リポジトリ)
c:php\createxml (1リポジトリ)
c:perl\bbs (1リポジトリ)
これでいいのか?
繰り返し言う。リポジトリの中に言語名を入れる奴は馬鹿。
だいたいさ、1つのリポジトリで
複数言語使うことなんてよくある話なんだから。
リポジトリに言語名入れるとかありえないって
少し考えればわかるじゃんw
リポジトリの中に言語名のフォルダあるのけっこう普通だと思うけど?
javaの標準的なプロジェクト構成とかそうだし
railsなんかもjavascriptとかcoffeescriptなんかのコードは言語名下のフォルダに収まってる
.phpで全部検索すればいい。
それかシンボリックリンクで言語ごとにも分類すればいい。それなら、複数言語にも対応可能。
>>765 リポジトリ「名」の中に言語名入れるなって話だろうに
普通だから良い方法とは限らない。
>>765 githubで探してきて。
その数の1000倍は言語名が
リポジトリに入ってないだろうさ。
複数のリポジトリを一つにまとめるって
subversionの中の一部で流行った
バッドノウハウだよね。
subversionがリポジトリを作りにくい上に
tracが単一リポジトリしか対応していない時代があって
その場合に苦肉の策として考えだされた間違えたやり方。
リポジトリはプロジェクトごとに分けましょう。以上。
772 :
デフォルトの名無しさん:2014/06/04(水) 01:08:55.77 ID:njjTYj+V
こりゃもう「リポジトリ」というものに関して語るスレが必要だね
おいクソども。
クソでスレ進めんなボケ。
いやこの人は、例えばこんな感じにgithubのリポジトリがある場合に
ore/gazoudownloader
ore/createxml
ore/bbs
ローカルには、こんな感じに置いても何の問題も無いということが解んなかったんじゃない?
c:\php\gazoudownloader
c:\php\createxml
c:\perl\bbs
railsはrubyだけ
symfonyはphpだけ
gollumみたいに複数言語を使うほうがめずらしいよ
>>775 そりゃ、その言語のフレームワークだからだろw
アホすぎだw
(フレームワークを使ってる/使ってなくてもいいが)
アプリのコード見てみろ。
たとえばgit
https://github.com/git/git は
C 45.9% Shell 34.6% Perl 9.7% JavaScript 3.4% Tcl 2.7% Python 2.4% Other 1.4%
だ。今はリポジトリ見れば簡単にわかるようになって便利だな。
リポジトリの上のカラフルなバーをクリックするんだよ。
ローカルなんだからディレクトリ名なんか好きにすりゃいいし、
数が増えすぎてわけわからなくなったらwikiでも立ててカタログ作りゃえーやん
svn使ってた時に1リポジトリ複プロジェクトにしたおかげで
gitに変換する時に死んだわ…
俺がリネーム厨だったせいなのが原因だけど
編集するための環境が複数言語に対応してないことの方が大問題じゃね?w
>>776 そんな特殊なものを例に出されてもねwwwwwwwwwwwww
ほとんどのプロジェクトは1つの言語だけで作られてるでしょwwwwwwwwwwwww
>>780 ウェブ系ってたくさんの言語あるよ
というか普通の開発でだってひとつの言語で済むのは
すごく稀な例だと思うよ
いつまでこのスレチの話題続くの?
ぷろじぇくと100も200も増えたらどうすんだよwwwwwwwwwwwwwwwwwwwwwww
1つのフォルダに全部いれとくのかよwwwwwwwwwwwwwwwww
探すのたいへんだぞwwwwwwwwwwwwwww
>>783 同時にそんな件数かかえられるわけないだろ。
現在かかえてるやつだけ残して終わったやつは消せ
>>783は言い間違えたんだよ。
本当に言いたかったのはこっち
ぷろじぇくと100も200も増えたらどうすんだよwwwwwwwwwwwwwwwwwwwwwww
1つのリポジトリに全部いれとくのかよwwwwwwwwwwwwwwwww
探すのたいへんだぞwwwwwwwwwwwwwww
786 :
デフォルトの名無しさん:2014/06/04(水) 23:41:02.34 ID:lKY790DW
一つ質問
git mv に失敗したっぽくて、git log --follow してもログが分断されてしまった…
(ようするに消した後、新規追加と同じになってる)
この状況で、ログをくっつける事は可能でしょうか?
>>786 git mvは「消した後、新規追加」と同じことをするコマンドだから何も心配はいらない
>>787 でも、git mv に成功した場合は、git log --follow でログが表示されるのが
されないから多分分断されてる
ムリクリfollowするようにしたいけど、その方法を教えてもらえればと
>>788 gitは、あるコミットにおいてrmされたファイルとaddされたファイルの内容を比べて、
中身がだいたい同じ場合それはファイルがmvされたのだと適当に判断する
あんたがmvに成功したと思ってるのは、mvしたファイルの内容がgitの許容範囲内だっただけ
>>789 なるほど、薄々そんな気がしていたがやっぱりそうだったのか…
リファクタリング中だったから、git mv した後いぢり過ぎたのか
これからはgit mv した後はすぐコミットする事にします。どうもでした。
ファイルの移動に限らず、ちょっとした関数の移動でも1コミットにしてるな
「内容を全く変えずに移動」で1コミットになってると、行番号だけがずれてるcherry-pickなんかも受け入れてくれやすい
と散々rebase&cherry-pickしまくった経験則だけど
フォルダのどこからでもgit addで追加する場合ってどうやるのか教えてください
git add -Aってカレントフォルダだけですよね
>>792 追加するフォルダかファイルのパスを指定する
初歩的な質問ですけど
ブランチで開発やってて、他のブランチの結果をpullするって出来ますか?
master -------------
branchA \____?_ _ _ _
branchB \______/
図が難しいので順序が逆ですが
branchBが先にmasterからブランチして
branchAが次にmasterからブランチした。
branchAがbranchBの結果をpullして取り込みたいんですが。
branchBがmasterにmergeすると簡単なのかな?
教えてください。
>>796 Gitのマージは賢いからその程度なら全く難しく考える必要なく
branchA側からbranchBをマージできるぞ
798 :
デフォルトの名無しさん:2014/06/07(土) 07:34:24.03 ID:paHf3aPB
カレント・ディレクトリの tags ファイルをローカル・リポジトリに追加したいのです
が "git add tags" できません。
"git add tags " コマンド自体を実行させても、エラーを返しません。上手くいったか
と思って "git status" で確認すると、インデックスには tags ファイルは追加されて
いません。tags ファイルを別の名前 tags_test に rename すれば "git add
tags_test" でインデックスに追加されます。でも Vim の補完に使うファイルであり
tags ファイル名のままにしておかねばなりません。"git add -- tags" と実行させても
同じです。
"git add tags", "git add -- tags" が働かない理由と対策を教えてもらえないでしょうか。
OS 環境は Windows7 であり git version は下の様になっています
git --version
git version 1.8.1.msysgit.1
再現しないけど
既に管理下に入ってるんじゃないの?
800 :
デフォルトの名無しさん:2014/06/07(土) 08:00:43.50 ID:paHf3aPB
Repository 内に無いことは最初に確認済みでした。
でも、今 git ls-files で確認してみたら tags ファイルが入っていました。このおっちょちょいが。
失礼しました。ありがとうございました。
どんなコマンドを入力してもログは絶対に消えないですか
rm -fR .git
803 :
デフォルトの名無しさん:2014/06/09(月) 18:34:36.80 ID:dvi2Sb61
コンフリクトしてpushしたやつを戻すの難しかったお
Git恐怖症になりそう
コンフリクトしてpushって言ってる言葉自体がわからんw
共有リポジトリなら、revertコマンド一つ。
自分専用リポジトリならローカルを適当に書き換えて
push --forceすれば終わりなんだけどな。
最悪、ハッシュさえ覚えとけば(普通は覚えるまでもなくreflogに残ってるが)
ブランチの状態をある時点まで戻すのは簡単だからな
これができないような状態にまで壊すのは、意識的にやらない限りなかなか無い
revert様々やで
途中で分岐させて、片方にコミットAとそのrevertコミット、もう片方にAのチェリーピック食わせてて両方マージしたら暗黙にrevertが優先されて焦った事があった。
マージ賢いけど、賢く運用してる場合に限り賢く振る舞ってくれる感じがする。
>>807 試しにやってみたけどcherry-pickした方が残るぞ?どんな条件でそんなこと起こるんだ?
再現されない
git init
vim README
git add .
git commit -m "initial commit"
git checkout -b branch1
vim foo1.cpp
git add .
git commit -m "add foo1.cpp" -> 10b43c7
vim foo2.cpp
git add .
git commit -m "add foo2.cpp" -> 2bf1437
vim foo3.cpp
git add .
git commit -m "add foo3.cpp" -> 3b31558
vim foo4.cpp
git add .
git commit -m "add foo4.cpp" -> 086ca1c
git revert 2bf1437 3b31558 -> foo2.cpp foo3.cpp削除
git checkout -b branch2 master
git cherry-pick 2bf1437 3b31558 -> foo2.cpp foo3.cpp作成
git checkout -b branch2m
git merge branch1 -> 問題なく融合(foo1.cpp〜foo4.cppが存在)
git checkout -b branch1m branch1
git merge branch2 -> 問題なく融合(foo1.cpp〜foo4.cppが存在)
そう…再現しねぇんだよ…なんでかなぁ。
811 :
デフォルトの名無しさん:2014/06/10(火) 17:44:37.82 ID:Rfvv6P0m
git resetで前のコミットに戻って編集した後pushしたい時って今までのコミットrevertしてからpushするしか無いの?
こんな感じ?
C4まで公開済み
↓
[C1]-[C2]-[C3]-[C4]-[C5]-[C6]-[C7]
↑
現在のHEAD
C3まで戻りたいのならC4までresetした後、C3をrevert、でpush可能
C5まで戻りたいのならC5までreset、でpush可能
813 :
デフォルトの名無しさん:2014/06/10(火) 19:14:50.43 ID:Rfvv6P0m
herokuでwordpressみたいなPaaSの運用って思ったよりめんどくさいのね。
Gitの管理していないファイルの扱いをどうしたらいいんだ。
>>815 その問題は、データベースに保存するデータを
どうするかって話と同じだろ?
違うでしょ。
herokuの場合wordpressが作成するデータベースは勝手に消えないけど、アップロードしたファイルは消えちゃう。
解決法としてストレージを外部に持つしか方法がないようだ。
heroku使うのにwordpress使うってカスがやること
git version 1.8.5.2.msysgit.0 で
git rm -rf dir/
fatal: pathspec 'dir/' did not match any files
ってファイルは消せるのにディレクトリが消せないのはどういうこと?
dir/内は空っぽです
PaaSの環境によるけど、herokuでwordpressってすごく普通だけど。
>>819 Gitはファイルを管理するけどディレクトリそのものは管理しないから
.gitkeepでググれ
823 :
819:2014/06/12(木) 00:35:02.82 ID:KlCOfI2g
>>821 確かに…別の場所でpullしたらディレクトリ消えてた
git内では消えてるのにディレクトリそのものは残ってるから2回目以降に表示されてたんだな
ファイルはgit rmでばっさり消すくせにディレクトリは消さないってなんでなん
824 :
819:2014/06/12(木) 00:42:00.03 ID:KlCOfI2g
>>822 ググった
なるほど、git mvでディレクトリ内のファイルを先に全部移動したから、その時点で
gitの管理からはずれてたのか
もう理解できたからいいけど、なんか直感的な挙動じゃなかったな
>>823 だから、Gitはファイルを管理するけどディレクトリそのものは管理しない
git rm はGitで管理してるファイルを消すコマンド
ワーキングツリー上の空ディレクトリを消したければ普通のコマンド使え
リロードしてなかった
827 :
819:2014/06/12(木) 01:33:07.61 ID:KlCOfI2g
>>825 一応試したところgit rm -r dir/で実際のディレクトリもちゃんと消えるね
828 :
819:2014/06/12(木) 01:34:47.60 ID:KlCOfI2g
>>827 もちろん空でないディレクトリに限るけど
>>827 dir/の下がgitで管理されてればね
ついでに消す
またリロードしてなかった
最初の頃に管理に入れた、とあるファイルが
作り込んだ後になって「各自で別々の内容のまま持つべき」
って話になったんですが、どうすればいいのでしょうか?
git rm --cachedだと各自がpullしたときに消えちゃう…各自の持ってるファイルは現状のままにしたいです
あ、現状のままというか、各自で別々の内容にしていけるように、です。
.gitignoreに書けばいいんじゃないの?
>>833 既にコミット済みなので、.gitignoreに書いても除外されないんですよね…
じゃあコミットからはずせよ
836 :
デフォルトの名無しさん:2014/06/12(木) 03:08:14.85 ID:LUHHUJAl
非管理ディレクトリでも作ってそこにファイル置いてシンボリックリンクでも張ってつかえばええんちゃうの
とにかく業務これだけ使えれば万全ってコマンドをあるだけおしえて
commit
add
checkout
branch
remote
log
reflog
reset
これ走ってる
grep
rebase
status
diff
revert
こいつらも覚えとき
bisect、blameもおすすめ
>>831みたいなときに
.gitignoreに書いて、git rm --cachedして、その状態をcommitしてたんだけど
そうするとちょっと問題があって
そのcommit以前をチェックアウトした後に、そのcommit以後をチェックアウトすると、
管理から外したファイルが消失しちゃうんだよね
>>836はまったく未知だったわちょっと動作を確かめてみる
Pro Gitにも書いておいてほしい
>>836はローカルなリポジトリだけに作用する感じなのかねえ
特定のファイルが最初から.gitignoreに登録されてリポジトリには登録されるべきでなかったことをリモートリポジトリにも反映するには、
git filter-branchで最初から書き換えてしまうしか無いのかな
日々の作業を自動化するプログラムを書いてgitで管理していくとプロジェクトが50個超えるんですけど
ここの先輩もそんなにいきますか?
日々の作業がそんなにないんだけど...
そのプログラムとやらをまとめて一個のリポジトリにすりゃええやんけ
そんな自動化できることばっかなら仕事しなくていいんじゃね
裏山
自分が書いたコードをレビューしてくれるサイトってありませんか?
>>847 githubにコード晒して
レビューしてくださいっていうとか
Git関係なくね?てか使ってる言語系のスレで聞けばよくね?
てかフルボッコされたいならこの板で良くね?
githubってあんまりレビューを見かけることがないんですよね
というかレビューをするのが前提って感じでも無いですし
レビューに力を入れているサイトってないんでしょうか
stackoverflowのほうが精神衛生には良さそう
同じボコられるにしたって、匿名と名前ありでは素直に受け取れる度みたいなもんが変わってくると思う
stackoverflowの日本語版が出来たらそこがいいだろう
stackoverflowは質問事項を明確にしないと管理人に質問を凍結状態にされるぞ
レビューしてくださいとかダメだ
stackoverflowで質問したことあるけど勝手にタイトルを変更された
タイトルと質問内容をレビューしてもらったわけだ。
コードレビューならとりあえずgithubに上げてみ。誰かのコードレビューすれば逆にレビューしてくれる。
>>850 コメントやりあってるのがレビューじゃなくてなんなんだよ…
この人の考えてるレビューはみんなの思い描いてるのとは別物だな、たぶん
いやレビュー目的でgithub見に来てる人っていないでしょ?
海外のチャットで僕の英語を添削してくださいなんて言わないよね
だから添削に特化したlang8みたいなのがあるんだよ
素晴らしいソフトウェアをもっと素晴らしくするために自分の考えだした素晴らしいアイデアを無償で提供しようってのが公開リポジトリでの交流だろ?
どこぞの誰かが添削してくださいって言って公開してる何の役にもたたんコードを無償でレビューするとかどんな暇人やねん
いっそのことコードを会員相互でレビューしあうサイトでも立ち上げてみたら?需要があるんなら儲かるんじゃね?
いいかげんGitとは全く関係無いんで他にスレでも立ててやってくれ
>>859 > どんな暇人やねん
にちゃんでうだうだ言ってるお前が言うなよ w
クソサービスすぎて見てるほうが死にたくなる
死にたいなら死んでいいと思います。
gitのサブモジュールって、サブモジュールが更新されたとき、メインのgitでpullすればサブモジュールのgitも最新版になるの?
ならんならん
>>869 ありがとうございます。
ということは、サブモジュールが更新されてたらcomposerとかbowerとかつかわないけないんですね。
なんでやねん
なんでそうなるんや…
git/composer/bowerあたりが全部ごっちゃになってるのか…gruntとかnpmとかもか
874 :
デフォルトの名無しさん:2014/06/19(木) 02:52:18.29 ID:GKSvjGH6
>>873 はい。ごっちゃです。
nodejsで、サブモジュールのクラスを継承してるんですけどサブモジュールのライブラリを更新したらメインのサブモジュールも自動更新できるように出来ませんかね?
>>875 外部ライブラリのバージョンを、バージョン管理しないなら、
サブモジュールを使わないで「バージョン管理しないディレクトリ」
として管理しなければいいよ。
>>876,877
ご親切にありがとうございます。
勉強してみます。
細かい単位でコミットしてないとダメだなあ
あんまり大きい作業単位でコミットしてるとrevertとか便利そうな機能が使えんし
セーブする感覚でやっちゃってる
適当にrebaseしないと散らかりすぎるかのう
俺はブランチ切る→そのブランチ内でセーブ感覚でガンガンコミット→squash
それがベーシックなやり方だろうね
ブランチ未満の粒度の作業単位は残す必要ないだろうし
個人的な好みとしては
rebaseでの根本移動はアリだけど
squashでのコミット潰しとFFマージ主義はナシ
884 :
デフォルトの名無しさん:2014/06/20(金) 01:16:15.04 ID:9P55PKrO
開発用テストサーバとローカルのコードを同期するのに同期用のブランチを切って使ってる。
それだと本当にタイプミスで動かないものの修正とかでcommit/push/pullになって、コミットログも"a"とかなので、さすがにそんなのは履歴として残すメリットはなんにもないので、
本来コミットするべきタイミングでそういうのはsquashしてトピックブランチにcommitしてる。
原理主義者からは単なる同期にgitを使うなとは言われるかもしれないけど、
他のツールを使うのも色々とめんどくさいしね。
> squashでのコミット潰しとFFマージ主義はナシ
時と場合によって変えるべき。
なぜ「mergeはこれしかダメ」と決めつける人が多いのだろうか。
squashするべき時はsquashして、するべきじゃない時はsquashしない。
FFマージするべき時はFFマージして、FFマージするべきじゃない時はFFマージしない。
それだけじゃないか。
決めつける人は、自分がやり方ことが明確になっておらず、
ただコマンドを覚えているだけなんだろうな。
886 :
デフォルトの名無しさん:2014/06/20(金) 01:50:53.36 ID:fQqGdEOm
自分のやり方と違う奴の存在認められないからすぐ叩きが始まるのはいつものことではないか
1コミットにできないブランチはそもそもブランチの切り方を失敗してる説
1コミットにまとめようとしてsquashしたらコンフリクトがハンパなく発生して死にたくなった
>>888 それはmergeでコンフリクトが出ているだけで
squashしたせいじゃないよ。
squash しなければコンフリクトも小出しになると言いたいのでは。
squashしたらこんなのがでる
$ git rebase -i HEAD~3
error: could not apply f7701b6... some edited
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
Could not apply f7701b697f698715b8e2ec3e339655e43e0e6f31... some edited
taro@YOSHIDA ~/myproject/helloworld (master|REBASE-i 2/2)
$
まとめるコミットが多いとこうういのがたくさん出る
893 :
デフォルトの名無しさん:2014/06/20(金) 20:08:47.08 ID:fQqGdEOm
がんばれがんばれどかべん
よーしだたろう
rebaseはマージコミットの時に行った編集を再現できないから、マージコミットを巻き込んでrebaseしたら
何度でも同じコンフリクトが起きるよ
そして、「何度でも同じコンフリクト」が起きた時
自動で解決してくれる設定が、
あるから誰か答えてね。
initからsquashを使うまでの流れを教えてください
merge --squashはまず使わないが、
rebaseのsquash, fixupはよく使うレレレのおじさん
だってgit bookのページに書いてあったsquashってrebaseの話しかなかったんだもん!
ソーカソーカヨシヨシ
バージョン1.15
ならリリースして少し改造
バージョン2.25
なら、一度全て作り直したって感じでいいのかな?
バージョン名の付け方のルールってある?
>>900 ここよりもプログラム系のとこいった方がいいと思うけど、
よくある付け方は、メジャーバージョン変わるのは大きな仕様変更(互換性に影響あるレベル)したとき、
マイナーバージョンは、小さな仕様変更、
表記は無かったけど、ものによってはもう一つ番号加えてパッチバージョンとして、バグ修正用にしたりする。
major.minor.patch といった感じ
>>900 オープンソースだと奇数は開発版、偶数は安定版ていうルールがあることがある
アルファ版、ベータ版
テスティング版、スタブル版
前バージョン使ってた人が新バージョンを使う際に新たに学習が必要な場合はメジャーバージョンアップ
前バージョン使ってた人が新バージョンを使う際に新たに学習が必要なく、性能の大幅向上やバグフィクスやセキュリティアップデートはマイナーバージョンアップ
前バージョン使ってた人が新バージョンを使う際に新たに学習が必要なく、誤字脱字の修正や性能の微々たるの変化のある場合はリビジョンアップ
互換性が壊れる場合はmajor、互換性が壊れない範囲の新機能はminor、外から見てわからん変更とバグ修正はrevision
マイナーバージョンは修正した数だけ増やす
1.0 メジャーバージョンは新規機能を実装しない
1.1.1 1個修正 マイナーバージョンは修正した数を乗せる
1.2.20 20個修正
バージョン番号が4つ区分されてるやつは何なのさ
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 OPR/22.0.1471.70
>>908 ソースが同じでも、バイナリにはビルド番号をつけることがある。
パズドラのバージョンが6.5.2
なんだけど6回一からコーディングし直したってこと?
あーいうのって誰からみてもわからいけどソースを何度も組換えたりしてるのかな。
そんなのパズドラの開発者に聞けよ
バージョン番号なんてどこもオレオレルールでつけてんだから
バージョン番号とかだと途中をすっ飛ばしたりすることもあるしな
途中どころか最初がすっ飛ばされたWindows NTなんてのも
WindowsNTって4.0なんだよな。
そう考えるとWindowsってメジャーバージョンほとんど変わってないんだな。
915 :
デフォルトの名無しさん:2014/06/22(日) 01:20:05.59 ID:upDz43Y5
NTの最初のバージョンは3.0か3.1だった気がする
Windows3.1に合わせて3.1から
Windowsのバージョンってverで表示される
「6.1.7601」とかのことだろう?
3.1 → 3.5 → 3.51 → 4.0 → 2000 → XP
だな
商品名とバージョン番号をごっちゃにしすぎw
もともとMSはバージョン番号と商品名が同じだったのを、95とNT系は2000から
バージョン番号隠すようになっただけだよ
まあそれ言ったら、SolarisもMacOSも似たような路線
内部のこまかいバージョンの話とは別の話なんで、ごっちゃもなにもない
はいはい、昔のWindowsのバージョン版を
まとめたものを見つけてきてやったよ。
https://gist.github.com/mxpv/2935584 一部適当に抜粋
Windows Name or Service Pack Version Number
---------------------------- --------------
Windows 1.0 1.04
Windows 2.0 2.11
Windows 3.0 3
Windows NT 3.1 3.10.528
Windows 95 4.0.950
Windows Me 4.90.3000
Windows 2000 Professional 5.0.2195
Windows XP Home 5.1
Windows Server 2008 Service Pack 1 (SP1) RTM 6.0.6001.18000
Windows Vista RTM 6.0.6000.16386
Windows 7 RTM 6.1.7600
Windows 8 CTP 6.2.8250
NTはOS/2 3.0になるはずだったから3.0から始まる
>>924 適当に抜粋って書いただろ。 リンク先見ろよw
Windows 95 4.0.950
Windows NT Workstation 4.0 4.0.1381
Windows 98 4.1.1998
Windows 98 Second Edition 4.1.2222
Windows Me 4.90.3000
これ見てわかるのは
Windowsは1.0の時からバージョン番号1.04と
製品名とバージョン番号は一致していないということ。
百歩譲って1.04の上から三文字目までで1.0なんだってことにしても
Windows 2.0は、バージョン番号2.11 の2.1であるべきってことになってしまう。
928 :
デフォルトの名無しさん:2014/06/22(日) 03:05:54.38 ID:K+SZQQqt
うんず→3.0+mme→3.1→95→98se→2000→Vista
いい加減にGitと関係ない話題は
まあ関係無い話題で埋めるのもいいけど、使い切ったら次スレ立てといてくれよ
>>1のPro GitのURL直すの忘れないでくれ
cygwin で git を使ってるんだが
2.0 から速くなった気がする
>>931 cygwinの公式パッケージってバージョン1.7.9じゃなかったっけ?
俺がプロジェクト名に言語名を入れろって話は怒られたのにこんなスレ違いな話しやがって
お前が怒られなくなるわけじゃねえから
プロジェクト名に言語名を入れるのは考えるまでもなくデメリットが大きいが、
バージョン番号は必要だからな。
バージョン番号は、git tagしたときの
表示順に影響するかもしれないから
関係有るかもしれないしな。
githubはバージョンの付け方の標準通りに
賢くソートしてくれたはず。
じゃあさphpで作ったライブラリは
C:/projects/phpの中に入れるって感じでいいの?
プロジェクト名に言語名を入れないでフォルダ名に言語名を付けてその下にプロジェクトを入れる感じはどう?
20も30もプロジェクトが増えると「あれ、このプロジェクトって何言語で書いたかな」みたいにそのフォルダをのぞくまでワカラナイんだよ
んで言語が混合する場合はc:/project/otherの中にいれる
あ、あと念の為いいますけどhtml+javascript+jquery+phpの場合はphpとして管理します
>>940-942 それはprojectsディレクトリ以下を一つのリポジトリにする前提で話をしてるの?
お恥ずかしいのですが自己解決できないため質問させてください
OSはvista 32bitです
最新のmsysgitをインストールしたのですが、日本語入力ができません
1.8.3以降は日本語がデフォで入力可能だと聞いたのですが……
msysgitにフォーカスをあてるとIMEのバーが黒くなってしまう状態です
原因がわかる方おられませんか?
そういう場合はサクっとtortoiseGitも入れてしまうのだ。
え?解決になってない?
>>945 Gitを利用した経験がないためまずはCUIで触ってなれようと思ったのですが、このありさまです
もう一台のPCに同じようにインストールしてみたところ、そちらでの日本語入力は問題ありませんでした
なにかPC側で設定がおかしいんでしょうね
GoogleAppsScriptのソースってgitで管理出来ませんか?
結局pyenvに戻って来ました
>>943 c:/projects/php/abc
c:/projects/php/def
c:/projects/ruby/ghi
c:/projects/ruby/jkl
c:/projects/python/mno
c:/projects/python/pqr
>>943 言語ディレクトリ内にプロジェクトを作ってプロジェクトごとにリポジトリを作るんだよ
gitonomyでも使え
言語名で分ける必要性が個人的にはよくわからないな。
そのコードを書く原因となったプロジェクト別に分けるとかのほうが後で見返すのが楽なような気がするけど。
まあなにを第一キーにして分類するかというのは人それぞれっちゃ人それぞれなんだけど。
言語別で分けたいっていう人は、使う言語からプロジェクトが大別される的な感じなのかな。PHPを使ったプロジェクトとRubyを使ったプロジェクトは全然性質が異なる、的な感じで。
言語君の話はもうやめてくれ…
勉強とかだと「言語/プロジェクト/」は割と自然だけど
そうでなければ普通はプロジェクトが主役で、言語はその手段でしかないんだよなあ
cd /; git init; git add .; git commit -m'init'
したらどうなるの?
やってみればいいじゃん
リポジトリをローカルファイルシステムの何処に置くかなんて好きにすればいい
何処に配置されてるなんて情報はgitリポジトリには保存されてないのだから
また言語で分けるとか言ってる奴が来てるのか?w
そんなどうでも良い話題でも、みんなちゃんと
答えてあげてるじゃないか。
言語で分けるべきではない。がみんなの回答だよ。
リポジトリの数が増えすぎて管理が大変っていうならリモートリポジトリならgitonomy
などの管理ソフト使えばいいしローカルならそれこそ好きにフォルダ名決めればいい
じゃあさjavaでエディタを作るとするじゃん
terapodって名前すするじゃん
それをc#に移植するときとかどうするんだよ
だから
c:/projects/java/terapd
c:/projects/c#/terapd
って言語別にわかれていたほうがいいんだよ
gitonomyなんて無駄なものを入れる必要もないでしょ
だからローカルなら好きにすればいいじゃん
>>960 自分なら
terapod-java
terapod-c#
とするかな
じゃあさ、そのterapodで必要な機能を実装するのにC++でラッパーDLL書かなきゃいけなくなったらどうする?
c++/terapod-dll にするの?
まあ、なんでもいいんだけど、実際に複数のプログラムを組み合わせてアプリケーションを作っていると1つの言語で完結しないことも間々あるし、
なんらかのプロジェクトを思い出すときに、まず言語を思い出すって発想がちょっとよくわからないんだよね。
「terapodは…javaで書いたからjavaフォルダの中にあるのか」というのは若干回りくどいように感じるよ。
言語が分類の第一となるキーになるという発想が馴染むケースが、勉強とか以外にあんまり想像できないんだよね。
言語の選択は目的じゃなくて単なる手段なわけだし。
c:/projects/editor/terapd/java
とかでも何でもいいよ。好きにしな。
言語の学習目的は除いて普通は作る物を決めてからそれに最適な言語を選ぶからな
sshのconfigでgithubのアカウントを複数管理しているんですけど
configもgithubとかにpushしちゃうものですか?
バックアップとかどうやってとってますか?
githubでgit cloneするときにユーザー名とパスワードを聞かれるんですけど
このパスワードってgithubのアカウントのを入力すればいいんですか?
それともsshキーを作った時に設定したパスワードを入力したらいいんですか?
どっちを入力してもInvalid username or pas
sword.^@fatal: Authentication failed for 〜って出ます
967 :
デフォルトの名無しさん:2014/06/25(水) 03:38:10.84 ID:GQuGFHte
普通ならキーを作った時に設定したのはパスフレーズのはずだぞ
そのプロジェクトにどんな技能を持った土方を投入すべきかを考える立場の人にとっては
言語単位の管理が楽でいい
現場の都合なんか知ったことか
cloneでユーザIDとパスワード聞かれるってことはプライベートリポジトリか?
971 :
デフォルトの名無しさん:2014/06/25(水) 08:31:36.55 ID:wdWoGsPu
エスパーすると、Pageantがタスクバーにいない or 鍵が入ってない
なんか存在しないリポジトリにアクセスするとユーザー名とパスワードを聞かれるようでした
正しいリポジトリにアクセスしたら聞かれなくなりました
それなら最初から聞かないで404 not foundでも表示して欲しいんですけどなんでなんでしょうかね?
>>966 sshかhttpsかどっちでcloneしてるかによるんじゃなかった。
多分sshでやってるけど、鍵を使うように設定してなくて、フォールバックでパスワード認証になってるけど設定されてないんじゃない。
せっかくプライベートにしてるのに、そういうプロジェクトがあるというヒントを出すわけにいかないから
存在しなくても認証出すんだろ。
cloneするurlをタイプミスしたりしたら
がびーん・・・git reset の使い方を間違ったらしくここ数日の編集が丸っと消えた・・・
reset ってそういいうものかと。
revert したかった?
ありがとう git reflog 復活でけた
コミットの状態にさえしてれば、ほぼ不死身だ
981 :
デフォルトの名無しさん:2014/06/25(水) 18:02:12.54 ID:E2n+vjmt
git flowとgithug flowってどっちがメジャー?
git flowをやるのなら、git flowのツールを使うのが普通だと思うが、
そのgit flowツールの話が出ない所を見るとgit flowはあまり
使われてないのではないか?
かといって、github flowがよく使われているってことにはならないが。
たぶんgit flowとgithub flowは同じぐらい。
同じぐらいだが、一番多いのはそのどちらでもない。
俺俺flowってのが答えだろう。
Aのサーバーが死んでたらBからpullするみたいなことがしたいんだけど、
gitってそういうことできるんだろうか?
フェイルオーバーはGitの仕事じゃない気がするけど
remoteのurlを複数指定できて、先に返事もらった方からpullするとか
同期とれていないと悲しいことになりそうだが
>>982 cygwinでビルドできるのか、試してみるよありがとう