-SVNに代わる構成管理。ローカルリポジトリが作成できその中でブランチを切ったりコミットできたりする点がSVNとの違い *参考サイト [#ic89dc18] https://try.github.io/levels/1/challenges/1 *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 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