git と svn

git

push した操作を取り消す

ファイルを編集し間違って push した場合、次のようにして取り消すことができる。

# 間違ってコミット
git add README
git commit -m "add readme file"
git push

# push の取り消し
git reset --hard HEAD^
git push -f origin HEAD^:master

マージ

分岐して開発を進めたコードをメインのブランチに反映させるときの例。コミット履歴からコミット番号を確認した後に、cherry-master を利用して反映させる。

----A----B----C----D [master]
         |
         -----K----L----M [devel]
git checkout devel
git log # コミット履歴を確認
## commit e649c2b134aea3d943423c348248aead59a3d4c
## Author: ...
## Date:   Fri May 24 08:24:33 2013 +0900
## 
##     M commit
## 
## commit 540ed624eef1640aaa5b860c62883d3628aef0a
## Author: ...
## Date:   Wed May 22 12:32:44 2013 +0900
## 
##     L commit
## 

git checkout master # masterブランチに移動
git cherry-pick e649c2b134aea3d943423c348248aead59a3d4c

fork 元の変更をマージ

fork 元のブランチを git@github.com:jqsunac/bioinformatics の master ブランチとする。

git remote add upstream git@github.com:jqsunac/bioinformatics
git fetch upstream
git merge upstream/master

svn

ファイルを更新

ローカルで更新したすべてのファイルをレポジトリーに反映するときは commit を利用する。

svn commit

特定のファイルをレポジトリーに反映するときは ci を利用する。

svn ci -m "change comments" ./path/to/file1 ./path/to/file2

更新の取り消し

ローカルで変更したファイルの変更内容を取り消して、レポジトリーにある内容に戻したい場合は revert を利用する。

svn revert ./path/to/file1 ./path/to/file2