1. ホーム
  2. オペレーティングシステム
  3. ユニックス/BSD

FreeBSD 8.1 で Git サーバーを構築する手順

2022-01-17 06:38:12

Gitは、Linus TorvaldsがLinuxカーネル開発をより良く管理するために作成した分散型バージョン管理/ソフトウェア構成管理ソフトウェアです。CVSやSubversionなどの一般的なバージョン管理ツールとは異なり、サーバー側のソフトウェアのサポートを必要としない分散リポジトリ方式を採用しており、ソースコードの配布や通信が非常に簡単に行えるようになっています。Gitは非常に高速で、これはLinuxカーネルのような大規模なプロジェクトには重要です。Gitの最も優れた点の一つは、そのマージ・トレース機能です。

1. FreeBSD 8.1 での Git Server のインストール

(1) portsを使ったGitのインストール

cd /usr/ports/devel/gitmake install clean

(2) /etc/rc.conf を変更して、git が boot で起動するようにする。

git_daemon_enable="YES"

(3) 新しいユーザー git の追加

pw useradd git

(4) gitデーモンの有効化

/usr/local/etc/rc.d/git_daemon start

(5) sockstat を使って git が起動していることを確認します。

sockstt -4l | grep 9418root git-daemon 37064 3 tcp4 192.168.21.248:9418 *:*

2. 新しいGitプロジェクトをインポートする方法

(1) まず、以下のコマンドで名前やメールアドレスなどのgitの自己紹介をします。

git config-global user.name "Andrew.yu"git config-global user.email " [email protected]"

(2) 自分のディレクトリ /home/andrewyu/test を Git のプロジェクトリポジトリにコミットします。

cd /home/andrewy/test/git initgit add .git commit

(3) この時点で、私たちの /home/andrewy/test ディレクトリを見ることができます。

[root@research_jail ~/project]# ls -lsarttotal 82 -rw-r--r-- 1 root wheel 18 Apr 7 07:42 30 -rw-r--r-- 1 root wheel 0 Apr 7 07:42 20 -rw-r--r-- 1 root wheel 0 Apr 7 07:42 12 drwxr-xr-x 8 root wheel 512 Apr 7 07:42 .git2 drwxr-xr-x 3 root wheel 512 Apr 7 07:43 .2 drwxr-xr-x 4 root wheel 512 Apr 7 07:43 .

Git initコマンドを使えば、このプロジェクトをカレント・ディレクトリで初期化することができます。シェルは、プロジェクトのこれまでの進捗に関する情報を保持するために.git隠しディレクトリが作成されたことを示すプロンプトを返します。

3. Gitのコマンドライン操作

ソースコードの表示とスナップショットの違いについて

git diff

スナップショットとリポジトリの違いを見る

git diff --cached

全体の変更情報を見るには

git status

git に hello.py を変更したので確認してくださいと伝えてください(GIT では add を使って変更と新規のファイルの両方を登録します)。

git add hello.py

gitにコミットする

git commit

ログを見る

git log

コミットメッセージだけがロールバックされますが、インデックスファイル(一時保存領域です)と変更されたコードはそのまま残っています

git reset --soft HEAD

コミットメッセージをロールバックするだけでなく、コードも修正前のバージョンに戻ります。

git reset --hard HEAD

コミットとインデックスファイルの情報をロールバックし、コードの変更を保持する

git reset --mixed HEAD

デフォルトはfixedと同等です

git reset HEAD

インデックスファイルから登録ファイルを削除する

git reset -- a.py

ブランチの作成-a ブランチ

git branch branch-a

branch-aブランチに切り替える

git checkout branch-a

ブランチをトランクにマージする (衝突がある場合は、衝突の場所を示すので、それを変更して再度マージしてください)

git merge branch-a

ブランチの内容をトランクにマージした後、ブランチaを削除する

git branch -d branch-a

ブランチの内容がトランクにマージされているかどうかに関わらず、ブランチを削除する。

git branch -D branch-a

hello-git を hello-git2 にクローンする。

git clone /home/flynewton/hello-git hello-git2cd hello-git2

==========================================================

(1) hello-git2内のソースコードを修正し、コミットする。

(2) branch-bを作成し、そのブランチのソースコードを修正してコミットする。

(3) hello-gitフォルダに移動します。

==========================================================

hello-git2 の trunk コードをローカルの新しいブランチ hello2-works にする。

git fetch /home/flynewton/hello-git2 master:hello2-works

ローカルマスターとhello2-worksブランチの差分を見る

git -p master..hello2-works

hello-git2 の trunk をローカルにマージする。

git pull /home/flynewton/hello-git2 master

hello-git2 のブランチを master にマージする。

git pull /home/flynewton/hello-git2 branch-b

弊社の開発環境では、バージョン管理には主にSVNを使用しており、Gitは現在テスト段階ですが、プロジェクトにサブディレクトリを追加するのには向いていないと感じており、さらにブランチをマージする際のMergeの問題も非常に煩わしいです。.