14/06/06 17:56:42.08 ZbxJIgia
初歩的な質問ですけど
ブランチで開発やってて、他のブランチの結果をpullするって出来ますか?
master -------------
branchA \____?_ _ _ _
branchB \______/
図が難しいので順序が逆ですが
branchBが先にmasterからブランチして
branchAが次にmasterからブランチした。
branchAがbranchBの結果をpullして取り込みたいんですが。
branchBがmasterにmergeすると簡単なのかな?
教えてください。
797:デフォルトの名無しさん
14/06/06 18:38:12.44 ICJsHYDG
>>796
Gitのマージは賢いからその程度なら全く難しく考える必要なく
branchA側からbranchBをマージできるぞ
798:デフォルトの名無しさん
14/06/07 07:34:24.03 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
799:デフォルトの名無しさん
14/06/07 07:45:02.46 oJ+iP19r
再現しないけど
既に管理下に入ってるんじゃないの?
800:デフォルトの名無しさん
14/06/07 08:00:43.50 paHf3aPB
Repository 内に無いことは最初に確認済みでした。
でも、今 git ls-files で確認してみたら tags ファイルが入っていました。このおっちょちょいが。
失礼しました。ありがとうございました。
801:デフォルトの名無しさん
14/06/07 18:48:16.19 jSVebn/T
どんなコマンドを入力してもログは絶対に消えないですか
802:デフォルトの名無しさん
14/06/07 18:59:57.78 3R8CEA88
rm -fR .git
803:デフォルトの名無しさん
14/06/09 18:34:36.80 dvi2Sb61
コンフリクトしてpushしたやつを戻すの難しかったお
Git恐怖症になりそう
804:デフォルトの名無しさん
14/06/09 21:41:17.37 nOs0/HFd
コンフリクトしてpushって言ってる言葉自体がわからんw
共有リポジトリなら、revertコマンド一つ。
自分専用リポジトリならローカルを適当に書き換えて
push --forceすれば終わりなんだけどな。
805:デフォルトの名無しさん
14/06/09 21:50:57.46 35sdSSzp
最悪、ハッシュさえ覚えとけば(普通は覚えるまでもなくreflogに残ってるが)
ブランチの状態をある時点まで戻すのは簡単だからな
これができないような状態にまで壊すのは、意識的にやらない限りなかなか無い
806:デフォルトの名無しさん
14/06/10 00:28:24.33 Rfvv6P0m
revert様々やで
807:デフォルトの名無しさん
14/06/10 01:38:29.66 AAMs7V03
途中で分岐させて、片方にコミットAとそのrevertコミット、もう片方にAのチェリーピック食わせてて両方マージしたら暗黙にrevertが優先されて焦った事があった。
マージ賢いけど、賢く運用してる場合に限り賢く振る舞ってくれる感じがする。
808:デフォルトの名無しさん
14/06/10 02:27:26.48 osqTzX66
>>807
試しにやってみたけどcherry-pickした方が残るぞ?どんな条件でそんなこと起こるんだ?
809:デフォルトの名無しさん
14/06/10 05:19:03.10 8m9M+kuY
再現されない
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が存在)
810:デフォルトの名無しさん
14/06/10 07:59:18.53 AAMs7V03
そう…再現しねぇんだよ…なんでかなぁ。
811:デフォルトの名無しさん
14/06/10 17:44:37.82 Rfvv6P0m
git resetで前のコミットに戻って編集した後pushしたい時って今までのコミットrevertしてからpushするしか無いの?
812:デフォルトの名無しさん
14/06/10 18:27:22.10 lvdNmXjN
こんな感じ?
C4まで公開済み
↓
[C1]-[C2]-[C3]-[C4]-[C5]-[C6]-[C7]
↑
現在のHEAD
C3まで戻りたいのならC4までresetした後、C3をrevert、でpush可能
C5まで戻りたいのならC5までreset、でpush可能
813:デフォルトの名無しさん
14/06/10 19:14:50.43 Rfvv6P0m
>>812
なるほどありがとう
814:デフォルトの名無しさん
14/06/10 20:44:55.54 ZZTnWEBr
>>812
これなんかおかしい
815:デフォルトの名無しさん
14/06/10 21:33:28.07 pZUiJHso
herokuでwordpressみたいなPaaSの運用って思ったよりめんどくさいのね。
Gitの管理していないファイルの扱いをどうしたらいいんだ。
816:デフォルトの名無しさん
14/06/11 01:19:10.50 ehbBircS
>>815
その問題は、データベースに保存するデータを
どうするかって話と同じだろ?
817:デフォルトの名無しさん
14/06/11 07:23:42.77 YrJFhcVC
違うでしょ。
herokuの場合wordpressが作成するデータベースは勝手に消えないけど、アップロードしたファイルは消えちゃう。
解決法としてストレージを外部に持つしか方法がないようだ。
818:デフォルトの名無しさん
14/06/11 12:44:22.03 EyVsoFD4
heroku使うのにwordpress使うってカスがやること
819:デフォルトの名無しさん
14/06/11 13:23:01.02 8t9Ps5Bi
git version 1.8.5.2.msysgit.0 で
git rm -rf dir/
fatal: pathspec 'dir/' did not match any files
ってファイルは消せるのにディレクトリが消せないのはどういうこと?
dir/内は空っぽです
820:デフォルトの名無しさん
14/06/11 14:31:43.41 xqrpI9NS
PaaSの環境によるけど、herokuでwordpressってすごく普通だけど。
821:デフォルトの名無しさん
14/06/11 15:22:38.37 Rgm1d36A
>>819
Gitはファイルを管理するけどディレクトリそのものは管理しないから
822:デフォルトの名無しさん
14/06/11 20:03:40.21 ALIRMVK5
.gitkeepでググれ
823:819
14/06/12 00:35:02.82 KlCOfI2g
>>821
確かに…別の場所でpullしたらディレクトリ消えてた
git内では消えてるのにディレクトリそのものは残ってるから2回目以降に表示されてたんだな
ファイルはgit rmでばっさり消すくせにディレクトリは消さないってなんでなん
824:819
14/06/12 00:42:00.03 KlCOfI2g
>>822
ググった
なるほど、git mvでディレクトリ内のファイルを先に全部移動したから、その時点で
gitの管理からはずれてたのか
もう理解できたからいいけど、なんか直感的な挙動じゃなかったな
825:デフォルトの名無しさん
14/06/12 00:50:48.34 k+HyAclm
>>823
だから、Gitはファイルを管理するけどディレクトリそのものは管理しない
git rm はGitで管理してるファイルを消すコマンド
ワーキングツリー上の空ディレクトリを消したければ普通のコマンド使え
826:デフォルトの名無しさん
14/06/12 00:51:39.35 k+HyAclm
リロードしてなかった
827:819
14/06/12 01:33:07.61 KlCOfI2g
>>825
一応試したところgit rm -r dir/で実際のディレクトリもちゃんと消えるね
828:819
14/06/12 01:34:47.60 KlCOfI2g
>>827
もちろん空でないディレクトリに限るけど
829:デフォルトの名無しさん
14/06/12 01:40:04.38 k+HyAclm
>>827
dir/の下がgitで管理されてればね
ついでに消す
830:デフォルトの名無しさん
14/06/12 01:41:26.71 k+HyAclm
またリロードしてなかった
831:デフォルトの名無しさん
14/06/12 02:44:56.35 0fE6ecZu
最初の頃に管理に入れた、とあるファイルが
作り込んだ後になって「各自で別々の内容のまま持つべき」
って話になったんですが、どうすればいいのでしょうか?
git rm --cachedだと各自がpullしたときに消えちゃう…各自の持ってるファイルは現状のままにしたいです
832:デフォルトの名無しさん
14/06/12 02:46:03.19 0fE6ecZu
あ、現状のままというか、各自で別々の内容にしていけるように、です。
833:デフォルトの名無しさん
14/06/12 02:52:56.27 bcr4Y1Fv
.gitignoreに書けばいいんじゃないの?
834:デフォルトの名無しさん
14/06/12 02:59:30.25 0fE6ecZu
>>833
既にコミット済みなので、.gitignoreに書いても除外されないんですよね…
835:デフォルトの名無しさん
14/06/12 03:01:38.52 cPATFudP
じゃあコミットからはずせよ
836:デフォルトの名無しさん
14/06/12 03:08:14.85 LUHHUJAl
URLリンク(qiita.com)
こういうのあるけど
837:デフォルトの名無しさん
14/06/12 03:28:09.83 bcr4Y1Fv
非管理ディレクトリでも作ってそこにファイル置いてシンボリックリンクでも張ってつかえばええんちゃうの
838:デフォルトの名無しさん
14/06/12 12:01:55.49 Qv1u/W6+
とにかく業務これだけ使えれば万全ってコマンドをあるだけおしえて
commit
add
checkout
branch
remote
log
reflog
reset
これ走ってる
839:デフォルトの名無しさん
14/06/12 12:24:21.06 f3a/iFpr
grep
rebase
status
diff
revert
こいつらも覚えとき
bisect、blameもおすすめ
840:デフォルトの名無しさん
14/06/12 14:21:17.86 k+HyAclm
>>831みたいなときに
.gitignoreに書いて、git rm --cachedして、その状態をcommitしてたんだけど
そうするとちょっと問題があって
そのcommit以前をチェックアウトした後に、そのcommit以後をチェックアウトすると、
管理から外したファイルが消失しちゃうんだよね
>>836はまったく未知だったわちょっと動作を確かめてみる
841:デフォルトの名無しさん
14/06/12 14:23:15.51 fKk4MWnJ
Pro Gitにも書いておいてほしい
842:デフォルトの名無しさん
14/06/13 18:00:50.16 VgtrMdkb
>>836はローカルなリポジトリだけに作用する感じなのかねえ
特定のファイルが最初から.gitignoreに登録されてリポジトリには登録されるべきでなかったことをリモートリポジトリにも反映するには、
git filter-branchで最初から書き換えてしまうしか無いのかな
843:デフォルトの名無しさん
14/06/15 12:29:50.14 ZB+9NljM
日々の作業を自動化するプログラムを書いてgitで管理していくとプロジェクトが50個超えるんですけど
ここの先輩もそんなにいきますか?
844:デフォルトの名無しさん
14/06/15 12:33:02.69 C1Yq9FDg
日々の作業がそんなにないんだけど...
845:デフォルトの名無しさん
14/06/15 12:48:11.71 ZuLV4hXG
>>843
それgit関係無いですよね?
846:デフォルトの名無しさん
14/06/15 13:32:29.24 KFTbGwac
そのプログラムとやらをまとめて一個のリポジトリにすりゃええやんけ
そんな自動化できることばっかなら仕事しなくていいんじゃね
裏山
847:デフォルトの名無しさん
14/06/15 14:58:31.07 cXeYBPF2
自分が書いたコードをレビューしてくれるサイトってありませんか?
848:デフォルトの名無しさん
14/06/15 15:08:34.54 l0ywMHBR
>>847
githubにコード晒して
レビューしてくださいっていうとか
849:デフォルトの名無しさん
14/06/15 15:17:54.95 47+4XIuz
Git関係なくね?てか使ってる言語系のスレで聞けばよくね?
てかフルボッコされたいならこの板で良くね?
850:デフォルトの名無しさん
14/06/15 15:40:00.08 cXeYBPF2
githubってあんまりレビューを見かけることがないんですよね
というかレビューをするのが前提って感じでも無いですし
レビューに力を入れているサイトってないんでしょうか
851:デフォルトの名無しさん
14/06/15 15:40:10.00 azJHx8hd
stackoverflowのほうが精神衛生には良さそう
同じボコられるにしたって、匿名と名前ありでは素直に受け取れる度みたいなもんが変わってくると思う
852:デフォルトの名無しさん
14/06/15 15:53:23.78 8GPu+iwa
stackoverflowの日本語版が出来たらそこがいいだろう
853:デフォルトの名無しさん
14/06/15 16:09:10.27 IRi7fyG5
stackoverflowは質問事項を明確にしないと管理人に質問を凍結状態にされるぞ
レビューしてくださいとかダメだ
854:デフォルトの名無しさん
14/06/15 16:12:09.02 qtgrwwOv
stackoverflowで質問したことあるけど勝手にタイトルを変更された
855:デフォルトの名無しさん
14/06/15 19:17:17.20 ZZ/FPeiS
タイトルと質問内容をレビューしてもらったわけだ。
コードレビューならとりあえずgithubに上げてみ。誰かのコードレビューすれば逆にレビューしてくれる。
856:デフォルトの名無しさん
14/06/16 00:22:54.07 idFh+z/o
>>850
コメントやりあってるのがレビューじゃなくてなんなんだよ…
この人の考えてるレビューはみんなの思い描いてるのとは別物だな、たぶん
857:デフォルトの名無しさん
14/06/16 01:25:32.74 HINNz9l/
いやレビュー目的でgithub見に来てる人っていないでしょ?
海外のチャットで僕の英語を添削してくださいなんて言わないよね
だから添削に特化したlang8みたいなのがあるんだよ
858:デフォルトの名無しさん
14/06/16 01:30:36.25 MERkKOKe
素晴らしいソフトウェアをもっと素晴らしくするために自分の考えだした素晴らしいアイデアを無償で提供しようってのが公開リポジトリでの交流だろ?
859:デフォルトの名無しさん
14/06/16 01:31:44.76 MERkKOKe
どこぞの誰かが添削してくださいって言って公開してる何の役にもたたんコードを無償でレビューするとかどんな暇人やねん
860:デフォルトの名無しさん
14/06/16 01:38:58.62 MERkKOKe
いっそのことコードを会員相互でレビューしあうサイトでも立ち上げてみたら?需要があるんなら儲かるんじゃね?
861:デフォルトの名無しさん
14/06/16 06:20:11.38 e4oLiDm/
>>860
考えてみた
URLリンク(pastebin.com)
862:デフォルトの名無しさん
14/06/16 06:29:03.47 AdEqdopC
いいかげんGitとは全く関係無いんで他にスレでも立ててやってくれ
863:デフォルトの名無しさん
14/06/16 06:35:35.02 Mvi4rDX6
コードレビューでお金がもらえるサービスを作る
スレリンク(tech板)
864:デフォルトの名無しさん
14/06/16 08:11:44.62 WjthfDAE
>>859
> どんな暇人やねん
にちゃんでうだうだ言ってるお前が言うなよ w
865:デフォルトの名無しさん
14/06/16 22:31:52.86 w9HZwqDq
>>863
それ普通にユーキャンだろ…
866:デフォルトの名無しさん
14/06/16 22:37:07.56 MMwlea4w
クソサービスすぎて見てるほうが死にたくなる
867:デフォルトの名無しさん
14/06/16 22:56:47.14 1GPgt9YV
死にたいなら死んでいいと思います。
868:デフォルトの名無しさん
14/06/18 16:43:12.19 bAs8WhGu
gitのサブモジュールって、サブモジュールが更新されたとき、メインのgitでpullすればサブモジュールのgitも最新版になるの?
869:デフォルトの名無しさん
14/06/18 17:03:50.64 yu0xlR7/
ならんならん
870:デフォルトの名無しさん
14/06/18 17:49:25.97 bAs8WhGu
>>869
ありがとうございます。
ということは、サブモジュールが更新されてたらcomposerとかbowerとかつかわないけないんですね。
871:デフォルトの名無しさん
14/06/18 17:53:32.85 yu0xlR7/
なんでやねん
872:デフォルトの名無しさん
14/06/18 21:32:10.25 Dv/sTmWi
なんでそうなるんや…
873:デフォルトの名無しさん
14/06/19 02:50:54.18 a+4NSFaT
git/composer/bowerあたりが全部ごっちゃになってるのか…gruntとかnpmとかもか
874:デフォルトの名無しさん
14/06/19 02:52:18.29 GKSvjGH6
URLリンク(info.cloudforge.com)
875:デフォルトの名無しさん
14/06/19 02:56:00.25 QcTSno45
>>873
はい。ごっちゃです。
nodejsで、サブモジュールのクラスを継承してるんですけどサブモジュールのライブラリを更新したらメインのサブモジュールも自動更新できるように出来ませんかね?
876:デフォルトの名無しさん
14/06/19 04:35:43.70 ZDR2rCVo
URLリンク(git-scm.com)
877:デフォルトの名無しさん
14/06/19 09:10:11.76 uhTP2aV5
>>875
外部ライブラリのバージョンを、バージョン管理しないなら、
サブモジュールを使わないで「バージョン管理しないディレクトリ」
として管理しなければいいよ。
878:デフォルトの名無しさん
14/06/19 11:01:04.34 QcTSno45
>>876,877
ご親切にありがとうございます。
勉強してみます。
879:デフォルトの名無しさん
14/06/19 17:00:32.13 IwCNAxsR
細かい単位でコミットしてないとダメだなあ
あんまり大きい作業単位でコミットしてるとrevertとか便利そうな機能が使えんし
880:デフォルトの名無しさん
14/06/19 17:06:48.92 BcmtgtjI
セーブする感覚でやっちゃってる
適当にrebaseしないと散らかりすぎるかのう
881:デフォルトの名無しさん
14/06/19 20:04:21.46 GjYBKD0X
俺はブランチ切る→そのブランチ内でセーブ感覚でガンガンコミット→squash
882:デフォルトの名無しさん
14/06/19 20:15:00.22 Fdr0qLJN
それがベーシックなやり方だろうね
ブランチ未満の粒度の作業単位は残す必要ないだろうし
883:デフォルトの名無しさん
14/06/19 20:18:40.23 Df6JFFDt
個人的な好みとしては
rebaseでの根本移動はアリだけど
squashでのコミット潰しとFFマージ主義はナシ
884:デフォルトの名無しさん
14/06/20 01:16:15.04 9P55PKrO
開発用テストサーバとローカルのコードを同期するのに同期用のブランチを切って使ってる。
それだと本当にタイプミスで動かないものの修正とかでcommit/push/pullになって、コミットログも"a"とかなので、さすがにそんなのは履歴として残すメリットはなんにもないので、
本来コミットするべきタイミングでそういうのはsquashしてトピックブランチにcommitしてる。
原理主義者からは単なる同期にgitを使うなとは言われるかもしれないけど、
他のツールを使うのも色々とめんどくさいしね。
885:デフォルトの名無しさん
14/06/20 01:25:01.85 nPERQ22c
> squashでのコミット潰しとFFマージ主義はナシ
時と場合によって変えるべき。
なぜ「mergeはこれしかダメ」と決めつける人が多いのだろうか。
squashするべき時はsquashして、するべきじゃない時はsquashしない。
FFマージするべき時はFFマージして、FFマージするべきじゃない時はFFマージしない。
それだけじゃないか。
決めつける人は、自分がやり方ことが明確になっておらず、
ただコマンドを覚えているだけなんだろうな。
886:デフォルトの名無しさん
14/06/20 01:50:53.36 fQqGdEOm
自分のやり方と違う奴の存在認められないからすぐ叩きが始まるのはいつものことではないか
887:デフォルトの名無しさん
14/06/20 01:55:10.28 7nDrVBi+
1コミットにできないブランチはそもそもブランチの切り方を失敗してる説
888:デフォルトの名無しさん
14/06/20 01:58:44.73 rNGAsf/H
1コミットにまとめようとしてsquashしたらコンフリクトがハンパなく発生して死にたくなった
889:デフォルトの名無しさん
14/06/20 02:00:56.73 nPERQ22c
>>888
それはmergeでコンフリクトが出ているだけで
squashしたせいじゃないよ。
890:デフォルトの名無しさん
14/06/20 07:49:34.87 XWgQCtQu
squash しなければコンフリクトも小出しになると言いたいのでは。
891:デフォルトの名無しさん
14/06/20 19:41:04.84 FEHr8pGe
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)
$
892:デフォルトの名無しさん
14/06/20 19:43:03.58 FEHr8pGe
まとめるコミットが多いとこうういのがたくさん出る
893:デフォルトの名無しさん
14/06/20 20:08:47.08 fQqGdEOm
がんばれがんばれどかべん
よーしだたろう
894:デフォルトの名無しさん
14/06/20 21:05:57.10 tmj63HwH
rebaseはマージコミットの時に行った編集を再現できないから、マージコミットを巻き込んでrebaseしたら
何度でも同じコンフリクトが起きるよ
895:デフォルトの名無しさん
14/06/21 02:40:47.04 GnC4hxCp
そして、「何度でも同じコンフリクト」が起きた時
自動で解決してくれる設定が、
あるから誰か答えてね。
896:デフォルトの名無しさん
14/06/21 03:01:15.08 5/17O7zj
initからsquashを使うまでの流れを教えてください
897:デフォルトの名無しさん
14/06/21 10:32:06.18 tx3pF38o
merge --squashはまず使わないが、
rebaseのsquash, fixupはよく使うレレレのおじさん
898:デフォルトの名無しさん
14/06/21 11:08:10.55 EfmviY6O
だってgit bookのページに書いてあったsquashってrebaseの話しかなかったんだもん!
899:デフォルトの名無しさん
14/06/21 12:55:15.10 tx3pF38o
ソーカソーカヨシヨシ