脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

Gitメモ

大昔に書いたgitのメモ

Install Git

環境設定
vi ~/.gitconfig
[user]
  name = nouziru          # username
  email = foo@bar.com # mail address
[core]
  editor = vim           # gitで利用するeditorの指定

$ git config --list            # 現在の設定の表示

clone repository

clone other brach
$ git branch -a  # (リモート上の全てのブランチを表示)
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/test
  remotes/origin/master
  
### CUIから作成する場合
# 1. 今いるブランチの状態がbaseとする場合
$ git branch [つけたいbranch名]
$ git branch
   master
 * develop

# 2. 現在の HEAD (デフォルト)以外の場所から始まるブランチを作成するには
$ git branch new test           # "test" ブランチのHEADから開始するブランチ "new" を作成
$ git branch new v1.2.3     # タグ v1.2.3 から開始するブランチ "new" を作成
$ git branch new HEAD^     # 最新のコミットの1つ前の位置から分岐するブランチを作成
$ git branch new HEAD^^   # 最新のコミットの2つ前の位置から分岐するブランチを作成
$ git branch new test~10     # ブランチ "test" の10個前の位置から分岐するブランチを作成

### 既にGUIでdevelopブランチを作成している場合
$ git checkout -b develop remotes/origin/develop
$ git branch
   master
 * develop

Merge

リポジトリ内の場合
### masterからmerge用(確認用)ブランチを作成
git branch merge master
 
### merge処理(確認)
git checkout merge # merge(受け入れ側)ブランチに移動
git merge --no-ff dev #merge(差出側)ブランチを指定してmerge
git push http://github.com/xxxxxxxxx/xxxxxxx.git merge:merge
  
### merge(リリース)
git checkout master
git merge --no-ff merge
git push http://github.com/xxxxxxxxx/xxxxxxx.git merge:merge
Forkしてきた場合
###Fork元の最新ver.のコードからremoteブランチを作成する
git remote add fork_master http://github.com/xxx/xxx.git
  
#ブランチ確認
git branch -a
  develop
* release
  remotes/fork_master/master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  
# remotes/fork_master/masterをbaseにrelease用ブランチに作成
git checkout -b release remotes/fork_master/master
  
### 開発してきたブランチをmerge
git checkout release
git merge --no-ff remotes/origin/develop # merge(差出側)ブランチを指定してmerge
git push http://github.com/xxx/xxx.git merge:merge

### merge(リリース)
git checkout master
git merge --no-ff merge
git push http://github.com/xxx/xxx.git master:master
  
### このままではWEB上で表示されて、かつローカルにもブランチはあるが、remoteにはない(remotes/origin/****がない)という状態になるはずなので以下を実行
# pull(fetch + merge)してもよい
git remote -v
git fetch origin