搭建GIT服務器的文章有很多,多數在管理的時候都使用了gitosis作為管理工具,但是作為一個小團隊(人數少于50人),我覺得完全可以使用公鑰驗證的方式,這樣會簡單不少,下面來看看簡易的搭建方法吧。
服務器版本:ubuntu 16.04
我的搭建過程是參考指導文檔 https://git-scm.com/book/zh/v2/
首先安裝git和ssh等工具
sudo apt-get install git openssh-server openssh-client
初次運行git要做一些基本的信配置
git config --global user.name "John Doe"git config --global user.email johndoe@example.com
這樣服務器的軟件就搞定了,下面我們來做一下配置
下面你可以新建用戶,當然也可以不新建,然后在用戶目錄下新建.ssh文件,在.ssh中新建
authorized_keys的文件,這個文件主要用來保存其他用戶的公鑰
sudo adduser git
su git
cd
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
下面的操作是在其他客戶端電腦上的操作,即生成秘鑰執行ssh-keygen -t rsa會在你的家目錄中.ssh/生成id_rsa.pub(公鑰)和id_rsa(私鑰),將公鑰發送到服務器的/tmp目錄下,最好重命名一下,防止覆蓋了別人的. 如:id_rsa_1.pub
ssh-keygen -t rsa
scp ~/.ssh/id_rsa_1.pub git@gitserver:/tmp/
//下面的操作是服務器的端要做的了,將公鑰內容放到authorized_keys中。
cat /tmp/id_rsa_1.pub >> ~/.ssh/authorized_keys
這樣就可以了,下面你要做的就是初始化倉庫代碼
mkdir git
cd git
mkdir project.git
cd project.git
git init --bare
在初始化代碼的時候要注意,如果你原來的代碼使用repo或者git管理的請先將他們的索引刪掉,不然你上傳的代碼十不全的,可以執行一代碼。
find -name ".git" -o ".repo" -o ".gitignore"|xargs rm -rf
git沒法直接把代碼包拖進來管理,所以初始化倉庫后你要做的是初始化代碼
on John's computercd myprojectgit initgit add .git commit -m 'initial commit'git remote add origin git@gitserver:/path to/git/project.gitgit push origin master
下面你就可以在客戶端操作了,獲取代碼并修改提交
一般第一次使用我們會執行
mkdir projectcd projectgit initgit clone git@192.168.1.158:/home/project/solox_android.git //這里git使我們的git管理員,192.168.1.158使我們git服務器地址,solox_android.git是我們的項目名,這樣我們就拿到代碼了
git checkout -b branch_name //因為我們不想在開發新功能的時候,把我們不成熟的代碼直接放到master分支中,所以暫時在新分支中開發。刪除分支的命令式(git checkout -d branch_name)
修改代碼并提交到服務器中
git pull //一般在開發之前我們要將代碼更新到最新版本git status //查看一下我們提交的文本的狀態,主要看看有哪些我們修改的文件git diff filename //看看我們修改的文件內容,防止誤提交git add //把它們添加到緩存區git commit -m "代碼提交信息" //改動已經提交到了 HEAD,但是還沒到你的遠端倉庫,并且這里加上了你的提交loggit push origin master //提交到遠端倉庫,可以把 master 換成你想要推送的任何分支
如果你誤刪除了本地的某個文件,可以使用git checkout -- //從服務器單獨拿文件
查看提交記錄git log -p -2// -P是顯示提交的內容差異 -2表示先最近的2次git log -p -2 filename //查看這個文件最近兩次的修改記錄
查看差異git diff filename