綾小路龍之介の素人思考

[git] ブランチの作成とチェックアウト、パッチ作成

master ブランチが最新の状態でないリポジトリもある。このような場合、明示的に引数を与えなければいけないことが増える。例題としてよさそうだったので、やってみた。

他人のリポジトリを clone する。

$ git clone git://repo.or.cz/libquvi-scripts.git
Cloning into libquvi-scripts...
remote: Counting objects: 1766, done.
remote: Compressing objects: 100% (701/701), done.
remote: Total 1766 (delta 1036), reused 1766 (delta 1036)
Receiving objects: 100% (1766/1766), 284.76 KiB | 141 KiB/s, done.
Resolving deltas: 100% (1036/1036), done.
$ cd libquvi-scripts/

リポジトリの branch を確認。現在のブランチは master。このリポジトリの場合、next ブランチが最新版らしい。

$ git branch -a -v
* master                67ea69d Bump version to 0.4.7
  remotes/origin/HEAD   -> origin/master
  remotes/origin/maint  67ea69d Bump version to 0.4.7
  remotes/origin/master 67ea69d Bump version to 0.4.7
  remotes/origin/next   ee9b7fd tests: format/default: Add lego.json

自分用のブランチを作成し、ブランチの開始状態を origin/next と同じものにする。

$ git branch my_next origin/next
Branch my_next set up to track remote branch next from origin.
$ git branch -a -v
* master                67ea69d Bump version to 0.4.7
  my_next               ee9b7fd tests: format/default: Add lego.json
  remotes/origin/HEAD   -> origin/master
  remotes/origin/maint  67ea69d Bump version to 0.4.7
  remotes/origin/master 67ea69d Bump version to 0.4.7
  remotes/origin/next   ee9b7fd tests: format/default: Add lego.json

作成したブランチに checkout する。ワーキングコピーのツリーは origin/next と同じものになる。

$ git checkout my_next
Switched to branch 'my_next'
$ git branch -a -v
  master                67ea69d Bump version to 0.4.7
* my_next               ee9b7fd tests: format/default: Add lego.json
  remotes/origin/HEAD   -> origin/master
  remotes/origin/maint  67ea69d Bump version to 0.4.7
  remotes/origin/master 67ea69d Bump version to 0.4.7
  remotes/origin/next   ee9b7fd tests: format/default: Add lego.json

git clone した場合、このようなブランチを作成し、作成したブランチにcheckoutする作業は(master に対する作業は)自動的に行われる。

適当に編集。

$ vim share/lua/website/xvideos.lua

commit 前にユーザ名とメールアドレスを変更して、commit。

$ git config user.name "AYANOKOUZI, Ryuunosuke"
$ git config user.email "i38w7i3@yahoo.co.jp"
$ git commit -a -m "****************************************"
[my_next 137e398] ****************************************
 1 files changed, 22 insertions(+), 2 deletions(-)

origin/next からのパッチを時系列順に作成する。今回はcommitが1回なので作成されるpatchは1つ。

$ git format-patch origin/next
0001-***************************************.patch

リファレンス

  1. git-format-patch(1)
  2. git-branch(1)
  3. git-checkout(1)

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2010-06-22T11:42:40+09:00
  2. Modified: 2010-06-22T11:42:40+09:00
  3. Generated: 2017-04-16T23:09:24+09:00