トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

劇場

劇場>>Gitメモ

 git 設定

  • エイリアスを設定しておくと幸せになれるかも
  • &その他設定

net stop beep #windows用

git config --global alias.b branch

git config --global alias.s status

git config --global alias.st status

git config --global alias.ci commit

git config --global alias.co checkout

git config --global user.name "username"

git config --global user.email "mailaddress"

git config --global core.editor vim

git config --global core.pager 'less -r'

git config --global push.default current

git config --global color.ui auto

*.swp

*.cache

*.tmp

test*

.gitignore

.gitignoreをignoreするかどうかは場合によりけり

 さくらでgit使う場合のメモ

  • remoteの設定が複雑なので調べた事を残しておく

シンボリックリンク(new)

[server]$ ln -s /home/username/local/git/bin /home/username/bin

  • 自分の場合はgitのインストール場所が違ったのでそれに合わせてリンク作成

$ ln -s /home/account/local/bin /home/account/bin

cshの場合

まず、さくらインターネットをリモートリポジトリとして使う場合は下記のようなエラーがでて動かないので

git-receive-pack: Command not found.

fatal: The remote end hung up unexpectedly

解決方法として.chrcにgitのパスを通す必要があります。

set path=($path $HOME/local/bin )

zshの場合

PATH=$HOME/local/bin:$PATH

ローカル側での対応する場合

[alias]

spush = push --receive-pack=/home/username/local/git/bin/git-receive-pack

sclone = clone --upload-pack=/home/username/local/git/bin/git-upload-pack

spush = push --upload-pack=/home/username/local/git/bin/git-upload-pack

remote repositryの作成注意点

pushするためのremote repositryは--bareつけて作るべし

  • 適当に作ったレポジトリにpushしようとしたら

Counting objects: 4, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (3/3), 344 bytes, done.

Total 3 (delta 0), reused 0 (delta 0)

error: refusing to update checked out branch: refs/heads/master

error: By default, updating the current branch in a non-bare repository

error: is denied, because it will make the index and work tree inconsistent

error: with what you pushed, and will require 'git reset --hard' to match

error: the work tree to HEAD.

error:

error: You can set 'receive.denyCurrentBranch' configuration variable to

error: 'ignore' or 'warn' in the remote repository to allow pushing into

error: its current branch; however, this is not recommended unless you

error: arranged to update its work tree to match what you pushed in some

error: other way.

error:

error: To squelch this message and still keep the default behaviour, set

error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

こんな感じのエラーが出てpushできなかった.

この辺が原因

で、なんのこっちゃらと思ったら、push先がbareになっていないのが悪いらしい。

---------------------

If you're creating a repo that people are going to want to push to, then you should create it using git init --bare (and git init --bare --shared if several user accounts need access to it), or git clone --bare if you're creating it by cloning an existing repo.

---------------------

つまり、みんなでpushするレポジトリがあったら、そいつをbareなものにしておけば、bareなものに対するpushにはこの気持ち悪い警告は出ない。

gitでローカルとサーバーとの環境構築

自分の開発環境めも

  • 【追記】シンボリックリンクを設定したのでsclone,spush,spullではなく通常のコマンドでおk
  • 本番repositry:/home/account/www
  • bare-repositry:/home/account/git/www.git
  • 開発repositry:localMAC:/Users/account/bsfactory/www
  • 準備

>cd /home/account/git

>git clone --bare /home/account/www

>cd -

>git remote add origin /home/account/git/www.git

  • 流れ
  • MAC

>cd /Users/account/git/bsfactory

>git sclone ssh://account@server/home/account/git/www

>vim {edit}

>git commit -a

>git spush

  • remote

>cd /home/account/www

>git pull /home/account/git/www.git master

※sclone, spushは http://wiki.hituzi.jp/wiki.cgi?page=Git%A5%E1%A5%E2#p3 参照

 MACでgit使う場合のメモ

 rebase で本番用の設定と開発用の設定を簡単に切り替える

 TDD と Git についてメモ

 コミット時の表示

git commit -a -s -v

s サインオフ。自分が著作権があるという署名。

v diffをもう一度確認できる。

 現在の修正をその2、3個前のcommitも含めてブランチで進めていた事にしたい場合

git comit -a -m "temp"

git branch dev1

git reset --hard HEAD^^^

git checkout dev1

git reset HEAD^

 zshでもbashと同じくらい快適にgit補完関数を使う

さてgitのtarballにcontrib/completion/git-completion.bashというのがあるのはディープなgit使いならご存知かと思います。残念ながらファイル名の通りbashでしか使えませんでしたが、v1.7.4-rc0でzsh compatibleになりました