git rebaseとCONFLICTの解消方法について

git No Comments »

git rebaseとCONFLICTの解消方法について

% git checkout -b feature1
(編集)
% git add .
% git commit -m 'hoge'

などして

o--o--O  < -- develop
       \
        a--b--c <-- feature1

こうなる。いっぽうdevelopブランチにも変更が加わり

o--o--O--o--o--o < -- develop
       \
        a--b--c <-- feature1

developのHEADが進んでしまった場合、feature1ブランチで

% git rebase develop

すると

o--o--o--o--o--O < -- develop
                 \
                    a'--b'--c' <-- feature1

とdevelopで施された変更をfeature1に適用できる。だけど、往々にしてCONFLICTが起きる。CONLICTが起きてしまった場合は

% vim conflict-file1 conflict-file2

で編集

% git add conflict-file1 conflict-file2

次に、commitではなく

% git rebase --continue

する

http://d.hatena.ne.jp/Seasons/20090329/1238351273に書いてあった。

Gitで特定のファイルを指定したコミットの状態に戻す方法

git No Comments »

Gitで特定のファイルを指定したコミットの状態に戻したい。

戻したいコミットのハッシュを調べる

% git log path/to/file

でもいいけどtig見やすいのでオススメ。

% tig path/to/file

78b9555446f1330791249273ab8f9430222f39ff
とか。

% git checkout 78b9555446f1330791249273ab8f9430222f39ff path/to/file

これで終わり。

最後のコミットの1つ前の状態に戻したい場合はハッシュ調べなくても

% git checkout HEAD^ path/to/file

でいける。

普通に編集した時と同じく

% git status

すると
modified: path/to/file
と表示される。

Gitでコミットログの修正

git No Comments »

今日、Gitでコミット後、コミットログを書き換えたくなってこれやった。

% git commit --amend -m "新しいコミットログ"

わかりやすいコミットログだいじ。

参考URL:
git/コミットログを修正する方法 - TOBY SOFT wiki

Gitでリモートリポジトリにブランチを作る

git No Comments »
% git branch
  master
* bar
% git push origin bar

こんな感じでいけた。

clmemo@aka: Git remote repository と Branch
ここを参考にした。「origin」てリモートリポジトリの名前だったのか。知らなんだ。

% git branch
  master
* bar
% git push origin bar:hoge

こうやるとリモートにはhogeブランチができると。

Gitでコミット前の編集を破棄する

git No Comments »

Gitでコミット前の編集を破棄する方法。けっこうよく使う。

% git checkout -f

参考URL:
Git Cheat Sheets JP

Gitでリモートリポジトリのブランチをpull

git No Comments »

リモートリポジトリのブランチをpullしたい場合。
pullは使わず、fetchしてmergeする。

% git fetch origin remote_branch_name
% git checkout -b local_branch_name
% git merge FETCH_HEAD

参考URL:
merge - Git pull certain branch from github - Stack Overflow

Gitでブランチ間のdiff

git No Comments »
% git diff branch1..branch2

すぐ忘れてしまう。。

プロジェクト開始手順

git, svn No Comments »

やりかたわかんなくなるのでメモ。小規模なWebサイトの例。

svnリポジトリにプロジェクトを追加

$ cd /var/www
$ mkdir project_name
$ cd project_name
$ mkdir img  scripts skin skin/src dir1 dir2
$ touch index.html sitemap.xml dir1/index.html dir2/index.html skin/style.css scripts/project_name.js
$ cd ..
$ svn import project_name --auto-props https://svn.hogehoge.com/svn/hoge/trunk/project_name

gitの設定

$ rm -rf project_name
$ git svn clone https://svn.hogehoge.com/svn/hoge/trunk/project_name

ついでに、FeedBurnerからGoogleへの移行がうまくいかなかったので新しいものにしました。
http://feeds2.feedburner.com/kyokutyo です。よろしくお願いします。

Gitで特定ファイルを昔の状態に戻す

git No Comments »

間違えてコミットしてしまったファイルを、前のバージョンに戻したい。いくつ前のバージョンに戻したらいいかわからない。という時に。

作業手順

ファイルの中身を確認

% git show HEAD^:path/to/file

% git show HEAD^^:path/to/file

をして、以前のバージョンのファイルの中身を覗く。

特定のバージョンにファイルを戻す

バージョンがわかったら戻す。

% git checkout HEAD^ path/to/file

すると以前のバージョンの内容に戻ってる。

使用例

どんな場合に使うか(使ったか)
今回↓のような状態で使った。

% cat index.html

ここは○○のホームページです

  // 普段の内容
% vi index.html

あけましておめでとうございます。ここは○○のホームページです

  // 年始用
% git commit -m '年始用'

年始用をmasterで作業しない方がよかったかな、index.htmlを前の普段の状態に戻しておこう。年始用も今後また使うかもしれないので一応残しておきたい。

% git branch newyear  // newyearというブランチを作成
% git branch
* master
  newyear
% git show HEAD^:index.html

ここは○○のホームページです

  // 普段の内容
% git checkout HEAD^ index.html
% cat index.html

ここは○○のホームページです

  // 普段の内容
% git checkout newyear  // newyearブランチに切り替え
% cat index.html  // 年始用index.htmlを確認

あけましておめでとうございます。ここは○○のホームページです

  // 年始用

Gitでブランチの削除

git No Comments »

ブランチの削除はこうやる。

% git branch -D <branch>

違う書き方してる人もいたので、バージョンやOSによって違いがあるのか?@Ubuntu8.04

% git --version
git version 1.5.4.3
Powered by WordPress | WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in