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