ラベル git の投稿を表示しています。 すべての投稿を表示
ラベル git の投稿を表示しています。 すべての投稿を表示

2012/10/12

OS X 10.8.2: disable-bluetooth

OS X 10.8.2 用

disable-bluetooth — Gist
https://gist.github.com/3870046
Public Clone URL: git://gist.github.com/3870046.git


disable-RemoteDesktop — Gist
https://gist.github.com/3870057
Public Clone URL: git://gist.github.com/3870057.git

OS X 10.8.2: git-KeychainAccess.app

Mountain Lion で git を使う為に .ssh と .gitconfig を配置した。
以前使用していた keychain をバックアップから取り戻す必要があるが面倒だったので...
% ssh git@github.com してみたら Keychain Access.app (キーチェインアクセス) が起動して git 用 ssh key を登録できた。

(% ps aux | grep ssh してみて /usr/bin/ssh-agent プロセスが残っていたら kill しておく)

% ssh git@github.com
=>
...(省略)
You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

.ssh/.known_hosts が追加された。


早速 gist.github.com にアクセスして clone し手元で編集しpush ...

% git clone git://gist.github.com/3870057 ~/disable-remotedesktop
% cd ~/diable-remotedesktop
% git add disable-RemoteDesktop.sh
# ファイル名を変更したり space を削除したり...

% git commit -m 'change name'
% git stauts
% git push origin master
=>
fatal: remote error: 
  You can't push to git://github.com/3870057.git
  Use git@github.com:3870057.git

push できなかった!

% git remote add origin git@github.com:3870057.git 
=>
fatal: remote origin already exists.

すでに存在しているようなので...

% git push git@github.com:3870057.git


push できた!
(以前は gitst へも push origin master で push できていたような気がするのですが...?)

[追記]

% git clone git://gist.github.com/3870057 ~/disable-remotedesktop

で clone した為 git push origin master ができなかった。

正しく ↓ clone した場合

% git clone git@gist.github.com:3870057.git ~/disable-remotedesktop

普通に git push origin master できた。

2010/06/08

install-rurema

Rubyの新リファレンスマニュアルをコマンドラインから簡単に引くためのツールを書いた

うわっこれいいな。早速 install

http://github.com/yhara/myrurema

README を読むと gem を使ってインストールできるとあったんですが、ちょっと gem 苦手な為 gem を使わないで動せないものかな?と、try してみました。 (OS X 10.6.3)

$ git clone git://github.com/yhara/myrurema  rurema
$ cd rurema/myrurema/bin
$ vim rurema
# shebang を自分の ruby 1.9.2 のパスに修正。#!/usr/bin/env ruby #  changed
$ pwd
/path/to/rurema/myrurema/bin

# とりあえず

$ ./rurema
Usage: rurema [options]
         --init                       initialize rurema
         --update                     update documents and database
...(略)

# README を読みながら
# Init

$ ./rurema --init --ruremadir=/path/to/rurema/data

# これを実行すると ~/home に.subversion ディレクトリができた。

try

$ ./rurema Array#index
You don't have a database for ruby 1.9.2.
109 Make it now? [y/n]
...略

y としたけど ~/home/.rurema を作っていないのだからアップデートできない。

$ ln -s /path/to/rurema/data ~/.rurema

シンボリックはってみた

# Update

$ ./rurema --update --ruremadir=/path/to/rurema/data

# この時勢いよくファンが回りはじめてちょっと不安になった。$ top してみると ruby(OS X に標準インストールされてる方) 一時的に50% 台になったりしつつも基本的には10% 台で動いてた。ずっとみていたら急に90% 近くなってあ”と思ったとたんに終了してほっとした。

# try

$ pwd
$ /path/to/rurema/myrurema/bin
$ ./rurema Array#index
Array#index
--- index(val)           -> Integer | nil 
--- index {|item| ...}   -> Integer | nil 

指定された val と == で等しい最初の要素の位置を返します。
等しい要素がひとつもなかった時には nil を返します。
...(略)


わい
動かすことができたのでエイリアスにしちゃう。

$ vim ~/.bashrc
# alias 'rurema'='/path/to/myrurema/bin/rurema'

$ source ~/.bashrc
$ rurema String#size
String#size
--- length -> Integer
--- size -> Integer

文字列の文字数を返します。バイト数を知りたいときは bytesize メソッドを使ってください。

@see [[m:String#bytesize]]


コマンドラインからるりまをみることができました。うれしいな。便利だなー。

+++ まとめ +++

# Download rurema 
$ git clone git://github.com/yhara/myrurema rurema
$ cd rurema/myrurema/bin

# shebang を自分がインストールした ruby 1.9.2 のパスに修正。#!/usr/bin/env ruby #  changed
$ vim rurema

# 確認 & ヘルプ
$ ./rurema

# database directory
$ mkdir /path/to/rurema/data

# リンク作成
$ ln -s /path/to/rurema/data ~/.rurema

# init and update
$ ./rurema --init --rubyver=1.9.2 --ruremadir=/path/to/rurema/data
$ ./rurema --update --rubyver=1.9.2 --ruremadir=/path/to/rurema/data

# みてみる
$ ./rurema String#size

# alias
# $ vim ~/.bashrc 
# $ source ~/.bashrc


参照
http://ja.wikipedia.org/wiki/Subversion
SnowLeopard には標準でSubversion入っていた。知らなかった。

2010/03/18

git-clone-port

memo

github.com で公開されてるプロジェクトを clone したい時
TCP 9418
が出て行くのを許可されてないと clone できない。

2010/03/04

部分変更重要

入門Git のp.57-58 を読みながら試してみたこと

# 複数のファイルが git diff に表示されていた場合、git add -p する際にファイル名を指定することもできた。
% git add -p filename
% git add -p
してすぐにリターンするとヘルプをみることができた。

思い通りに hunk が分かれていなかった場合は s 選択するとより細かく分割してくれるようだ。今回のコミットに反映したい箇所は y で反映したくない時は n。 q で終了。

% git diff --cached
今からコミットする内容を確認

% git commit -v
変更箇所の詳細内容をみながらコミット文を作成できる。書式ルールは

1行目が要約文
2行目空行
3行目以降に詳細文

これからは要点と合致した commit を心がけようと思った。

2010/02/17

git push error

% git push origin master
を実行したら

 ! [rejected]        master -> master (non-fast-forward)

error: failed to push some refs to (...略) 
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'non-fast-forward'
section of 'git push --help' for details.


となってしまった。思い当たることとしては OS を再インストールして git repository へのパスを変えてしまったことと git のバージョンをあげたこと。

% git push --help

/non-fast-forward
next していたら次のような文章があった。

       There is another common situation where you may encounter non-fast-forward rejection when you try to push, and it is possible even
       when you are pushing into a repository nobody else pushes into. After you push commit A yourself (in the first picture in this
       section), replace it with "git commit --amend" to produce commit B, and you try to push it out, because forgot that you have pushed A
       out already. In such a case, and only if you are certain that nobody in the meantime fetched your earlier commit A (and started
       building on top of it), you can run "git push --force" to overwrite it. In other words, "git push --force" is a method reserved for a
       case where you do mean to lose history.

辞書をひきつつ 2 回読んでみたけどもなぜこうなってしまったのか?や、どうすればいいのか?は読み解けない。

Google にて "non-fast forward"
を検索してみたところ
http://blog.digital-squad.net/article/132085683.html

こういうときは --forceオプションをつけてやることで強制的にpushできる。
git push origin master --force

とありまして --force をつけて試してみるとあっさり git push に成功しました。とても助かりました。
一時は ssh-keygen で鍵を作りなおさなくちゃいけないのかと思った。

さて、落ち着いてから上の英文を読みなおすと

you can run "git push --force" to overwrite it. In other words, "git push --force" is a method reserved for a
       case where you do mean to lose history.

... "git push --force" はあなたが歴史を失うケースに備えての予備のメソッド?
間違えて読んでる可能性大だけど歴史を失うとはどういうことだろ。
OS 再インストールしてパスが変わってるから何かが失われたってことなのかな。何が?

% git log
ちゃんと動いてる。最初からのlog もみえてる。はて?

+++ 教訓 +++

% git push midore@github.com:midore/mblogger.git

などしても

...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

エラーになる。だからといって ~/.ssh/ の中の鍵のパーミションが関係してる?とか考えない。

remote 先を明示したい時は

% git push git@github.com:midore/mblogger.git


~/.gitconfig や ~/.ssh/ にゆるぎない自信があれば

% git push origin master

で OK.

[後日談]
入門Git(秀和システム) を読みましてこの時何がおこっていたか?を考えてみました。
p81 に non fast forward エラーについて解説がありました。

私の場合OS を入れ替える前にバックアップをとり、OS を新規インストールした後にこのバックアップから
local git repository を読み込んだわけだけどもバックアップした直後で新規インストールする直前に
github.com/midore/mdiary に対してgit push しちゃっていたのかもしれません(驚)
だとすればこの挙動はものすごく納得がいきます。
バックアップとった後に git push した記憶がない自分が怖い...

私がうっかり git push していたのならば上記の対処は正しいやり方じゃなかったようです。
% git pull
を使い
(pull 先は add remote した先を指し、clone したproject の場合は自動的にclone 元になるそうだ)
github.com においてあるリポジトリの最新コミットと手元のリポジトリのコミットをマージさせるべきでした。
git pull してみればどこで conflict していたか明らかになったはずなのでした。
(ただしgit push した記憶がない状態で pull する勇気をもてたかは不明)
conflict メッセージがでていたのならそのファイルを編集した上でcommit するべきだったのかもしれません。

2010/01/20

git-push

mblogger 変更点

1, テキストファイルを読み込む処理方法と表示するエラーの変更。
2, XML タグ生成に失敗した際 行内容とメッセージを表示するようにした。
3, コンテンツ内容が空の場合は post も puts もできないようにした。
4, その他 draft.txt, README なども若干変更
5, mdiary と保存先ディレクトリが一致した場合、mdiary は年月別のサブディレクトリをかましているので mblogger もそれにあわせた。

など。

2009/12/15

about-mdiary

mdiary について

有名な tDiary にあやかり mdiary と名付けた。
正式名称は「ま(m)だできてない diary」で mdiary ^^;

<特徴>
• ruby 1.9.1 が必要です。
• local (自分のコンピュータの中) で使うものです。
• home user 向けです。
• ちょっとしたメモ、雑記帳、todolist としても利用できます。
• vim を前提にしてますが mdiary-main.rb を一行変更するだけで他のエディタでもつかえます。
• 標準ライブラリ以外のライブラリに依存してません。
• gem とかいらないです。
• データベースを使用していません。
• marshal なども使用していません。
• キャッシュを作成しません。
• logfile ありません。
• ひょっとしたら軽いかも?
• まだ未完成です。

<使い方>
$ vim bin/mdconfig
ファイル保存先として利用したいディレクトリのパスを記入。
$ vim bin/mdiary-run.rb
ruby 1.9.1 のパスを一行目に記入(例:#!/usr/local/bin/ruby)

新規ファイル作成
$ ./mdiary-run.rb -at '2009/12/14 21:00'

一覧表示(ハイフン + 小文字のエル)
$ ./mdiary-run.rb -l

=>
1  [-] [2009/12/14 Mon PM 21:00:26] [about-mdiary] (draft)
2  [-] [2009/12/14 Mon PM 21:00:00] [about-git] (diary)
3  [+] [2009/12/14 Mon PM 20:00:00] [list] (book)
Select NO:


使い方の続きは REAME を...
$ git clone git://github.com/midore/mdiary.git
or
ブラウザごしにダウンロードもできると思います。
URL : http://github.com/midore/mdiary.git