真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么搭建自己的git服務(wù)器管理網(wǎng)站

今天小編給大家分享一下怎么搭建自己的git服務(wù)器管理網(wǎng)站的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),張家川回族自治企業(yè)網(wǎng)站建設(shè),張家川回族自治品牌網(wǎng)站建設(shè),網(wǎng)站定制,張家川回族自治網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,張家川回族自治網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

一、準(zhǔn)備環(huán)境

拓?fù)涫沁@樣的:

怎么搭建自己的git服務(wù)器管理網(wǎng)站

網(wǎng)站服務(wù)器WS,就是你看到的本站的服務(wù)器啦。WS上我們主要需要做的是git服務(wù)器配置;

開發(fā)服務(wù)器DS,就是找的其他的服務(wù)器。DS上主要做的是配置git本地環(huán)境;

本地機(jī)PC,就是寫代碼的電腦了。

也就是說,預(yù)想的正確操作是:PC用PhpStorm開發(fā)代碼,用自帶的ssh提交功能提交到開發(fā)服務(wù)器上,DS提供web預(yù)覽,及時(shí)地預(yù)覽效果,當(dāng)效果穩(wěn)定后,使用git提交到網(wǎng)站服務(wù)器,就完成了功能迭代。同時(shí)git還能夠做版本控制,想想都有點(diǎn)小激動呢。

相關(guān)的版本一覽:

機(jī)器軟件版本
WS/DS操作系統(tǒng)Debian 8.2
WS/DSgit2.1.4

二、git服務(wù)器的搭建

1、WS:添加apt的163源

這里的源是163提供的給Debian 8(Jessie)的源,你可以自己去尋找適合自己版本的163源、清華大學(xué)鏡像站源等等。

vi /etc/apt/sources.list

加入:

deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib

2、WS:root用戶下安裝git和sudo

apt-get install git
apt-get install sudo

3、WS:root用戶下添加用于git的用戶

adduser bwb

怎么搭建自己的git服務(wù)器管理網(wǎng)站

密碼一定要輸哦,這個(gè)密碼是登錄這個(gè)賬戶的密碼。

4、WS:root用戶下給bwb用戶sudo權(quán)限

vi /etc/sudoers

添加:

bwb     ALL=(ALL:ALL) ALL

并使用wq!進(jìn)行強(qiáng)制保存。

5、DS:創(chuàng)建ssh的密鑰

cd ~/.ssh
ssh-keygen -t rsa

會提示輸入密碼,這個(gè)密碼是這個(gè)密鑰的密碼,推薦輸入哦(雖然不輸入也能成功)。如果沒有.ssh目錄的話,可以手動創(chuàng)建一個(gè)。

6、DS→WS:拷貝id_rsa.pub

可以使用類似xftp4這類ftp工具,把生成的id_rsa.pub從DS拷貝到WS上。如果使用xftp4的話,注意通過菜單欄的工具選項(xiàng),勾選“顯示隱藏的文件”來看到.ssh這個(gè)隱藏目錄。

怎么搭建自己的git服務(wù)器管理網(wǎng)站

7、WS:配置好ssh

從root用戶進(jìn)入(或者直接從bwb用戶進(jìn)入):

su bwb
sudo mkdir ~/.ssh
sudo cd ~/.ssh
sudo cat id_rsa.pub >> authorized_keys
sudo service ssh restart

(1)如果沒有.ssh才創(chuàng)建.ssh

(2)這里的id_rsa.pub注意填為你拷貝的文件路徑。

(3)配置好后,你可以在DS上通過:

touch test.txt
scp -r test.txt bwb@xxx.xxx.xxx.xxx:/home/bwb

來觀察test.txt有沒有拷貝到WS上的/home/bwb目錄下。這里的xxx.xxx.xxx.xxx是WS的IP,當(dāng)然你也可以填網(wǎng)址域名。

8、WS:bwb用戶下配置git服務(wù)器

我們?nèi)碳僭O(shè)web工程的目錄為/home/testweb。

(1)進(jìn)入目錄

cd /home/testweb

(2)初始化空倉庫

git init

會提示:

初始化空的 Git 版本庫于 /home/testweb/.git/

(3)修改config

vi .git/config

加入:

[receive]
        denyCurrentBranch = ignore

(4)修改hook

新建一個(gè)hook

vi .git/hooks/post-receive

加入:

#!/bin/sh
GIT_WORK_TREE=/home/testweb  git checkout -f

(5)加入README.md

touch README.md

(6)加入工程下的所有的文件到git

git add .

注意后面的點(diǎn)哦。

(7)提交到本地倉庫

git commit -m "Initial commit"

9、DS:配置本地git

(1)安裝環(huán)境

和前面配置源、安裝git的操作一致,只需要這兩步就可以了。

(2)克隆項(xiàng)目:

git clone bwb@xxx.xxx.xxx.xxx:/home/testweb

會提示輸入密碼,這是之前設(shè)置的id_rsa的密碼。

(3)[ 可選 ] 創(chuàng)建robot.txt禁止爬取所有文件:

vi robot.txt

加入:

User-agent: *
Disallow: /

(4)[ 可選 ] 創(chuàng)建不想被上傳的文件的規(guī)則:

vi .gitignore

加入:

#self
/.gitignore

#robot
robot.txt

(5)測試是否成功

echo "123" >> README.md
git add .
git status
git commit -m "test"
git push

git status是在提交前查看一下要提交的有哪些東西,可以不用這條命令。

10、限制bwb賬戶的權(quán)限

如果前面的成功了,基本就搭建完了。這里只是為了更安全限制bwb的權(quán)限,只能git,不能登錄,且不能用sudo提權(quán)了:

(1)修改shell權(quán)限

vi /etc/passwd

把:

bwb:x:1000:1000:,,,:/home/bwb:/bin/bash

改為:

bwb:x:1000:1000:,,,:/home/bwb:/usr/bin/git-shell

(2)修改sudo權(quán)限

vi /etc/sudoers

把之前添加的:

bwb     ALL=(ALL:ALL) ALL

用#注釋掉:

#bwb     ALL=(ALL:ALL) ALL

注意使用wq!強(qiáng)制保存,恭喜你,搭建完成了~

附錄:相關(guān)問題解決參考

1、為什么WS在config里面加denyCurrentBranch = ignore?

因?yàn)槿绻患拥脑挘珼S進(jìn)行push就會報(bào)錯,大意是它不是個(gè)裸倉庫:

remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

2、為什么WS要加那個(gè)hook?

因?yàn)槿绻患觝ook的話,DS進(jìn)行push,WS是看不到結(jié)果的,因?yàn)闆]有更新worktree。你用在WS上使用git status就能看出區(qū)別了,它一直停留在master分支上。解決方法是手動更新:

git reset --hard

但是這樣太麻煩了,所以加hook,加了的話,就會自動更新,hook的意思就是“if做了什么操作,then就去做什么操作”,它幫你完成了。

3、為什么不使用git init --bare?

這是一個(gè)我研究了好久并且實(shí)踐過的問題,答案是,--bare不適合web代碼管理。

(1)外觀

首先來看一下 git init --bare(以下簡稱bare)和git init(以下簡稱init)的外觀區(qū)別:

init會創(chuàng)建一個(gè).git的隱藏文件夾,內(nèi)容有branches、config、description、HEAD、hooks、info、objects、refs;

bare不會創(chuàng)建.git文件夾,而是直接在當(dāng)前文件夾下創(chuàng)建同樣的這些內(nèi)容。

(2)功能

init可以在git服務(wù)器上執(zhí)行g(shù)it操作;

bare不能在git服務(wù)器上執(zhí)行g(shù)it操作,會報(bào)錯:This operation must be run in a work tree

(3)本質(zhì)

init的本質(zhì)是會創(chuàng)建工作目錄,而bare的本質(zhì)是只記錄歷史信息,不維護(hù)工作目錄。

因此,init適合于web項(xiàng)目的維護(hù),可以在WS上實(shí)時(shí)地看到更新后的完整的web項(xiàng)目文件。而bare適合于多人的項(xiàng)目維護(hù),不需要在遠(yuǎn)端倉庫看到更新后的工作目錄,只需要記錄每個(gè)人操作了些什么東西即可。如果用bare維護(hù)web項(xiàng)目,DS進(jìn)行push后,WS是沒有任何反應(yīng)的(當(dāng)然會更新objects文件,只是其他文件沒有反應(yīng)),并且不能在WS上執(zhí)行任何git操作。所以應(yīng)該使用init。

4、我更新了.gitignore,該怎么讓它重新生效?

git add . //重新提交 .ignore文件
git rm -r --cached . //清空緩存
git add . //重新提交 所有文件
git commit -m "update .gitignore"
git push

注意命令中的點(diǎn)。

5、我錯誤地創(chuàng)建了新用戶,該怎么撤銷?

userdel -r bwb

bwb為你不想創(chuàng)建的用戶。

6、git clone的時(shí)候提示失?。篐ost key verification failed

提示:

Are you sure you want to continue connecting (yes/no)?
Host key verification failed.
fatal: Could not read from remote repository.

這是因?yàn)槟爿斎氲氖腔剀嚩皇恰皔es”,輸入yes即可。

7、Please tell me who you are?

跟著提示設(shè)置一下config即可:

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

它的實(shí)質(zhì)是去修改.git/config文件。

8、ssh連接提示Permission denied (publickey)?

首先檢查你是否有那個(gè)文件的權(quán)限(比如它是root用戶才能訪問的文件夾),如果沒有請賦予權(quán)限:

chown -R bwb:bwb home/testweb

然后檢查是否把DS的id_rsa.pub的內(nèi)容成功添加進(jìn)WS的authorized_keys了。

最后非??赡艿木褪悄闩溴e了用戶。比如你把DS的id_rsa.pub配到WS的root用戶的authorized_keys里去了,結(jié)果后面訪問的ssh又是bwb用戶,當(dāng)然被拒絕了。

如果還不行,debian操作系統(tǒng)可以查看/var/log/auth.log,其他操作系統(tǒng)可以查看/var/log/secure,然后:

tail -n100 /var/log/auth.log|grep sshd

來觀察到底有沒有進(jìn)行過連接、到底是哪個(gè)地方出了問題。

9、.gitignore的常見語法

#忽略文件
test.txt

#忽略根目錄下的文件
/test.txt

#忽略指定目錄下的文件
/src/test.txt

#忽略目錄
/test

#忽略文件夾,但不忽略其中的某些文件
/test
!/test/test.txt

10、robot.txt常見語法

robot.txt在線生成

簡書的robot.txt

愛奇藝的robot.txt

最簡單的配置:

User-agent: * 這里的*代表的所有的搜索引擎種類,*是一個(gè)通配符
Disallow: / 這里定義是禁止爬尋站點(diǎn)所有的內(nèi)容

以上就是“怎么搭建自己的git服務(wù)器管理網(wǎng)站”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞名稱:怎么搭建自己的git服務(wù)器管理網(wǎng)站
文章出自:http://weahome.cn/article/gojdss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部