Git memo

Git

Gitメモです。

SubversionのアレってGitでは・・

Subverion Git
svnadmin create git init
svn checkout git clone
svn update git pull
svn add git add
svn status git status
svn switch [ブランチ] git checkout [ブランチ]
svn merge [ブランチ] git merge [ブランチ]
svn revert [ファイル] git checkout [ファイル]

Google CodeをGitで使う

Google Codeは2010年現在SubversionとMercurialしか使えない。しかし、GitにはGitから直接Subversionにアクセスする方法が提供されている。

Google CodeのSubversionリポジトリからGitリポジトリのチェックアウト

次のコマンドでSubversionのリポジトリからチェックアウト(Gitではclone)することができる。

$ git svn clone -s  https://kenji.googlecode.com/svn/ KenjiRepository

svnコマンドがないよ!と怒られる場合はgit-svnを入れる。Ubuntuの場合はapt-getでサクッと入る。

$ sudo apt-get install git-svn

Google CodeのSubversionリポジトリへGitリポジトリのコミット

Git上の変更をGoogle Codeへ反映する。Google Codeでのユーザ名を–usernameオプションで設定する。

$ git svn dcommit --username kenjikitamura

EclipseでGitを使う

EGitをインスコ

EGitでPushしようとするとCan’t connect to any URIと怒られる場合

プロジェクトフォルダの中の.git/configファイルを開き、[remote “origin”]の項目のurl設定コピーし、pushurlとする。

[test][remote “origin”]
url = ssh://hogehoge/rep/HOGE
fetch = +refs/heads/*:refs/remotes/origin/*
pushurl = ssh://hogehoge/rep/HOGE ← urlをコピーしpushurlに返る![/text]

Pushがリジェクトされる場合

EGitでエラーが出ると内容がわからないけど、コマンドラインからやると詳細なエラーが出る事がある。

remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.

上記の怒られ方をしている場合は、リモート側のリポジトリで以下のコマンドを実行する。実行したらpushできるはず。できない場合は別の問題。

git config --add receive.denyCurrentBranch ignore

git pushがrejectされてしまう場合

pushしようとしたらサーバ側でも変更されていたりしてリジェクトされる場合がある。

$ git push
To ssh://USER@HOGEHOGE/HOGEFU
! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://USER@HOGEHOGE/HOGEFU'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

そんなときはgit pull –commitすれば解決。

gitコマンドで使用するエディタを変更する

git commit とかすると、コメントを記述するためのエディタが起動する。デフォルトではviが起動するので、nanoとかに変更したい場合は次のようにする。

git config --global core.editor 'nano'

EclipseのgitプラグインEGitでcheckoutをするには

Eclipseで作業中、変更を取り消し、最後にコミットされた状態に戻したいときがある。そんな時はプロジェクトを右クリックし、[Team]-[Reset]を選択し、HEADを選択しよう。Reset TypeをHardにすれば全部戻る。

No Comments

Post a Comment

コメントを投稿するには、下の計算の答えを入力する必要があります。答えは半角数字で入力してください。 *