FreeBSD 8.1 で Git サーバーを構築する手順
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の問題も非常に煩わしいです。.
関連
-
Unixのdotコマンドの説明
-
ベアデバイスとは何ですか?オラクル学習Q&A20例
-
Unixとは何か、なぜそんなに重要なのか?
-
FreeBSD 9.3が正式にリリースされ、公式ダウンロードアドレスが公開されました。
-
gnu bashシェルプログラミングのbashプログラミング共通の構文は、特殊な変数が画像に整理された
-
デュアルハードドライブで起動しない場合の Freebsd の解決策
-
FreeBSDのIPアドレス、ゲートウェイ、DNSの設定方法
-
FreeBSDにBugzillaをインストールするにはどうしたらいいですか?
-
オープンソースのオペレーティングシステムUnix。SunOS 4.1.1ハンズオン体験記
-
Unix系ディレクトリ操作コマンド概要
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
FreeBSDにハードディスクを追加する方法?FreeBSDにハードディスクを追加する方法
-
Unixファイルシステムおよびpwdコマンドの実装詳細
-
FreeBSD システムへのフォントのインストール: ステップバイステップの手順
-
見落とされがちな5つのUnixコマンド
-
freebsdでのネットワーク再起動に関連するコマンドの解析
-
freebsd 時間設定サブセクション詳細
-
UNIXでのユーザーアカウントの作成・削除・管理
-
FreeBSD 上で Mac のファイルとタイムマシンのバックアップサービスを構築する。
-
AIXでのRootvgイメージ作成、キャンセル、ハードディスク交換について
-
freebsdのパーティショニングに関する知識まとめ