参考サイト

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

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

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

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

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 [email protected]:xxxx/foo.git

SVNとの違い

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

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

push

ブランチ指定してPUSHgit push --set-upstream origin testing
実際には実行しない(dry-run)git push -n

チェックアウトなど

ファイルの変更サイクル

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

ブランチ運用

masterブランチを統合ブランチとして、リリース向けに運用する。トピックブランチは機能追加、バグ修正のタイミングで作成され、リリース前に統合ブランチにマージされる。 branch -aでリモート含むブランチ状況を確認しながら作業する。

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!

apache

git-http-backendがソースコンパイルだとないため、下記はバイナリーインストールのときのみ可能。

http://www.proton.jp/main/programming/git/smart-http.html

SetEnv GIT_PROJECT_ROOT /usr/local/git
SetEnv GIT_HTTP_EXPORT_ALL
 
ScriptAlias /git/ /usr/local/libexec/git-core/git-http-backend/
 
<locationMatch "/git">
   AuthType Basic
   AuthName "Git Area"
   AuthUserFile /usr/local/apache2/htdocs/.htpasswd
   require valid-user
   Order allow,deny
   Allow from all
</locationMatch>

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