• 自分の環境用の.gitignoreを作成する

    .gitignoreでリポジトリに追加したくないファイルのリストを記述できますが、.DS_Storeなど、特定の環境(.DS_StoreはMac環境で生成されます)に依存するファイルを各リポジトリの.gitignoreで除外するのは、なんとなく気持ちが悪いです。 その場合、自分の開発環境全体で適用させることができる.gitigrnoreファイルを作るのがスマートな方法です。 まず、以下のとおり.gitignoreファイルを生成します git config --global core.excludesfile ~/.gitignore これで、自分の環境に依存する不要なファイルは、~/.gitignoreへ追加すればOKです
  • [Mac] gitでの作業を便利にする設定

    gitでtab補完を有効にする 環境はMax OSX Lionです ここから、git-completion.bashを入手します。 入手したgit-completion.bashを/usr/local/git/contrib/completionへ配置 $ sudo mkdir -p /usr/local/git/contrib/completion/ $ sudo mv git-completion.bash /usr/local/git/contrib/completion/ ~/.profileに以下を追加します( ~/.bachrcに追加でもいいです)。 ついでに、ブランチ名も表示する設定を追加します。 source /usr/local/git/contrib/completion/git-completion.bash GIT\_PS1\_SHOWDIRTYSTATE=true PS1='\\\[\\033\[32m\\\]\\u@\\h\\\[\\033\[00m\\\]:\\\[\\033\[34m\\\]\\W\\\[\\033\[31m\\\]$(\_\_git\_ps1)\\\[\\033\[00m\\\]\\$ ' ターミナルのウィンドウを開きなおせば設定が反映されていると思います。 macbook@wadslab: project (master) $ git c (ここでtab2度押し) checkout cherry-pick clean commit cherry citool clone config macbook@wadslab: project (master) $ git c tabで候補コマンドが保管されました。ブランチ名もちゃんと表示されているようです。
  • [git] gitのbranchを完全に削除する

    gitでbranchの作成や削除方法は過去書きました。 $ git branch -d branch-name HEADへマージされていないコミットがある場合 $ git branch -D branch-name これでローカルのbranchは削除できました。 リーモートのリポジトリから完全に削除する場合は、以下のようにpushする必要があるようです。 $ git push origin :branch-name ブランチ名の前に:(コロン)をつけます。
  • [git] git 備忘録 - タグとブランチ

    gitのタグとブランチの基本操作を備忘録として書いておきます。 タグ関連 タグを作成 $ git tag < タグ名> 現在作成されているタグの確認 $ git tag -l test test2 example ワイルドカードも使えます $ git tag -l "test\*" test test2 タグがリンクしているハッシュ値を確認する $ git rev-parse test c8d5c281933cfe5c94222cb2a1b761eae7901b32 ブランチ関連 ブランチを作成する $ git branch < ブランチ名> 現在のコミット(HEAD)からブランチが作成されます ブランチを確認する $ git branch * master test-branch masterはgit cloneでローカルリポジトリを作成したときに最初から作られるブランチです。 現在のブランチに*が付きます。 タグを指定してブランチを作成 $ git chekout -b < ブランチ名> < タグ名> 現在のブランチは、新しくチェックアウトしたブランチに切り替わります。 ハッシュ値を指定してブランチを作成 $ git chekout -b < ブランチ名> < ハッシュ値> 同様にブランチが切り替わります 例です $ git checkout -b test-branch2 test2 Switched to a new branch "test_branch2" $ git branch master test-branch * test-branch2 $ git checkout -b test-branch3 c8d5c281933cfe5c94222cb2a1b761eae7901b32 Switched to a new branch "test_branch3" $ git branch master test-branch test-branch2 * test-branch3 ブランチを切り替える $ git checkout test-branch Switched to a new branch "test_branch" $ git branch master * test-branch test-branch2 test-branch3 ファイルを変更後、コミットせずにブランチを切り替えた場合、切り替えた先のブランチにどうファイルが存在する場合は変更が適用されます。
  • [ubuntu][trac][git] gitとtracを連携させる

    tracで連携するリポジトリとして、subversionではなくgitを使う設定をしました。 今回はそのときの設定ログです。 gitとtracの連携にはGit Plugin for Tracというプラグインを使いました。以下インストール手順です。 インストール 1. ソースのダウンロード まずはプラグインをリポジトリからダウンロードします。``` $ mkdir ~/tmp $ cd ~/tmp $ git clone http://nanosleep.org/git/trac-git-plugin/ Initialized empty Git repository in /home/wada/trac-git-plugin/.git/ /usr/bin/git-clone: 310: curl: not found Cannot get remote repository information. Perhaps git-update-server-info needs to be run there? curlがインストールされていないようなのでインストールします。 $ sudo apt-get install curl 改めてプラグインをダウンロードします。 $ git clone http://nanosleep.org/git/trac-git-plugin/ **2\. インストール** 続いて、プラグインをtracにインストールします。 $ cd trac-git-plugin/0.10 $ python setup.py Traceback (most recent call last): File “setup.py”, line 1, in from setuptools import setup ImportError: No module named setuptools setuptoolsが必要とのこと。 ez\_setup.
  • [git] Subversionからgitへ移行する

    ソースコードなどを管理するリポジトリをSubversionからgitへ移行する方法です。gitからSubversionへコミットを反映する方法も書きます。 ・Subversionリポジトリをgitリポジトリへ変換する方法 git svn cloneコマンドを使ってSubversionリポジトリをクーロンし、gitのローカルリポジトリへ変換します。$ git svn clone リポジトリのコピーだけでなく、過去の履歴もちゃんとコピーできます。 Subversionでtrunkやbranches、tagsのようなディレクトリを切ってある場合には、それぞれ-T、-b、-t1オプションで指定することで、ブランチとしてコピーできます。$ git svn clone -T trunk -b branches -t tags これでgitリポジトリ内でファイルの追加や削除、コミットができます。 ・gitリポジトリをSvbversionリポジトリの最新の状態と同期させる gitリポジトリをSvbversionリポジトリの最新の状態と同期させるには以下のよようにします。``` $ git svn rebase また、gitリポジトリでの変更をSubversionリポジトリへ反映させるには以下のようにします。 $ git svn dcommit
  • [git] gitのインストール

    分散バージョン管理システムのひとつにgitがあります。 分散バージョン管理システムだとローカルの環境でリポジトリをもつので、ローカル環境でファイルの追加や削除、コミットができて、さらにあとで他のリポジトリと同期を取ったり変更を反映したりできます。 このようなソースコード管理の方法がちょうど今の環境に都合がよさそうだったので試しに使ってみました。たいしたことはやっていませんがメモっておきます。 インストール CentOS編 SoftwareDesign4月号やここを参考にしてyumやrpmからインストールを試みたのですが、見事に失敗しました。 そこでSoftwareDesignであまりお勧めされていなかったソースからインストールしたらあっさりできました。 $ wget http://kernel.org/pub/software/scm/git/git-1.5.6.1.tar.gz $ tar zxvf git-1.5.6.1.tar.gz $ cd git-1.5.6.1 $ ./configure $ make # sudo make install インストール Ubuntu編 こちらはapt-getで一発でした。 $ sudo apt-get install git-core 初期設定 とりあえず名前とメアドを登録しておきました。 $ git config --global user.name "wads" $ git config --global user.email wadslab@gmail.com リポジトリの作成 $ cd /path/to/your/repository $ git init Initialized empty Git repository in .git/ .gitファイルができていればリポジトリの作成は成功です。