bauer's diary

凡人の凡人による凡人のための備忘録

gitで、二度目以降https認証でアイパスを聞かれないようにする設定

gitで、HTTPSでpush/pullするときに毎回パスワードを聞かれないようにする。

環境:Mac OS X 10.6.8

Macでは、キーチェーンと連携するための認証ヘルパーを使用することができる。
Homebrewでのインストール時、Gitのインストール時に認証ヘルパーも自動でインストールされる。

認証ヘルパーがインストールされているかどうか確認。

$ git credential-osxkeychain
usage: git credential-osxkeychain <get|store|erase>

認証ヘルパーを有効にする設定を追加する。

$ git config --global credential.helper osxkeychain

.gitconfigに下記記述が追加されている。

[credential]
	helper = osxkeychain

dotfilesをGitHubで管理

HomeBrewでやります。

$ cd ~
$ mkdir .dotfiles
$ mv .vimrc .dotfiles/
$ mv .zshrc .dotfiles/
$ ln -s .dotfiles/.vimrc .vimrc
$ ln -s .dotfiles/.zshrc .zshrc
$ cd .dotfiles
$ touch README.md
$ git init
$ git add -A
$ git commit -m 'first commit!'
$ git remote add origin git@github.com:[USER]/.dotfiles.git
$ git push -u origin master

oh-my-zshを導入してみる

  1. oh-my-zshって何?

  2. 導入

 

1.oh-my-zshって何?

 

https://github.com/robbyrussell/oh-my-zsh

 

下記の恩恵を一気に受けることができる、zshローカル設定のフレームワーク

推奨されるzshのバージョンは4.3.9。

  • 40以上のプロンプトテーマ
  • 便利なプラグイン集
  • コミュニティ主体の開発(みんなの設定を取り込んでいく)が

    自動アップデートで取り込むことができる機能(※1)

※1…

1週間に1回のタイミングで、zsh起動時に自動的アップデートされる。アップデートといっても単純にGitHubからpullしてくるだけ。Gitを使わずにインストールした人はこの機能が使えない。

 

 

勝手にアップデートされるのがいやなら ~/.zhsrcの設定で無効にできる。

 

2.導入

 

githubに書かれている通り, git cloneするか、

 

あるいは curl または wgetでinstall.shを取得して実行する。

 

既存の設定はバックアップすること。

 

 

2-1.テーマ変更

 

 

テーマ変更はこちら一覧から気に入ったテーマを指定して.zshrcを再読み込みすればよい。

https://github.com/robbyrussell/oh-my-zsh/wiki/Themes

 

 

 

2-2.プラグイン利用 

.zshrcの「plugins=()」に対象プラグイン名を追記することで行える。

plugins=(svn git)

colorsvnで幸せなsvnライフを。

git主流ですが、既存のプロジェクトではまだまだSVNを利用しているところも多いはず。

そんなあなたに、色分けされる便利なツールを紹介

 

>|sh|

% wget http://www.console-colors.de/downloads/colorsvn/colorsvn-0.3.2.tar.gz

||<

 

rpmがない場合は、ソースからconfigure,makeする。

 

最新はこちら↓

Console colors - ConsColors - Downloads

 

解凍して、

% ./configure

checking whether make sets $(MAKE)... ./configure: line 1236: ac_make: command not found

./configure: line 1236: 31mtemp=make: command not found

no

checking whether to enable maintainer-specific portions of Makefiles... no

checking whether ln -s works... yes

checking for a BSD-compatible install... /usr/local/bin/ginstall -c

checking for rm... /bin/rm

checking for cp... /bin/cp

checking for perl... perl

checking for svn... svn

configure: creating ./config.status

config.status: creating Makefile

config.status: creating config.h

 

% make

/bin/rm -f colorsvn && \

/bin/rm -f colorsvnrc && \

/bin/rm -f colorsvn-env.sh

/bin/cp colorsvn-original colorsvn && \

perl -pi -e '~s|/usr/bin/svn|/usr/bin/svn|' colorsvn && \

/bin/cp colorsvnrc-original colorsvnrc && \

perl -pi -e '~s|colorsvnrc|colorsvnrc|' colorsvn && \

perl -pi -e '~s|/usr/bin/svn|/usr/bin/svn|' colorsvnrc && \

/bin/cp colorsvn-env.sh-original colorsvn-env.sh && \

perl -pi -e '~s|/usr/bin/colorsvn|/usr/bin/colorsvn|' colorsvn-env.sh

 

% sudo make install

/usr/local/bin/ginstall -c -d /usr/bin && \

/usr/local/bin/ginstall -c -m 755 colorsvn /usr/bin/colorsvn && \

/usr/local/bin/ginstall -c -d //etc && \

/usr/local/bin/ginstall -c -m 644 colorsvnrc //etc/colorsvnrc && \

/usr/local/bin/ginstall -c -d //etc/profile.d && \

/usr/local/bin/ginstall -c -m 755 colorsvn-env.sh //etc/profile.d/colorsvn-env.sh && \

if [ -f ./colorsvn.1 ] ; then \

   /usr/local/bin/ginstall -c -d /usr/man/man1/ ; \

   /usr/local/bin/ginstall -c -m 644 ./colorsvn.1 /usr/man/man1/ ; \

fi

 

あとは.bashrcにエイリアスを張って完成。

alias svn='colorsvn'

SVNで異なるリモートリポジトリを向いている箇所があるか確認する

branchの一部のみ、異なる向き先を向いていたので、それを確認するためのコマンド。

 

 % find . -type d -a ! -regex '.*\.svn.*' -exec svn info {} \; | grep [検索したいリポジトリURL]

 

 または

 

 % svn stat | awk '$1 == "S"'

 

 ⇒statのステータス'S'は

 「the item has a Switched URL relative to the parent」

GitHubで相手のリポジトリをforkせずにcloneして編集した内容をpull requestするまで

通常の手順だと、

 

 1.相手のGitHubリポジトリから自分のリポジトリにfork

 2.自分のリポジトリに作業ブランチを作成

 3.ローカルで編集

 4.変更内容をadd・commit

 5.自分のリポジトリにpush

 6.相手のリポジトリにpull request

 

となるのだが、

相手のGitHubリポジトリを直接cloneして編集していたため、

 

 1.相手のGitHubリポジトリから自分のリポジトリにfork

 2.forkしたリポジトリをリモートとして追加

 

  git remote add [コミットするユーザ名] git@github.com:[GitHubユーザ]/[プロジェクト名].git

 

 3.変更内容をadd・commit

 4.自分のリポジトリにpush

 

  git push [コミットするリポジトリ] master:[ブランチ名]

 

 5.相手のリポジトリにpull request

 

という手順で進めた!問題なさそう。