-SVNに代わる構成管理。ローカルリポジトリが作成できその中でブランチを切ったりコミットできたりする点がSVNとの違い

*参考サイト [#ic89dc18]

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

*コマンド版 gitローカルリポジトリ作成 [#ea6e8add]

-ローカルリポジトリを作る場合。

 git init

-既存のクローンする場合は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/masterとは?

 origin: レポジトリの場所(URL)の別名
 master: ブランチの名前

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

 git config --list

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


-リモートを複数登録できる。

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


*SVNとの違い [#n055d4dc]

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

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

**チェックアウトなど [#nf5acd65]

**ファイルの変更サイクル [#u3f54039]

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


*ブランチ運用 [#d3c4cf5a]

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

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

*マージ [#t98d0533]

**first-forwardマージ [#u38007d6]

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

**マージ [#b3f859c6]

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

**rebase [#v0c83a97]

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

*いろいろためした [#d38dc474]

-最新のときにgit status

 $ git status
 On branch MyBranche
 Your branch is up-to-date with 'origin/NewBranch'.
 nothing to commit, working directory clean

-古いときにgit status。リモートリポジトリに6コミット分あるよ。

 $ 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

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