Git

Contents

環境





Gitについて

公式ページ


用語


作業ディレクトリ


作業ディレクトリとはリポジトリをチェックアウトし、ファイル実体を配置して編集作業などを行うディレクトリのことである。
Gitはファイルを管理する中央のリポジトリ以外に、開発者がローカルにそのリポジトリのコピー(クローン)のリポジトリを持つ。
作業ディレクトリは開発者用のリポジトリに存在し、そこで作業ディレクトリからローカルリポジトリに反映、
ローカルリポジトリから中央リポジトリに反映という手順が取られる。


Gitの構築


Gitによる通信は複数のプロトコルから選択可能である。
参考:http://git-scm.com/book/ja/Git-サーバー




サーバー(git-daemon)のインストール



クライアント(git)のインストール


ソースコードからインストール


  1. 関連パッケージをインストールする
    1. コンパイラをインストールする
      yum install gcc
  2. ダウンロードサイト:https://code.google.com/p/git-core/downloads/listからアーカイブのURLを取得する
  3. ダウンロードする
    wget https://git-core.googlecode.com/files/git-1.9.0.tar.gz
  4. アーカイブファイルを展開する
    tar xzfv git-*.tar.gz
  5. ソースコードディレクトリへ移動する
    cd git-*
  6. コンパイル最適化設定を行う
    export CFLAGS="-O3 -m64"
  7. configure設定を行う
    ./configure --prefix=/usr/local/git-1.9.0
    使用できる設定内容は以下のとおり

    [root@ip-10-255-246-27 git-1.9.0]# ./configure --help
    `configure' configures git 1.9.0 to adapt to many kinds of systems.
    
    Usage: ./configure [OPTION]... [VAR=VALUE]...
    
    To assign environment variables (e.g., CC, CFLAGS...), specify them as
    VAR=VALUE.  See below for descriptions of some of the useful variables.
    
    Defaults for the options are specified in brackets.
    
    Configuration:
      -h, --help              display this help and exit
          --help=short        display options specific to this package
          --help=recursive    display the short help of all the included packages
      -V, --version           display version information and exit
      -q, --quiet, --silent   do not print `checking ...' messages
          --cache-file=FILE   cache test results in FILE [disabled]
      -C, --config-cache      alias for `--cache-file=config.cache'
      -n, --no-create         do not create output files
          --srcdir=DIR        find the sources in DIR [configure dir or `..']
    
    Installation directories:
      --prefix=PREFIX         install architecture-independent files in PREFIX
                              [/usr/local]
      --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                              [PREFIX]
    
    By default, `make install' will install all the files in
    `/usr/local/bin', `/usr/local/lib' etc.  You can specify
    an installation prefix other than `/usr/local' using `--prefix',
    for instance `--prefix=$HOME'.
    
    For better control, use the options below.
    
    Fine tuning of the installation directories:
      --bindir=DIR            user executables [EPREFIX/bin]
      --sbindir=DIR           system admin executables [EPREFIX/sbin]
      --libexecdir=DIR        program executables [EPREFIX/libexec]
      --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
      --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
      --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
      --libdir=DIR            object code libraries [EPREFIX/lib]
      --includedir=DIR        C header files [PREFIX/include]
      --oldincludedir=DIR     C header files for non-gcc [/usr/include]
      --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
      --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
      --infodir=DIR           info documentation [DATAROOTDIR/info]
      --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
      --mandir=DIR            man documentation [DATAROOTDIR/man]
      --docdir=DIR            documentation root [DATAROOTDIR/doc/git]
      --htmldir=DIR           html documentation [DOCDIR]
      --dvidir=DIR            dvi documentation [DOCDIR]
      --pdfdir=DIR            pdf documentation [DOCDIR]
      --psdir=DIR             ps documentation [DOCDIR]
    
    Optional Features:
      --disable-option-checking  ignore unrecognized --enable/--with options
      --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
      --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
      --enable-pthreads=FLAGS FLAGS is the value to pass to the compiler to enable
                              POSIX Threads. The default if FLAGS is not specified
                              is to try first -pthread and then -lpthread.
                              --disable-pthreads will disable threading.
      --enable-jsmin=PATH     PATH is the name of a JavaScript minifier or the
                              absolute path to one.
      --enable-cssmin=PATH    PATH is the name of a CSS minifier or the absolute
                              path to one.
    
    Optional Packages:
      --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
      --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
      --with-sane-tool-path=DIR-1[:DIR-2...:DIR-n]
                              Directories to prepend to PATH in build system and
                              generated scripts
      --with-lib=ARG          ARG specifies alternative name for lib directory
      --with-openssl          use OpenSSL library (default is YES)
                              ARG can be prefix for openssl library and headers
      --with-libpcre          support Perl-compatible regexes (default is NO)
                              ARG can be also prefix for libpcre library and
                              headers
      --with-curl             support http(s):// transports (default is YES)
                              ARG can be also prefix for curl library and headers
      --with-expat            support git-push using http:// and https://
                              transports via WebDAV (default is YES)
                              ARG can be also prefix for expat library and headers
      --without-iconv         if your architecture doesn't properly support iconv
      --with-iconv=PATH       PATH is prefix for libiconv library and headers
                              used only if you need linking with libiconv
      --with-gitconfig=VALUE  Use VALUE instead of /etc/gitconfig as the global
                              git configuration file. If VALUE is not fully
                              qualified it will be interpreted as a path relative
                              to the computed prefix at runtime.
      --with-gitattributes=VALUE
                              Use VALUE instead of /etc/gitattributes as the
                              global git attributes file. If VALUE is not fully
                              qualified it will be interpreted as a path relative
                              to the computed prefix at runtime.
      --with-pager=VALUE      Use VALUE as the fall-back pager instead of 'less'.
                              This is used by things like 'git log' when the user
                              does not specify a pager to use through alternate
                              methods. eg: /usr/bin/pager
      --with-editor=VALUE     Use VALUE as the fall-back editor instead of 'vi'.
                              This is used by things like 'git commit' when the
                              user does not specify a preferred editor through
                              other methods. eg: /usr/bin/editor
      --with-shell=PATH       provide PATH to shell
      --with-perl=PATH        provide PATH to perl
      --with-python=PATH      provide PATH to python
      --with-zlib=PATH        provide PATH to zlib
      --with-tcltk            use Tcl/Tk GUI (default is YES)
                              ARG is the full path to the Tcl/Tk interpreter.
                              Bare --with-tcltk will make the GUI part only if
                              Tcl/Tk interpreter will be found in a system.
    
    Some influential environment variables:
      CC          C compiler command
      CFLAGS      C compiler flags
      LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
                  nonstandard directory <lib dir>
      LIBS        libraries to pass to the linker, e.g. -l<library>
      CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
                  you have headers in a nonstandard directory <include dir>
      CPP         C preprocessor
    
    Use these variables to override the choices made by `configure' or to help
    it to find libraries and programs with nonstandard names/locations.
    
    Report bugs to <git@vger.kernel.org>.
  8. エラーが出なかった場合、インストールを行う
    make 2>&1 | tee make.log.`date +"%Y%m%d"`
    make install 2>&1 | tee make_install.log.`date +"%Y%m%d"`
  9. インストールに使用したパッケージを削除する
    cd ../
    rm -rf git-*
  10. インストールディレクトリへのシンボリックリンクを作成する
    ln -s /usr/local/git-1.9.0 /usr/local/git
    これによって、複数のバージョンを同居させ、リンクを切り替えることで、バージョン変更が可能
  11. 共通した環境とするために環境変数を設定する
    export GIT_HOME=/usr/local/git
  12. ツール類にパスを通す
    export PATH=$GIT_HOME/bin:$PATH
  13. 環境変数を再起動後も有効にする
    vi /etc/bashrc
    # 以下を追記する
    export GIT_HOME=/usr/local/git
    export PATH=$GIT_HOME/bin:$PATH
  14. リポジトリ管理用のディレクトリを作成する
    mkdir -p /usr/local/data/git-repository

パッケージからインストール


yum install git -y

GitWebのインストール


GitWebはWEBブラウザからGitリポジトリを参照できるツールである

Gitosisのインストール


Gitosisは複数のリポジトリの管理ツールである

ツール


参考:https://www.atlassian.com/ja/git/tutorial/git-basics


git


init


リポジトリを新規作成するときに使用するオプション



clone


リポジトリのコピーをローカルリポジトリとして作成する



URLはSSHの場合、次のように指定する
ssh://<ユーザ名>@<ホスト名>/<絶対パス>
パスワードが必要な場合はこの後問われる。キーペアによる認証を行う場合は、キーファイルを指定できないので、~/.sshにて設定しておく。











add


リポジトリにファイルを追加する


bisect


    Find by binary search the change that introduced a bug

branch


    List, create, or delete branches

checkout


ブランチの切り替えを行う。












commit


ローカルリポジトリにコミットする




diff


Show changes between commits, commit and working tree, etc

fetch


     Download objects and refs from another repository

grep


Print lines matching a pattern

log


Show commit logs

merge


     Join two or more development histories together

mv


 Move or rename a file, a directory, or a symlink

pull


ローカルリポジトリを最新状態に更新する

push


Update remote refs along with associated objects

rebase


    Forward-port local commits to the updated upstream head

reset


     Reset current HEAD to the specified state

rm


 Remove files from the working tree and from the index

show


Show various types of objects

status


    Show the working tree status

tag


Create, list, delete or verify a tag object signed with GPG


git-cvsserver


gitk


git-receive-pack


git-shell


git-upload-archive


git-upload-pack







Gitの運用


リポジトリの作成


Notice: Trying to get property 'queue' of non-object in /usr/local/wordpress/wp-includes/script-loader.php on line 2876

Warning: Invalid argument supplied for foreach() in /usr/local/wordpress/wp-includes/script-loader.php on line 2876