- 1 :デフォルトの名無しさん:2012/02/15(水) 00:45:09.81
- ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。
Git - Fast Version Control System
http://git-scm.com/
◆前スレ
Git 3
http://toro.2ch.net/test/read.cgi/tech/1310403238/
◆関連(ピヨピヨ)
Pro Git - Table of Contents
http://progit.org/book/ja/
Git入門
http://www8.atwiki.jp/git_jp/ - 116 :デフォルトの名無しさん:2012/03/16(金) 17:29:54.40
- 間違えてコミットするべきでないときにコミットをしてしまいました
git add .
git commit -m "20130316"
これを取り消したいと思い
git reset HEAD^
ってやってMore?って聞かれたのでyを押してENTERキーを押しました
その後git logでログをみたんですが消えてないことを確認して、コマンドのミスに気づきました
改めてコマンドをgit reset --hard HEAD^と打ってみたのですがgit logでログをみても消えません
一番最新のコミットを消したいんですがどうやって消したらいいのでしょうか? - 144 :デフォルトの名無しさん:2012/03/22(木) 05:50:23.87
- テキストファイルの文字コードが
utf16とかだとバイナリファイルと認識されるみたいで,
git diffとか使っても
binary files a/hoge.txt b/hoge.txt differ
としか表示されないのですが変えられるのでしょうか? - 147 :デフォルトの名無しさん:2012/03/22(木) 07:04:12.08
- >>144
変えるだけなら、.gitattribute に *.txt diff だけでいける。
これ、結構古い情報だから、いまは違うアプローチがあるかもしらんが …
http://stackoverflow.com/questions/777949/can-i-make-git-recognize-a-utf-16-file-as-text - 158 :デフォルトの名無しさん:2012/03/23(金) 00:38:43.70
- なしだと起動するだけで入力がありません...
- 176 :デフォルトの名無しさん:2012/03/27(火) 16:27:28.43
- 質問ですorz:
現在WinCVSを使ってまして、今度gitしたいのです。
SVNだと、RapidSVNとかありますが、
gitのFreewareクライアントGUIは何がありますでしょうか?
SmartGitは商用ではフリーじゃないそうですし、Tortoiseはどうもキモくて。。。 - 208 :デフォルトの名無しさん:2012/03/28(水) 18:08:18.94
- Windowsのファイル共有で公開したリポジトリをマスターにしたいのですが、
プッシュでエラー出ました。
ちょっと強引杉ますか?
>Pushing to //Server-temp/GitMaster
>remote: error: refusing to update checked out branch: refs/heads/master[K - 256 :営利利用に関するLR審議中@詳細は自治スレへ:2012/04/03(火) 09:12:31.98
- Git Extensionて、選択多いですね。
MsysGit/KDiff3の選択は、MsysGitで良いとして、
OpenSSHのGit defaultじゃなくてPuTTYが選択されてるけど、無問題なのかなぁ。
Gitって、サーバーとクライアントがSSHでつながってんだね。SSHって使ったことないけど。
TTYってWindowsで動作するんだろうか。 - 310 :デフォルトの名無しさん:2012/04/14(土) 12:28:04.97
- indexを変更せずに、あるコミットからあるファイルをworking treeに取り出すにはどうしたらよいですか?
checkoutもresetもpath指定できますがindexを変更してしまうようです - 311 :デフォルトの名無しさん:2012/04/14(土) 14:03:02.99
- >>310
取り出した後に何かするんじゃないの?
見るだけなら
git show branch:filepath
取り出したいのならリダイレクトすればいい
git show branch:filepath > filepath~ - 312 :デフォルトの名無しさん:2012/04/14(土) 15:04:28.63
- 特定コミット時点でのファイルの状態を
index=HEADの状態のままworking treeに持って来たいとき、
git commit コミットID ファイル名; git reset ファイル名
とかやってたが、>>311のやりかたで上書きすればいいのか。
git show はいろいろ便利だなあ。 - 315 :デフォルトの名無しさん:2012/04/14(土) 16:57:42.20
- 公開してるブランチの特定のファイルを少し前の状態に戻したいときは、
git show commit-id:filepath > filepath; git commit -a もしくは、
git checkout commit-id filepath; git commitすればいいよね?
(上記2つは同じ状態になるよね?)
別のブランチをつくってそこでrebaseで戻してそれをmergeするとかを
つねにやったほうがいいのかねえ。 - 316 :デフォルトの名無しさん:2012/04/14(土) 17:47:41.16
- >>315
公開してるならマズい。誰かが今そのブランチを元に作業してるかもしれない。
上書きしてしまうとマージする時に混乱するから素直にrevert使って、
git revert commit-id
直そうとしてるコミットが行儀悪くて他の変更も一緒くたにしてしまってる場合はかなりややこしい。試して無いけどこんなかんじ:
git checkout -b fix
git revert commit-id
git reset HEAD^
git add -p
git commit -m 'commit-idから一部だけrevert'
git checkout -f
git checkout master
git merge fix
git branch -d fix
問題の無いコミットから今のコミットまでに別の変更が紛れてても分かるようにするのがいいと思う。 - 337 :デフォルトの名無しさん:2012/04/19(木) 21:28:34.17
- 今日はじめてgitを触ったんだけど、皆もBashにカタカタ打ち込んでバージョン管理してるの?
CUIに慣れれば簡単にバージョン管理できるようになるんだよな?な? - 385 :デフォルトの名無しさん:2012/04/30(月) 09:23:49.66
- 今日になっていきなり、以下の様なメッセージが出てきました
Your branch is ahead of 'origin/master' by 13 commits.
これは何を表しているのでしょうか?また、どうすれば良いのでしょうか? - 388 :デフォルトの名無しさん:2012/04/30(月) 09:53:58.85
- ローカルとリモートのブランチの対応付けとかがデフォルトのままなら
リモートのmasterブランチの修正が、リモート追跡ブランチorigin/masterに取り込まれてる。
でも、それがmasterブランチに取り込まれていない。
git fetchやったか、別のブランチをcheckoutしてる状態でgit pull originやったとかの、
結果だと思われる。
masterブランチをcheckoutした場合にそのメッセージが出てるんだと思うんで、
修正をmasterに取り込む必要があるなら、そのままgit pull originとかやればいいと思う。
masterブランチ放置ならそのままでも。 - 390 :385:2012/04/30(月) 09:59:52.39
- >>388
git pull origin しても、"Already up-to-date."と表示されます。
ブランチも master しかありません。 - 391 :デフォルトの名無しさん:2012/04/30(月) 10:13:13.97
- 実際どうなのよ?そのoriginのmasterは、自分のmasterに取り込まれてるの?
- 392 :デフォルトの名無しさん:2012/04/30(月) 10:25:14.71
- >>390
何も考えずにgit pull originしちゃったみたいだけど、originの修正を取り込んで良いの?
どっかからcloneしてきたmasterブランチを自ら修正してるんだよね? - 393 :デフォルトの名無しさん:2012/04/30(月) 10:37:57.96
- >>391
すみません、git使いはじめてまだ1月くらいしか経ってない未熟者なので、質問の意味が理解できません。
申し訳ございません。
>>392
clone元も自分のローカルディスクにあります。 - 404 :デフォルトの名無しさん:2012/05/04(金) 18:20:18.60
- git addした以降のワーキングツリーの変更だけを取り消すにはどうすればいいんでしょう?
http://d.hatena.ne.jp/murank/20110327/1301224770
に記載されている図で、ワーキングツリーが指している場所を
インデックスが指している場所に戻すイメージなんですが…
今は一旦commitした後reset --hard, reset --soft HEAD^ ってやってるんですが
もう少しシンプルに(commitせずに)できる気がして… - 411 :デフォルトの名無しさん:2012/05/10(木) 10:55:07.59
- どうせ誰も使ってないTortoiseGit1.7.9.0で日本語ファイル名対応でっていう
- 412 :デフォルトの名無しさん:2012/05/10(木) 12:10:16.36
- >>411
後はTortoiseGit 1.7.9.0の日本語化パッチが出たら
ライトユーザーに気軽に勧められるようになりますね。
TortoiseGit Japan
http://tortoisegitjapan.com/ - 424 :デフォルトの名無しさん:2012/05/13(日) 22:03:35.29
- gui触ったことないけどどうなのよ
ワークツリーを適当に修正しまくった後に
必要なとこだけ何段階かに分けてインデックスに入れてコミットとか
こまめにコミットを繰り返したあと
リベースで必要なコミットだけを整理していくつかのコミットにまとめなおすとか
簡単にできんの? - 445 :デフォルトの名無しさん:2012/05/17(木) 08:42:46.89
- サーバにある複数の Git リポジトリのバックアップを rsync などのミラーリングツールで取ろうと思うのですが、誰かが push している最中に rsync が走った場合、コピーされたリポジトリが壊れていたりすることはあるのでしょうか?
一つ一つ clone した方が確実だとは思うのですが、私の知らない間にリポジトリが増えていたりもするので、できれば rsync などでリポジトリの親ディレクトリごとバックアップしてしまいたいのです。 - 454 :デフォルトの名無しさん:2012/05/18(金) 15:36:45.80
- TottoiseGitでバイナリファイルのコンフリクトを
解決しようとしてるんだが、
とりあえずA.binってファイルについて
A.bin.BASE.bin
A.bin.LOCAL.bin
A.bin.REMOTE.bin
って3つのファイルが追加された。
BASEだのLOCALだのと言葉が端的すぎてわからんし、うっかり書き換えも怖い。
どれがなんのファイルかって教えてくれ。 - 547 :デフォルトの名無しさん:2012/05/28(月) 13:59:03.83
- 質問です。
コミットログにおいて
中括弧 [ ] で囲まれた単語はなにか特別な意味でも持っているのでしょうか?
そのような単語を含むログを持つコミットから
format-patch → am で取り込むと
中括弧 [ ] で囲まれた単語が括弧ごと消えてしまうみたいなんですが、、、 - 565 :デフォルトの名無しさん:2012/06/05(火) 17:55:22.03
- Gitでmergeするときに、あるcommitだけを除いてマージとかできないでしょうか。
たとえばリリースブランチを開発ブランチにマージする時に、リリースブランチ特有のコミットというのがあって(リリース番号を増やすとか)、
それは開発ブランチに含めたくないというケースです。
まあこれは全部をマージした後にrevertするという手がありますが。
あるいはリリースブランチと比べて開発ブランチが大幅に変更されている場合、
リリースブランチにcommitした複数のバグフィックスのうち、開発用ブランチにも適用したほうがいいものとそうでないものがあって、
適用しなくていいものは除いたうえで、リリースブランチの内容を開発用ブランチにマージしたいというケースがあります。
このようなケースでは cherry-pick を使った方がよさそうですが、cherry-pick だとどのcommitまでを開発ブランチに適用したかがわからないので、
できればマージを使いたいと思っています。
よろしくお願いします。 - 571 :デフォルトの名無しさん:2012/06/09(土) 18:02:17.20
- format-patchで作ったパッチに
定形文を挿入する方法ってないかな~。
それぞれ独立したsvnのリポジトリがふたつあって、
git svnで使ってるんですが
その両方に自分の担当しているモジュールが存在しています。
片方では普通に開発、
もう片方にはformat-patchをあてるだけ、、、
でやってます。
面倒なのは、パッチをあてたあとに
「どこそこリポジトリのリビジョン◯番から持ってきたコードです」
とコミットログを追加しなきゃならんことなんですが、
なんかうまい方法はないでしょうか?
パッチのコメント部分を自分で置換するしかないでしょうか? - 601 :デフォルトの名無しさん:2012/06/24(日) 20:05:13.12
- msysgitを使ってますが、ホイールでスクロールさせるにはどうすればいいでしょうか?
別にインストールしたcygwin(TERM=xterm)ではホイールスクロールできているんで、
Git\etcのどっかの設定ファイルをいじってターミナルを差し替えればできるんじゃないかと
思っているんですが。 - 623 :デフォルトの名無しさん:2012/07/07(土) 12:06:30.01
- git svn dcommitで .. resource out of date; try updating .. なんちゃらという警告が出た場合、
ここで言うupdateってのは git svn rebase をやり直せってことでいいですよね?
ところが git svn rebaseしようとしても、First, rewinding head to replay .. ということで
やたら古いコミットを巻き戻そうとしてコンフリクトしてしまいます。
履歴はこんな感じで、そのコンフリクトするファイルにmasterとgit-svnの差異はありません。
* (HEAD,master)
* merge
|\
| * (git-svn)
svnリポジトリの方でそのファイルが更新されたわけでもないようですが、こっちの
gitリポジトリがなにかおかしくなっているんでしょうか? - 635 :デフォルトの名無しさん:2012/07/12(木) 00:06:39.44
- githubにプルリクエストしたらリベースしてまとめろって怒られてしまいました。
やったことは:
フォークしてローカルにコピー。
日本語訳用のブランチを切って作業。
日本訳部分を修正してコミット。
放置してたらフォーク元のリポジトリが更新されたのでgit fetch upstream;git merge upstream/masterで更新。
(これは日本語訳用のブランチでやってしまったかも)
日本訳部分をまた修正してコミット。
フォークした先にプッシュ。
プルリクエスト。
githubのプルリクエストには
hage 日本語訳のコミット1 96d8373
hage Merge remote-tracking branch 'upstream/master' into 日本語訳用のブランチ a253255
hage Merge remote-tracking branch 'upstream/master' into 日本語訳用のブランチ 45325c1
hage 日本語訳のコミット2 673bb56
みたいに表示されてます。
それで↓を参考にgit rebase origin masterまでしました。
http://qiita.com/items/cddd7dd9cde6a9c6dde6
git rebase -i でエディタに出るコミットとgit logで表示されるコミットで混乱してます。
"日本語訳のコミット1"96d8373と"日本語訳のコミット2"673bb56の間に
"Merge remote-tracking branch 'upstream/master' into 日本語訳用のブランチ"a253255や45325c1は存在しません。
どうしたら1つにまとめられるの? - 636 :デフォルトの名無しさん:2012/07/12(木) 01:11:01.69
- >>635
そのままrebaseすればいいんじゃないの
a253255 とか 45325c1 とかが適用済みの master に rebase するんでしょ
最悪 git diff で取り出したパッチをあてるとかでもいけると思う
> 放置してたらフォーク元のリポジトリが更新されたのでgit fetch upstream;git merge upstream/masterで更新。
pull request しようとしているブランチでこれはやっちゃだめだと思うよ - 637 :デフォルトの名無しさん:2012/07/12(木) 01:30:58.16
- >>635
rebase -i した時に次のようになるんだよね
pick 96d8373 日本語訳のコミット1
pick 673bb56 日本語訳のコミット2
一緒にしたいなら squash (s)に書き換えて
pick 96d8373 日本語訳のコミット1
s 673bb56 日本語訳のコミット2
エディタを閉じるとさらに新しいコミットログ入れろと来て、
エディタを閉じるとコミット1にコミット2が足されて
一つのコミットになると思うよ。 - 638 :635 :2012/07/13(金) 01:05:01.77
- >>636
>a253255 とか 45325c1 とかが適用済みの master に rebase するんでしょ
そうです。
そのまましようとしたけど、rebase -iで96d8373と673bb56の間にはa253255と45325c1が無いのでどうしていいのか分からず質問しました。
>pull request しようとしているブランチでこれはやっちゃだめだと思うよ
寝ぼけたせいか、やっちゃったようです。
>>637
pick 96d8373 日本語訳のコミット1
pick 5366d33 他人1のコミット
pick 553accc 他人2のコミット
pick 3673ddc 他人3のコミット
pick 673bb56 日本語訳のコミット2
みたいになってます。この他人1,2,3のコミットはa253255と45325c1ではありません。
s 673bb56 日本語訳のコミット2 にしたら僕の日本語訳のコミット2は他人3のコミットに含まれちゃって困ったことにはならないのでしょうか? - 648 :デフォルトの名無しさん:2012/07/21(土) 22:21:03.48
- git svnでcloneしたものの中に、編集中(ステータスがM)のものがある時に、rebaseやdcommitする方法は無いでしょうか?
- 652 :648:2012/07/22(日) 00:13:18.55
- stashだと、編集内容が退避されてしまうことです。
常に編集状態にしておきたいのです。でも、dcommitやrebaseはしたいのです。
dcommit前にstash、dcommit後にstash popとするような形になるのでちょっと面倒です。 - 670 :デフォルトの名無しさん:2012/07/23(月) 07:02:10.39
- 会社の仕事でも
git使うことになったんだけど、
コミットログを英語限定にされてしんどいよ~
いまどきは英語ができて当たり前なのかもしれないけど、
俺の場合、コミットログの英文考えるのに時間が取られるorz
日本人しかいないのに何故英語?って聞いたら
文字化けするから、だって、、、
svnならどうかしらないけど、
gitには文字エンコーディング関係の設定もちゃんとあるのに文字化け問題なんて存在しないよね??? - 696 :デフォルトの名無しさん:2012/07/30(月) 10:25:50.59
- あれはgithubを見るときにも表示を遅くして非常に鬱陶しいので、hostsに
127.0.0.1 localhost.localdomain localhost www.gravatar.com secure.gravatar.com gravatar.com
と書いてしまってる - 697 :デフォルトの名無しさん:2012/07/30(月) 10:28:19.32
- 今時Win板hostsスレを参考にするなんてかっこわるいよ
AdBlock系でgravatar.comをブロックとかの方がスマート - 698 :デフォルトの名無しさん:2012/07/30(月) 10:31:19.18
- >>697
> も - 704 :デフォルトの名無しさん:2012/08/02(木) 19:52:42.09
- git stash save で、特定のファイルだけを指定してsaveできないかな。
すべてをsaveする仕様は使いづらい。 - 708 :デフォルトの名無しさん:2012/08/03(金) 18:05:40.89
- 設定ファイルみたいにclone時には含めたいけど、
pushさせたくないファイルってどうすればいいんですか?
--assume-unchangedはcloneとかresetで元に戻ってしまうみたいだし、
clone毎に設定しなきゃならないとヒューマンエラーの元になりそうだし。
~.ini.sample作って~.iniをgitignoreに入れとくしかないんですかね? - 710 :デフォルトの名無しさん:2012/08/04(土) 09:31:31.34
- >>708
setting.ini.inでコミットしておいて
configureでsetting.ini.in -> setting.ini
を生成するのが一般的かな。 - 726 :デフォルトの名無しさん:2012/08/18(土) 21:40:10.58
- 質問なのですが、gitのレポジトリはどのディレクトリに作成していますか?
/var/lib、/usr/local、~/以下など何か慣例はあるのでしょうか。 - 739 :デフォルトの名無しさん:2012/08/27(月) 03:22:47.33
- GitHubのissue報告のページにはどういうマークアップ記法が使われていますか?
コードの部分をそれと分かるようにしたいです。
プレーンテキストオンリーは嫌です - 744 :デフォルトの名無しさん:2012/08/30(木) 21:37:16.07
- 以下の様な場合どのようなコマンド・処理が適切でしょうか?
状況:パソコンAで少しずつ修正をかけて、パソコンBでそれを見る
パソコンAから共用リポジトリへpush→共用リポジトリからパソコンBへpull
という操作を繰り返すことになるのですが、
そうするとコミットの履歴がどんどん増えていくことになります。
なので、共用リポジトリに前回pushした内容を上書きする(1つのコミットを修正し続ける)ような形にしたいです。 - 747 :デフォルトの名無しさん:2012/08/30(木) 21:50:54.77
- >>744
作業用に一時的なブランチを生やして作業、最終的にまとまったら--squashでマージ - 749 :デフォルトの名無しさん:2012/08/30(木) 22:00:56.28
- >>744
ftp put / getというコマンドが適切。 - 750 :デフォルトの名無しさん:2012/08/30(木) 22:41:53.36
- >>749
だせえwいまどきFTPかよww
http://toro.2ch.net/test/read.cgi/tech/1329234309/l50/../人気ブログランキングへ