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

*参考サイト [#ic89dc18]

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


*SVNとの違い [#n055d4dc]

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

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

*ブランチ運用 [#d3c4cf5a]

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


*マージ [#t98d0533]

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

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

**マージ [#b3f859c6]

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

**rebase [#v0c83a97]

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

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

-最新のときにgit status

 $ git status
 On branch GrandOpen
 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