参考サイト

https://try.github.io/levels/1/challenges/1

コマンド版 gitローカルリポジトリ作成

git init
git clone http://example.com/hoge/git.git [hoge以外の名前を付けたい場合]

イメージ的には以下構成となる。

DIR/hoge/.git →http://example.com/hoge/git.git
DIR/fuga/.git →http://example.com/fuga/git.git
cd xxx
git branch -r
git branch 対象ブランチ
git checkout 対象ブランチ
#一度にやる場合は下記
git checkout -b 対象ブランチ
git remote -v
origin: レポジトリの場所(URL)の別名
master: ブランチの名前

デフォルトの対象はorigin/masterだ。

git config --list

上記コマンドで今どこを示しているかを確認せよ。

git remote add NEW_REMOTE git@bitbucket.org:xxxx/foo.git

SVNとの違い

ローカルリポジトリ、index、リモートリポジトリと構成要素が複雑怪奇。ブランチがSVNより増える傾向がある。

addコミット準備領域であるindexに追加する
commitあくまでローカルリポジトリに対してのコミット。-aオプションをつけないと変更してもコミット対象にはならない
PUSHリモートリポジトリへのコミット。SVNでいうところのコミットと同義
FETCHSVNでいうところのアップデート(ローカルへのマージは行わない?)
PULLSVNでいうところのアップデート(ローカルへのマージまで行うFETCH+MERGE)
cloneチェックアウト。
forkgithubの機能。cloneと似ているが、分散開発用に元の所有者に通知がいく。forkするという行為はオリジナルへの貢献を前提とする。
アップストリーム ブランチローカルに対して上流にあるブランチ。cloneした場合はclone元だが、指定もできる
branch -aリモート含むブランチ一覧の表示
branch -dブランチの削除。すっからかんじゃないと削除不可能

チェックアウトなど

ファイルの変更サイクル

  1. 変更
  2. add(ステージングにファイルが追加)
  3. commit(ここまではローカルリポジトリ)
  4. push(リモートリポジトリにコミット)

ブランチ運用

masterブランチを統合ブランチとして、リリース向けに運用する。トピックブランチは機能追加、バグ修正のタイミングで作成され、リリース前に統合ブランチにマージされる。

git branch testingtestingブランチ追加
git checkout testingtestingブランチに切替

マージ

first-forwardマージ

分岐以降統合ブランチに変更がない場合、統合ブランチのコミット履歴はトピックブランチのコミット履歴とイコールになる。シンプルなので早送りマージと呼ばれる。ただしトピックブランチの履歴は残らないので、たとえfirst-forwardが可能であってもやらないほうがよい。

マージ

通常のマージ。統合とトピックブランチをマージしたというコミットが作成される。

rebase

ブランチの履歴を消してマージ。トピックブランチが小さいものが多く、頻発するのであればこちらの運用が良いかもしれぬ。

いろいろためした

$ git status
On branch MyBranche
Your branch is up-to-date with 'origin/NewBranch'.
nothing to commit, working directory clean
$ git status
On branch development
Your branch is behind 'origin/Develop' by 6 commits, and can be  fast-forwarded.
 (use "git pull" to update your local branch)
nothing to commit, working directory clean

Install

It's easy to install from source! just configure and make and make install!


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS