git, 開発

.gitignoreファイル 更新していますか? 扱うプロジェクトが多いと、エディタ変えたときとかプロジェクトディレクトリに設定ファイルを作ってしまうツール等を導入した場合に大変ですね。 今のチームではエディタは各自好きな物を選ぶ運用になっており AtomとかVSCodeとか使っていたりします。 プロジェクトもいくつかありますが それぞれのプロジェクトの.gitignoreに .vscode .atom と言った物を書くのがあまりうれしくないと思ってしまいます。 そんなときは、~/.gitign ...

git, 開発

よくチュートリアルのなどで git clone git checkout なんて感じでcloneして使うやり方を書いてあったりするけども 普通にgit cloneすると 他のブランチの情報とかも管理ディレクトリに持ってきている状態なので ディスク容量も食うし、cloneする時間もかかる。 そこで、特にgit的な操作は以後しないのであればgit shallow cloneするのが良い。 やり方は git clone —depth 1 —branch こうすると、ブランチの最新のリビジョンだけを持っ ...

git

gitにExcelファイルあげちゃった。そして差分も見たいです。 エンジニア以外にもgithubを使い出しているところが増えつつありますが、 このような要望が少なくありません。 エンジニアとしては、それはExcelがちょっと・・・という感じかもしれませんが 非エンジニアとしてはExcelが自分の仕事の表現手段、というか やはり操作感は他のツールとは別格かと思います。 そこにエンジニア目線で別のツールを押しつけるのもどうかと思ったりもします。 ※別のツールを提供した方が効率が上がるケースももちろん ...

git, ubuntu

git cloneしたときに (gnome-ssh-askpass:***): Gtk-WARNING **: cannot open display: という表示が出てエラーになる。 どうも、SSHの処理がパスワード入力ダイアログを出したいらしい。 これに関連する環境変数が SSH_ASKPASS という事で、これをunsetして見ます。 unset SSH_ASKPASS これで、無事git clone出来るかと思います。

git, Windows

TortoiseSVNや、TortoiseGitで、競合が発生した場合に使用するTortoiseMergeですが、あまり使い勝手が良いとはいえないです。 そんなときは、P4Mergeを入れてみましょう。 インストールは から。 このように、Visual Merge Toolのみを有効にして、後は無効にします。 これでインストール。 インストールが完了したら、TortoiseGitの設定をします。 設定画面を開き、   マージツールの項目を選択。 外部を選択してから、P4Mergeのパス ...

git

同一リビジョンで違うファイルを比較する 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, 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

git log -S"production" コミットで、productionというキーワードを含んだ追加・削除・変更が行われたログの一覧を取得 git log -S"production" master..branch master..branch間のコミットで、productionというキーワードを含んだ追加・削除・変更が行われたログの一覧を取得 git log -S"production" app/controllers/appl ...

git

git for Windows で、外部のエディタを使うのも良いですが、たまにはviも使ってみましょう。 と言うことで $> git config --global core.editor 'vim -c "set fenc=utf-8"' とgitのコンフィグを設定してあげるだけで、コミットログの編集にviを使う事が出来ます。

git

昔からWindows上でUnixのコマンドを扱える環境として Cygwinがありました。 当時というか、ちょっと前まで、レジストリに何か設定を残したりしてて うれしくない、ということで、最近はマシンスペックも高くなってきていたので VMでUbuntuを使うようになっていました。 けど、Windows上でもgitコマンドが使いたい、と言うことで git for Windowsというのを使ってました。 これはまぁCygwinのgitコマンドと周辺コマンドのみをパッケージングしたような物で lessが ...

git

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リポジトリを管理しており、ほかの誰かがリモート上のあるブランチを削除した場合 ローカルリポジトリ上で 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

git svn fetchを実行すると、そのままsvn上で登録されている編集者情報が取り込まれます。 gendosu <gendosu@f6c38acf-3242-4c98-89c5-1a79c4400658> のように。 svn上ではgendosuで入っているわけですね。 これのメールアドレスの所に、正式なアドレスを入れてあげたい そして、名前の所も別の物を入れてあげたい と言うことで、適当な所にsvnauthersというファイルを作ります。 ファイル名は適当で良いです。 これを、 ...

Eclipse, git, Ruby on Rails メモ

Aptana Studio 3でEGitを入れているのに Aptana Studio 3でインストールされるPortableGitが優先されてしまう問題 ですが Preferencesの設定の中にある - という所が二つあると思います。 これは、Aptana Studio 3が内包しているPortable Gitの設定と、EGitの設定が両方出てきているという事です。 で、EGitの方を優先で使いたい場合ですが - のサブオプションがある方がEGitで、サブオプションがない方がPortableG ...

git, ubuntu

RhodeCodeというのは、 Githubのような雰囲気のソース共有サーバを構築するオープンソースです。 Githubでやりたい事を、Githubではなく、ローカルで実現したい、といった場合に適していると思います。 リポジトリをフォークしたり、ソースレビューをしたりetc と言うことで、 RhodeCodeをインストールして見ます。 RhodeCodeはPython製なので、Pythonをインストールします。 sudo apt-get install python-dev python-set ...

git, Linux, ubuntu

svnのリポジトリをgitで扱う方法として svn gitというコマンドツールがある 今回はgitをリモートリポジトリにする方法は別途解説するとして このコマンドを使用して、svnリポジトリをgitに移行してみます。 まずは、gitリポジトリをイニシャライズします。 イニシャライズ時に、リモートリポジトリにする前提で移行するので--bareオプションを付けます。 これは、my_prodディレクトリにソースを展開せずに管理情報だけを保持するリポジトリにするオプションです。 git init --b ...

git, ubuntu

公開リポジトリを作成するまで 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 ...

git, Linux, Windows

gitoliteからリポジトリをクローンするには Linux系の場合 ssh-keygen -t rsa でキーを作成する id_rsa.pubを適当な名前でコピーする 例)gendosu-ubuntu.pub gitoliteのサーバにsftpなどで送り込んで gitolite-admin/keydirに格納する gitolite-adminリポジトリをコミットして、プッシュ これで、gitoliteへ公開鍵を設定完了 ssh gitolite@サーバ名 とやると、gitoliteがメッセージ ...

git

たとえば、svnのリポジトリをgitで扱いたい場合、 git svn clone とやれば、svnのリポジトリをgitとして扱うことが出来ます。 gitでtagやbranchなども使ってsvnリポジトリを扱いたい場合 git svn clone -s とすれば、ブランチやタグの情報も取得出来るようになります。 ただし、 という構成になっていないと よろしくやってくれないようです。 通常と違う構成でsvnを使っている場合、-sオプションでは無く git svn clone --trunk=<tru ...