前言
我們可以GitHub發布一些開源代碼的公共倉庫,但對于私密倉庫就需要收費了。公司內部通常會搭建自己的Git服務器,我也通過在自己的服務器上搭建練習一下。
開始前先說一下服務器信息,這里是阿里云的CentOS 6.5 64位操作系統。
一 確認服務器是否安裝Git
1
2
|
[root@iZ25r8k6ifuZ git] # rpm -qa git git-1.7.1-3.el6_4.1.x86_64 |
這里也已經安裝過了,如果沒有安裝可以用yum install git 安裝。
二 創建git用戶
這里你可以選擇新建一個用戶來測試,也可以直接使用你的root進行以下操作。筆者也是看著資料一步一步來的,這里創建一個新用戶teslachen進行操作。
1
2
|
[root@iZ25r8k6ifuZ ~] # useradd tesla [root@iZ25r8k6ifuZ ~] # passwd tesla |
更改用戶 tesla 的密碼 。
新的 密碼:
無效的密碼: 它沒有包含足夠的不同字符
無效的密碼: 過于簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
注1:創建用戶權限不夠請加上sudo;
注2:設置用戶密碼太過簡單的話會有提示,但依舊可以設置成功。
三 生成ssh公鑰
許多 Git 服務器都使用 SSH 公鑰進行認證。 為了向 Git 服務器提供 SSH 公鑰,如果某系統用戶尚未擁有密鑰,必須事先為其生成一份。
linux 可以在本機運行ssh-keygen -t rsa生成密鑰,把.pub文件拷到服務器上。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@iZ25r8k6ifuZ ~] # su tesla [tesla@iZ25r8k6ifuZ root]$ cd ~ [tesla@iZ25r8k6ifuZ ~]$ mkdir . ssh [tesla@iZ25r8k6ifuZ ~]$ ssh -keygen -t rsa Generating public /private rsa key pair. Enter file in which to save the key ( /home/tesla/ . ssh /id_rsa ): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/tesla/ . ssh /id_rsa . Your public key has been saved in /home/tesla/ . ssh /id_rsa .pub. The key fingerprint is: 13:bf:75:ba:67:7f:0e:a0:47:7a:fe:25: bc :81:85:c3 tesla@iZ25r8k6ifuZ The key's randomart image is: +--[ RSA 2048]----+ | | | | | . | | o . . | | S . E o | | . O | | + = = .| | + .o.| | o+oo+| +-----------------+ [tesla@iZ25r8k6ifuZ ~]$ cd . ssh / [tesla@iZ25r8k6ifuZ . ssh ]$ cat id_rsa.pub >> ~/. ssh /authorized_keys exit |
四 添加tesla到sudoers文件
tesla用戶現在對一些文件夾沒有操作權限,修改/etc/sudoers文件來改變他的權限。最高管理員用戶用下面命令打開。
1
|
[root@iZ25r8k6ifuZ ~] # visudo |
然后我們在vim中找到下面這行
1
|
root ALL=(ALL) ALL |
按i鍵開始插入,回車一下在下面一行加上
1
|
tesla ALL=(ALL) ALL |
接著按下esc鍵,輸入 :wq ,回車保存退出
五 創建Git代碼倉庫
1
2
3
4
5
6
7
8
|
[root@iZ25r8k6ifuZ ~] # mkdir /teslaRepo [root@iZ25r8k6ifuZ ~] # cd /teslaRepo/ [root@iZ25r8k6ifuZ teslaRepo] # sudo mkdir teslaProject.git [root@iZ25r8k6ifuZ teslaRepo] # chown tesla:tesla /teslaRepo/ [root@iZ25r8k6ifuZ teslaRepo] # chown -R tesla:git /teslaRepo/ [root@iZ25r8k6ifuZ teslaRepo] # cd teslaProject.git/ [root@iZ25r8k6ifuZ teslaProject.git] # sudo git --bare init Initialized empty Git repository in /teslaRepo/teslaProject .git/ |
這樣一個叫teslaProject得Git倉庫就創建好了
六 本地測試使用
你可以直接在服務器上進行本地測試,也可以直接用你的電腦來測試。下面我是使用自己的MBP來進行的測試。
1
2
3
4
5
6
|
localhost:~ okay$ cd Desktop /git/ localhost:git okay$ mkdir teslaRepo localhost:git okay$ cd teslaRepo/ localhost:teslaRepo okay$ git init Initialized empty Git repository in /Users/okay/Desktop/git/teslaRepo/ .git/ localhost:teslaRepo okay$ git remote add origin tesla@123.57.159.74: /teslaRepo/teslaProject .git |
上面的命令在本地創建了一個文件夾并添加了服務器上的遠程倉庫
1
2
3
4
5
6
|
localhost:teslaRepo okay$ touch a.txt localhost:teslaRepo okay$ git add a.txt localhost:teslaRepo okay$ git commit -m "init commit" [master (root-commit) d14cd3b] init commit 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 a.txt |
上面的命令在本地創建了一個a.txt并在本地提交了一次
1
2
3
4
5
6
7
|
localhost:teslaRepo okay$ git push origin master tesla@123.57.159.74's password: Counting objects: 3, done. Writing objects: 100% (3/3), 202 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To tesla@123.57.159.74:/teslaRepo/teslaProject.git * [new branch] master -> master |
上面的命令將本地代碼push到遠程服務器上去了,下面我們在本地clone一次看下是否正確
七 本地clone
1
2
3
4
5
6
7
8
9
|
localhost:git okay$ mkdir ttt localhost:git okay$ cd ttt localhost:ttt okay$ git clone tesla@123.57.159.74:/teslaRepo/teslaProject.git Cloning into 'teslaProject'... tesla@123.57.159.74's password: remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3/3), done. Checking connectivity... done. |
clone完成,讓我們看一下文件夾目錄
之前push到服務器上的a.txt文件已經被clone下來
------------分割線-------------
1. 查看系統用戶組
-d:指定字段的分隔符,默認的字段分隔符為“TAB”;
-f:顯示指定字段的內容;
1
|
cut -d: -f1 /etc/group |
2. 查看系統用戶
1
|
cut -d: -f1 /etc/passwd |
3. clone倉庫
1
|
git clone git@your_gitServer_ip:/home/gitrepo/sample.git |
4. push已有倉庫
1
2
3
4
5
|
// 以master分支示范 git checkout master git remote rm origin git remote add origin git@your_gitServer_ip:/home/gitrepo/sample.git git push -u origin master |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.jianshu.com/p/69ea5ded3ede