91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

手把手教你在 Ubuntu 上搭建 Git 服務器

發布時間:2020-10-21 06:38:03 來源:網絡 閱讀:659 作者:sylan215 欄目:軟件技術

最近在寫一些腳本,為了保持連續性,就在家也抽空趕進度,所以碰到了代碼同步的問題,目前想到的方法有三個:

使用云盤,這個拿來即用,但是因為云盤還存放了其他一些東西,總是實時同步不太妥當;
使用 SVN,傳統的代碼托管工具,一直在用;
使用 Git,最新的分布式代碼托管工具,據說很強大。

最后決定使用 Git,主要是學習下最新的技術。下面是操作步驟,做記錄的同時也給其他同學做個指引:

先說下環境:

服務端: Ubuntu 16.04 x64
客戶端: Windows7 x64

服務端配置

先使用如下命令切到 root 權限進行操作:

sudo bash

提示輸入密碼時,輸入 root 密碼即可。

登錄成功后,開始安裝 git,命令:

apt-get install git

提示是否繼續時,輸入 y 后回車,安裝流程繼續,并直至安裝完成。

接著開始安裝 ssh,命令:

apt-get install openssh-server openssh-client

同樣在詢問是否繼續時,輸入 y 后回車,安裝會自動完成。

然后我們新建一個 git 專屬用戶,用戶名也叫 git,命令:

adduser git

新建成功后會提示設置用戶密碼,請設置一個自己能記住的密碼后繼續,后續的詳細信息可以酌情填寫。

下面開始新建 git 倉庫,我們選定倉庫存放目錄為 /srv 下面,倉庫名 myfiles.git,所以命令:

git init --bare /srv/myfiles.git

因為當前用戶是 root,為了讓后面 git 專用賬戶能夠操作倉庫目錄,我們需要把倉庫目錄授權給 git,命令:

chown -R git:git /srv/myfiles.git/

客戶端操作

首先需要下載 Windows 版本的 git,下載地址:點擊下載

下載完成后點擊安裝,并根據提示點擊「下一步」,直到安裝完成。

在客戶端創建一個工作目錄,比如我的是 gitdir,在工作目錄內右鍵并點擊 「Git Bash Here」。

在彈出的命令后窗口 clone 倉庫到本地:

$ git clone git@192.168.252.128:/srv/myfiles.git
Cloning into 'myfiles'...
The authenticity of host '192.168.252.128 (192.168.252.128)' can't be established.
ECDSA key fingerprint is SHA256:zqtjAg+FGfWrT3SCp1Qa2KqhE2UOy3PmudhhrTFlm7A.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.252.128' (ECDSA) to the list of known hosts.
git@192.168.252.128's password:
warning: You appear to have cloned an empty repository.

注意請把「192.168.252.128」換成自己的服務端 ip,并且在確認時輸入的是「yes」,最后輸入的是創建 git 用戶時候的密碼。

為了客戶端進行后續的提交操作,我們還需要注明當前機器的用戶信息,命令后如下:

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

注冊后,commit 的時候會使用這個注冊信息來記錄操作人信息,然后在使用 git log 時可以看到對應的信息,效果如下圖:

$ git log
commit ae72bcc89ea8f5d9d3a44f0e00cf35e91a1afce8 (HEAD -> master, origin/master)
Author: sylan215 <sylan215@sylan215.com>
Date:   Wed Oct 18 18:37:41 2017 +0800

    測試提交

至此,我們完成整個配置過程。

文件修改并同步到 Git 服務器

配置完成后,我們就進入實際使用環節了。

首先我們先修改幾個文件,并拷貝到 myfiles 目錄下,然后提交到服務端,在 myfiles 下運行提交命令:

git add .
git commit -am "測試提交"
git push

帶輸出的命令行內容:

$ git add .
$ git commit -am "測試提交"
[master (root-commit) ae72bcc] 測試提交
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
$ git push
git@192.168.252.128's password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 223 bytes | 223.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To 192.168.252.128:/srv/myfiles.git
 * [new branch]      master -> master

提示輸入密碼的地方,還是輸入的 git 賬戶的密碼。

說明:關于 git 操作的詳細命令,請參考 這篇文章

提交成功后,我們在另一臺機器上使用命令 git pull 同步最新內容:

$ git pull
git@192.168.252.128's password:
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From 192.168.252.128:/srv/myfiles
   ae72bcc..afad897  master     -> origin/master
Updating ae72bcc..afad897
Fast-forward
 test.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

對于多用戶的復雜操作,請參考這篇文章

其它配置

禁用 git 賬戶的 shell

為了安全考慮,如果需要禁用 git 賬戶的 shell,可以修改 /etc/passwd 文件:

把其中的

git:x:1001:1001:git-user,,,:/home/git:/bin/bash

修改為

git:x:1001:1001:git-user,,,:/home/git:/usr/bin/git-shell

其中 /usr/bin/git-shell 的路徑可以通過命令 which git-shell 獲得。

使用公匙和私匙實現免密效果

上面我們使用的過程中每次都需要輸入 git 用戶的密碼才能和服務端交互,這樣會很麻煩,這時候我們可以配置公私匙來實現免密。

首先,需要在客戶端生成公私匙:

ssh-keygen -t rsa

回車后會提示輸入私匙的密碼,如果要免密就直接回車,否則自定義一個密碼(如果自定義了密碼,則每次 push 和 pull 時填入的是設置的密碼)。

命令執行成功后,會在當前用戶目錄的.ssh文件夾(Windows 目錄是 X:\Users{username}.ssh, Linux 是 /home/{username}/.ssh)生成文件「id_rsa」和「id_rsa.pub」,其中 .pub 文件就是公匙,另一個是私匙。

把文件「id_rsa.pub」拷貝到服務端,并使用如下命令進行設置:

mkdir /home/git/.ssh
cp /home/currentuser/Desktop/id_rsa.pub /home/git/.ssh/authorized_keys
chown -R git:git /home/git/.ssh

說明,如果 authorized_keys 文件不存在,可以使用 cp 命令,否則請使用 cat 命令追加,比如:

cat /home/currentuser/Desktop/id_rsa.pub >> /home/git/.ssh/authorized_keys

為了保證配置生效,還需要查看 /etc/ssh/sshd_config 文件中的如下設置是否開啟:

AuthorizedKeysFile %h/.ssh/authorized_keys

是否被注釋掉了,如果是,則需要把前面的 # 去掉,并重啟 ssh 服務(命令 service ssh restart)。

全部配置完畢后,我們試試效果:

$ git pull
Already up-to-date.

看,這次沒有提示輸入密碼了吧,免密設置生效。

非 22 端口連接 Git

在 .ssh 配置目錄現在 config 文件,內容為:

host ip地址
port 端口名

config 配置文件在 Windows 和 Mac 系統的位置為:X:/users/username/.ssh 目錄,其中 X 為系統盤, username 為當前登錄用戶名;

如果是 liunx 系列系統,位置為 /home/username/.ssh 目錄,其中 username 為當前登錄用戶名。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永济市| 灌阳县| 衡阳县| 祁门县| 平度市| 东山县| 山丹县| 镇远县| 安溪县| 资讯| 天镇县| 通江县| 邳州市| 子长县| 利辛县| 西充县| 葵青区| 闵行区| 黎川县| 郁南县| 黔江区| 和政县| 大埔区| 旬阳县| 临洮县| 南宁市| 黔西县| 南丰县| 定远县| 广灵县| 安多县| 南充市| 苍山县| 涞水县| 名山县| 镶黄旗| 城固县| 邯郸县| 沅陵县| 兴海县| 天祝|