git管理したくないエディタの設定とか環境依存ファイルを一括で除外する
.gitignoreファイル 更新していますか? 扱うプロジェクトが多いと、エディタ変えたときとかプロジェクトディレクトリに設定ファイルを作ってしまうツール等を導入した場合に大変ですね。 今のチームではエディタは各自好きな物を選ぶ運用になっており AtomとかVSCodeとか使っていたりします。 プロジェクトもいくつかありますが それぞれのプロジェクトの.gitignoreに .vscode .atom と言った物を書くのがあまりうれしくないと思ってしまいます。 そんなときは、~/.gitign ...
git cloneするときにブランチ指定して–depth指定する
よくチュートリアルのなどで git clone git checkout なんて感じでcloneして使うやり方を書いてあったりするけども 普通にgit cloneすると 他のブランチの情報とかも管理ディレクトリに持ってきている状態なので ディスク容量も食うし、cloneする時間もかかる。 そこで、特にgit的な操作は以後しないのであればgit shallow cloneするのが良い。 やり方は git clone —depth 1 —branch こうすると、ブランチの最新のリビジョンだけを持っ ...
gitにExcelファイルあげちゃった。そして差分も見たいです。
gitにExcelファイルあげちゃった。そして差分も見たいです。 エンジニア以外にもgithubを使い出しているところが増えつつありますが、 このような要望が少なくありません。 エンジニアとしては、それはExcelがちょっと・・・という感じかもしれませんが 非エンジニアとしてはExcelが自分の仕事の表現手段、というか やはり操作感は他のツールとは別格かと思います。 そこにエンジニア目線で別のツールを押しつけるのもどうかと思ったりもします。 ※別のツールを提供した方が効率が上がるケースももちろん ...
git cloneした時に、Gtk-WARNING **: cannot open display:
git cloneしたときに (gnome-ssh-askpass:***): Gtk-WARNING **: cannot open display: という表示が出てエラーになる。 どうも、SSHの処理がパスワード入力ダイアログを出したいらしい。 これに関連する環境変数が SSH_ASKPASS という事で、これをunsetして見ます。 unset SSH_ASKPASS これで、無事git clone出来るかと思います。
TortoiseSVN・TortoiseGitでマージツールにお悩みの場合にはP4Mergeを
TortoiseSVNや、TortoiseGitで、競合が発生した場合に使用するTortoiseMergeですが、あまり使い勝手が良いとはいえないです。 そんなときは、P4Mergeを入れてみましょう。 インストールは から。 このように、Visual Merge Toolのみを有効にして、後は無効にします。 これでインストール。 インストールが完了したら、TortoiseGitの設定をします。 設定画面を開き、 マージツールの項目を選択。 外部を選択してから、P4Mergeのパス ...
git diffで違うブランチのファイル、または違う名前のファイルを比較する
同一リビジョンで違うファイルを比較する git diff master:app/views/top/index.html master:app/views/top/area_index.html 違うブランチのファイルを比較する git diff master:app/views/top/index.html bugfix:app/views/top/area_index.html 同一名称でブランチ間比較 git diff master bugfix -- app/views/top/inde ...
CentOS 5.9 で git をインストールする
CentOS 5.9 には、標準状態ではyumでgitをインストール出来ない模様。 なので、RPMforgeを使ってyumにリポジトリを追加してからgitをインストールして見ます。 このページを参考に、該当のrpmファイルをダウンロードします。 ダウンロードしたパッケージファイルをインストールします。 rpm -ivh package-filename yumで検索してみます。 yum search git git.x86_64 : Git core and tools git-all.x86_ ...
git logで、コミット毎の差分の内容を検索する
git log -S"production" コミットで、productionというキーワードを含んだ追加・削除・変更が行われたログの一覧を取得 git log -S"production" master..branch master..branch間のコミットで、productionというキーワードを含んだ追加・削除・変更が行われたログの一覧を取得 git log -S"production" app/controllers/appl ...
git for Windowsで、エディタを付属のviに変えてエンコードをUTF-8にして見る
git for Windows で、外部のエディタを使うのも良いですが、たまにはviも使ってみましょう。 と言うことで $> git config --global core.editor 'vim -c "set fenc=utf-8"' とgitのコンフィグを設定してあげるだけで、コミットログの編集にviを使う事が出来ます。
git for WindowsをCygwinに変えてみた
昔からWindows上でUnixのコマンドを扱える環境として Cygwinがありました。 当時というか、ちょっと前まで、レジストリに何か設定を残したりしてて うれしくない、ということで、最近はマシンスペックも高くなってきていたので VMでUbuntuを使うようになっていました。 けど、Windows上でもgitコマンドが使いたい、と言うことで git for Windowsというのを使ってました。 これはまぁCygwinのgitコマンドと周辺コマンドのみをパッケージングしたような物で lessが ...
git for windowsで秀丸を使ってコミットメッセージを編集したい
git for windowsは、まだ完成とは言い切れない(日本語環境で使うには)というイメージがあり 実際にコミットメッセージをコマンドラインで入力する方法でコミットすると 他の環境ではそのコミットメッセージが化けて見えたりします。 ということで、化ける原因を解消したいので エディタを別のものに変えてみます。 gitには設定でエディタを変えるという事が出来るようになっているので その設定を変更してみます。 git help configの中にあるように core.editor という設定項目を ...
gitのログコマンドでツリー状で表示させる
git logでツリー状の良い感じの表示を実現するコマンドオプションをエイリアスに登録する。 git config alias.all-log "log --oneline --decorate --graph --branches --tags --remotes"
gitで、リモートのブランチを誰かが消したにも関わらず、git branch -r をすると表示されしまう。(remote ref does not exist)
複数人でgitリポジトリを管理しており、ほかの誰かがリモート上のあるブランチを削除した場合 ローカルリポジトリ上で git branch -r とやると、消されたはずのブランチが出てきてしまう。 さらに、ここで git push origin :deleted_branch とやってみても error: unable to delete 'deleted_branch': remote ref does not exist error: failed to push some refs to ' ...
git svn fetchをする時、svn上の編集者情報をgit上で意味のある編集者情報としてfetchしたい
git svn fetchを実行すると、そのままsvn上で登録されている編集者情報が取り込まれます。 gendosu <gendosu@f6c38acf-3242-4c98-89c5-1a79c4400658> のように。 svn上ではgendosuで入っているわけですね。 これのメールアドレスの所に、正式なアドレスを入れてあげたい そして、名前の所も別の物を入れてあげたい と言うことで、適当な所にsvnauthersというファイルを作ります。 ファイル名は適当で良いです。 これを、 ...
Aptana Studio 3でEGitを入れているのに、Aptana Studio 3でインストールされるPortableGitが優先されてしまう問題
Aptana Studio 3でEGitを入れているのに Aptana Studio 3でインストールされるPortableGitが優先されてしまう問題 ですが Preferencesの設定の中にある - という所が二つあると思います。 これは、Aptana Studio 3が内包しているPortable Gitの設定と、EGitの設定が両方出てきているという事です。 で、EGitの方を優先で使いたい場合ですが - のサブオプションがある方がEGitで、サブオプションがない方がPortableG ...
UbuntuにRhodeCodeを入れてGitリポジトリを公開する
RhodeCodeというのは、 Githubのような雰囲気のソース共有サーバを構築するオープンソースです。 Githubでやりたい事を、Githubではなく、ローカルで実現したい、といった場合に適していると思います。 リポジトリをフォークしたり、ソースレビューをしたりetc と言うことで、 RhodeCodeをインストールして見ます。 RhodeCodeはPython製なので、Pythonをインストールします。 sudo apt-get install python-dev python-set ...
svnのリポジトリを全部gitに移行する
svnのリポジトリをgitで扱う方法として svn gitというコマンドツールがある 今回はgitをリモートリポジトリにする方法は別途解説するとして このコマンドを使用して、svnリポジトリをgitに移行してみます。 まずは、gitリポジトリをイニシャライズします。 イニシャライズ時に、リモートリポジトリにする前提で移行するので--bareオプションを付けます。 これは、my_prodディレクトリにソースを展開せずに管理情報だけを保持するリポジトリにするオプションです。 git init --b ...
Ubuntu 12でgitoliteを使ってgitリポジトリを公開する
公開リポジトリを作成するまで gitのインストール sudo apt-get install git gitoliteのインストール sudo apt-get install gitolite gitolite用アカウントの作成 sudo adduser --disabled-password gitolite 管理者用として公開鍵を作成 ssh-keygen -t rsa gitoliteアカウントのホームに転送 sudo cp .ssh/id_rsa.pub /home/gitolite/a ...
gitoliteからcloneする
gitoliteからリポジトリをクローンするには Linux系の場合 ssh-keygen -t rsa でキーを作成する id_rsa.pubを適当な名前でコピーする 例)gendosu-ubuntu.pub gitoliteのサーバにsftpなどで送り込んで gitolite-admin/keydirに格納する gitolite-adminリポジトリをコミットして、プッシュ これで、gitoliteへ公開鍵を設定完了 ssh gitolite@サーバ名 とやると、gitoliteがメッセージ ...
svnのリポジトリからgit cloneするには
たとえば、svnのリポジトリをgitで扱いたい場合、 git svn clone とやれば、svnのリポジトリをgitとして扱うことが出来ます。 gitでtagやbranchなども使ってsvnリポジトリを扱いたい場合 git svn clone -s とすれば、ブランチやタグの情報も取得出来るようになります。 ただし、 という構成になっていないと よろしくやってくれないようです。 通常と違う構成でsvnを使っている場合、-sオプションでは無く git svn clone --trunk=<tru ...