CentOS7でGitサーバーを構築し、Gitを使用する方法をまとめています。
Gitは専門用語が多く覚えるのに時間がかかるかもしれませんが、知っておくと便利かもしれませんね(・ω・)ノ
今回は簡単に以下の構成を想定して作成する。
CentOS7(リモートリポジトリ) | /var/example.git |
---|---|
Mac(ローカルリポジトリ) | /Users/mac/git/example |
また、例としてmasterブランチで作業を行っている。
最新版のGitインストール
yumでインストール
Gitはyumで簡単にインストールできる。
yum install git
git --version
> git version 1.8.3.1
yumでいれるとバージョンが少し古いため、最新版のGitをソースからコンパイル・インストールする。
最新のバージョンはGitHubで確認できる。
yumでインストールしたGitをアンインストール
yum remove git
必要なパッケージをインストール
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
ソースからコンパイルするため、その他に必要なパッケージをインストール
yum install make gcc autoconf
インストールしたいバージョンをダウンロード
今回は「v2.15.1」をインストール
wget https://github.com/git/git/archive/v2.15.1.tar.gz
#wgetがなければ、「yum -y install wget」でインストール
ダウンロードが完了したら解凍
tar -zxf v2.15.1.tar.gz
コンパイル・インストール
prefixを指定し、「/usr」へインストール
cd git-2.15.1
make configure
./configure --prefix=/usr
make all
make install
git --version # バージョン確認
> git version 2.15.1
Gitのインストールは完了したので、ドキュメントをインストール
ドキュメント類が不要であれば、初期設定へ
yum install asciidoc xmlto
yum install --enablerepo=epel docbook2X docbook-utils
このままではコンパイル時にエラーが出てしまうため、リンクを設定
ln -s /bin/db2x_docbook2texi /bin/docbook2x-texi
リンクを作成したらドキュメントをコンパイル
make doc info
make all doc info
make install install-doc install-html install-info
man git # ヘルプを確認
Git専用のユーザー作成
リモートリポジトリへSSHを使用して接続する場合、Git関連以外の権限を与えたくないので専用のユーザーを作成
useradd -s /usr/bin/git-shell gituser
リポジトリ作成
リモートリポジトリを任意の場所(今回は「/var/example.git」ディレクトリ)へ追加
mkdir /var/example.git
chmod 755 /var/example.git
cd /var/example.git
git init --bare
Initialized empty Git repository in /var/example.git/
以上で、リモートリポジトリの準備は完了
Gitインストール
インストールされているGitのバージョンを確認
git --version
git version 2.15.1 (Apple Git-101)
初期設定
ユーザー情報を設定
git config --global user.name "Hoge Fuge"
git config --global user.email "HogeFuge@example.com"
設定したユーザー情報を確認
git config --global -l
リポジトリのクローン
Git管理用のフォルダを作成し、リモートリポジトリをクローン
mkdir ~/git
cd ~/git
git clone ssh://gituser@example.com:/var/example.git #sshを使用してクローン
除外ファイルの設定
Git管理の対象から外したいファイルを設定
「.gitignore」ファイルを設置することでGit管理から指定したファイルを外せる
cd example
touch .gitignore #特に意味はなく、下記のviコマンドで作成しても問題ない
vi .gitignore
# 「.DS_Store」や「._.DS_Store」を除外
*.DS_Store
管理対象のステージング
ファイルを追加してGit管理の対象に追加
echo hogehoge > test.txt
git status #状態を確認
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
test.txt
git add .gitignore test.txt #インデックスへ登録
git status #状態を確認
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: .gitignore
new file: test.txt
間違ってGit管理の対象に追加してしまった場合、取り消す
git reset HEAD test.txt
git status #状態を確認
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt
ファイルのコミット
インデックスへ登録したら、ローカルリポジトリへ反映
git commit -m "first commit"
[master 1234567] first commit
1 file changed, 1 insertion(+)
create mode 100644 .gitignore
create mode 100644 test.txt
間違ってコミットしてしまった場合、取り消す
git rev-parse HEAD #HEADのハッシュ値の確認
40eb17c4ed8d8d0060a934b6aba89e35f605d771
git reset --hard コミットのハッシュ値 #コミットの取り消し
# オプション:
# --hard 取り消しと同時にワークツリーの内容も書き換える
# --soft 取り消しのみ行いワークツリーの内容は書き換得ない
# HEADˆ 直前のコミットを指す。コミットのハッシュ値の代わりに使用可能
# 打ち消し
# コミット時点の状態にまで戻しコミットを行う(逆向きにコミットを行う)ことで履歴を残すことができる
git revert コミットのハッシュ値
最新情報の取得
リモートリポジトリから最新の変更履歴情報を取得
git fetch origin master
git diff master origin/master #差分を確認
最新情報の反映
最新情報を取得したので、実際にワークツリーへ反映
git merge origin/master
変更情報をリモートリポジトリへ反映
問題がなければリモートリポジトリへ変更情報を反映
git push origin master
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456'"\(
admin
123456
admin
123456
admin
123456鎈'"\(
admin
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1837430938')))>'0
admin
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1237223118')))
admin
123456/**/and/**/cast(md5('1060971945')as/**/int)>0
admin
123456'and(select'1'from/**/cast(md5(1576092408)as/**/int))>'0
admin
extractvalue(1,concat(char(126),md5(1015880775)))
admin
123456"and/**/extractvalue(1,concat(char(126),md5(1574792343)))and"
admin
123456'and/**/extractvalue(1,concat(char(126),md5(1973977255)))and'
admin
123456
admin
123456
admin
123456
admin"and"w"="q
123456
admin
123456
admin"and"h"="h
123456
admin
123456
admin'and'x'='v
123456
admin
123456
admin'and'z'='z
123456
admin
123456
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('a',2)='a
admin
123456
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('t',0)='t
admin
123456
admin
123456
admin
123456/**/and/**/0=DBMS_PIPE.RECEIVE_MESSAGE('b',2)
admin
123456
admin
123456
admin
123456/**/and/**/2=DBMS_PIPE.RECEIVE_MESSAGE('m',0)
admin
123456
admin
123456
admin
123456'and(select+1)>0waitfor/**/delay'0:0:2
admin
123456
admin
123456
expr 921607132 + 946014153
123456
admin
123456'and(select+1)>0waitfor/**/delay'0:0:0
admin
123456
admin
123456
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/
admin
123456
admin
123456
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
admin
123456
admin
123456
admin
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0
admin
123456
admin
123456
admin
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
admin
123456
admin
expr 969455713 + 871289191
admin
123456
admin
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/
admin
123456
admin
123456&set /A 810711809+841356276
admin
123456
admin
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
admin
123456
admin
123456$(expr 966608522 + 938458644)
<%- 813805280+886445001 %>
123456
admin
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="
admin
123456
admin
123456|expr 840233717 + 956268605
admin
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
admin
123456
${(940927047+822097083)?c}
123456
admin
123456
expr 817660959 + 837037229
admin
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='
admin
123456
admin
123456
${983557673+947084960}
123456
admin
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
admin
123456
admin
${833249998+987974150}
/*1*/{{802329338+948337846}}
123456
admin
123456
admin
(select*from(select+sleep(2)union/**/select+1)a)
admin
123456
admin
123456
admin
<%- 802092076+922124399 %>
admin
123456
admin
(select*from(select+sleep(0)union/**/select+1)a)
admin
123456
admin
123456
admin
'-var_dump(md5(299104173))-'
admin
#set($c=818592499+877198324)${c}$c
admin
123456
admin
123456
admin
123456
admin
123456
admin
${@var_dump(md5(157270307))};
admin
${(934218954+837553503)?c}
admin
123456
admin
123456
admin
123456
${898252188+829036109}
123456
admin
123456
admin
${999443710+866633437}
admin
123456
admin'"\(
123456
admin
123456
admin
/*1*/{{910908698+819685361}}
admin
123456
admin鎈'"\(
123456
admin
123456
admin
123456"and"z"="t
admin
123456
admin
123456
admin
123456
admin
123456"and"b"="b
admin
123456
admin
123456
admin
123456
admin
123456'and'd'='s
admin
123456
admin
123456
admin
123456
admin
123456'and'd'='d
admin
123456
admin
123456
admin
123456
admin
123456/**/and+0=9
admin
123456
'-var_dump(md5(308070101))-'
123456
admin
123456
admin
123456/**/and+1=1
${@var_dump(md5(282818703))};
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin"and"a"="q
123456
admin"and"w"="w
123456
admin'and'c'='d
123456
admin'and'd'='d
123456
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('y',2)='y
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('c',0)='c
admin
123456/**/and/**/2=DBMS_PIPE.RECEIVE_MESSAGE('w',2)
admin
123456/**/and/**/3=DBMS_PIPE.RECEIVE_MESSAGE('f',0)
admin
123456'and(select+1)>0waitfor/**/delay'0:0:2
admin
123456'and(select+1)>0waitfor/**/delay'0:0:0
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
admin'"\(
123456
admin
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0
admin鎈'"\(
123456
admin
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
admin
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/
admin
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
admin
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="
admin
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
admin
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='
admin
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
admin
(select*from(select+sleep(2)union/**/select+1)a)
admin
123456'"\(
admin
(select*from(select+sleep(0)union/**/select+1)a)
admin
123456鎈'"\(
admin
123456"and"u"="r
admin
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1143736868')))>'0
admin
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1682752791')))
admin
123456"and"o"="o
admin
123456/**/and/**/cast(md5('1738802346')as/**/int)>0
admin
123456'and's'='g
admin
123456'and(select'1'from/**/cast(md5(1781350731)as/**/int))>'0
admin
123456'and'l'='l
admin
extractvalue(1,concat(char(126),md5(1445985958)))
admin
123456/**/and+1=5
admin
123456"and/**/extractvalue(1,concat(char(126),md5(1248631772)))and"
admin
123456/**/and+2=2
admin
123456'and/**/extractvalue(1,concat(char(126),md5(1017032191)))and'
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
expr 813173697 + 847958482
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
expr 815457966 + 819449942
admin
123456
admin
123456
admin
123456
admin
123456&set /A 829823319+849736669
admin
123456
admin
123456
<%- 887256800+809648484 %>
123456
admin
123456$(expr 805969414 + 914842514)
admin
123456
admin
123456
admin
123456|expr 928453669 + 802751131
admin
123456
admin
123456
${(989275266+970112977)?c}
123456
admin
123456
expr 994404958 + 955327822
admin
123456
admin
123456
${825044683+915535085}
123456
admin
123456
admin
123456
admin
123456
/*1*/{{939141450+915268067}}
123456
admin
123456
admin
123456
admin
123456
admin
<%- 829561417+848511440 %>
admin
123456
admin
123456
admin
123456
admin
#set($c=938896046+925248146)${c}$c
admin
123456
admin
123456
admin
123456
admin
${(874378888+906952087)?c}
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
${820090617+957616961}
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
/*1*/{{957851217+921299504}}
admin
123456
admin
123456
admin
123456
${802641440+816329077}
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
${858318872+999648905}
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
'-var_dump(md5(258222890))-'
123456
admin
123456
admin
123456
admin
123456
admin
123456
${@var_dump(md5(813558012))};
123456
admin
123456
admin
123456
admin
123456
admin
'-var_dump(md5(302817105))-'
admin
123456
admin
123456
admin
123456
admin
${@var_dump(md5(323984568))};
admin
123456
admin
123456
admin
123456