當前位置:首頁 » 網頁前端 » gitweb
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

gitweb

發布時間: 2022-02-17 05:03:05

A. 如何利用git webhooks 實現網站代碼自動化部署

公鑰有兩個:1. git用戶公鑰,2. 部署公鑰:
git用戶公鑰

1
2
3

ssh-keygen -t rsa -C "[email protected]"
# 然後一直回車就行
# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用戶請查看提示上的路徑

部署公鑰
sudo -Hu www ssh-keygen -t rsa # 請選擇 「no passphrase」,一直回車下去
2. 准備鉤子文件
創建和修改目錄許可權:

1
2

mkdir /home/wwwroot/website.com/hook
chown -R www:www /home/wwwroot/website.com/hook

寫入鉤子文件:

1

sudo -Hu www touch /home/wwwroot/website.com/hook/index.php

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
28
29
30
31
32

<?php

error_reporting(1);

$target = '/home/wwwroot/website.com'; // 生產環境web目錄

$token = '您在coding填寫的hook令牌';
$wwwUser = 'www';
$wwwGroup = 'www';

$json = json_decode(file_get_contents('php://input'), true);

if (empty($json['token']) || $json['token'] !== $token) {
exit('error request');
}
$repo = $json['repository']['name'];

$cmd = "sudo -Hu www cd $target && git pull";

shell_exec($cmd);
確保你的hook文件可以訪問:http://example.com/hook/index.php,鉤子准備完成。
3.修改git配置和保存git用戶名密碼

sudo -Hu www git config --global credential.helper store # 永久保存
sudo -Hu www git config --global user.name "Bantes"
sudo -Hu www git config --global user.email "[email protected]" # 郵箱請與conding
在Coding網站
1.添加用戶公鑰
復制/root/.ssh/id_rsa.pub內容到個人設置頁的SSH公鑰里添加即可

B. 用git管理java web項目,.project和.classpath是否應該添加到版本庫

一般情況下是不應該添加的,點開頭的文件都是不應該添加的。.gitignore除外
當然,如果有特殊考慮的話另當別論了

C. 如何使用xampp,gitweb搭建多人合作到工作環境

在你倉庫hook目錄下創建post-receive文件,把下面代碼寫進去,把你的項目放到你的web根目錄下,GIT_WORK_TREE的值記得改為你的項目目錄
#!/bin/sh
GIT_WORK_TREE=/alidata/www/yfp git checkout -f

D. git的倉庫和web站點不在一台伺服器上,怎麼自動更新

1. 架設Git伺服器 我們以Ubuntu為例。首先,在git伺服器上創建一個名為 'git' 的用戶,並為其創建一個.ssh 目錄。並將其許可權設置為僅git用戶有讀寫許可權 $ sudo adser git $ su git $ cd $ mkdir .ssh $ chmod 700 .ssh 接下來,把開發者的 SSH 公鑰添加到這個用戶的 authorized_keys 文件中。假設你通過電郵收到了幾個公鑰並存到了臨時文件里。重復一下,公鑰大致看起來是這個樣子: $ cat /tmp/id_rsa.john.pub ssh-rsa /ww+ouN4gSLKssMxXnBOvf9LGt4L ojG6rs6hPB09j9R/T17//5zytK6Ztg3RPKK+4k Ez /nLF6JLtPofwFBlgc+myiv Pq dAv8JggJICUvax2T9va5 gsg-keypair 只要把它們逐個追加到 authorized_keys 文件尾部即可,同時將authorized_keys設置為僅git用戶有讀寫許可權。 $ cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys $ cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys $ cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys 現在可以用 --bare 選項運行 git init 來建立一個裸倉庫,這會初始化一個不包含工作目錄的倉庫。 $ cd /opt/git $ mkdir project.git $ cd project.git $ git --bare init 這時,Join,Josie 或者 Jessica 就可以把它加為遠程倉庫,推送一個分支,從而把第一個版本的項目文件上傳到倉庫里了。值得注意的是,每次添加一個新項目都需要通過 shell 登入主機並創建一個裸倉庫目錄。我們不妨以 gitserver 作為 git 用戶及項目倉庫所在的主機名。如果在中國絡內部運行該主機,並在 DNS 中設定 gitserver 指向該主機,那麼以下這些命令都是可用的: # 在 John 的電腦上 $ cd myproject $ git init $ git add . $ git commit -m 'initial commit' $ git remote add origin git@gitserver:/opt/git/project.git $ git push origin master 這樣,其他人的克隆和推送也一樣變得很簡單: $ git clone git@gitserver:/opt/git/project.git $ vim README $ git commit -am 'fix for the README file' $ git push origin master 用這個方法可以很快捷地為少數幾個開發者架設一個可讀寫的 Git 服務。 作為一個額外的防範措施,你可以用 Git 自帶的 git-shell 工具限制 git 用戶的活動范圍。只要把它設為 git 用戶登入的 shell,那麼該用戶就無法使用普通的 bash 或者 csh 什麼的 shell 程序。編輯/etc/passwd 文件: $ sudo vim /etc/passwd 在文件末尾,你應該能找到類似這樣的行: git:x:1000:1000::/home/git:/bin/sh 把 bin/sh 改為 /usr/bin/git-shell (或者用 which git-shell 查看它的實際安裝路徑)。該行修改後的樣子如下: git:x:1000:1000::/home/git:/usr/bin/git-shell 現在 git 用戶只能用 SSH 連接來推送和獲取 Git 倉庫,而不能直接使用主機 shell。嘗試普通 SSH 登錄的話,會看到下面這樣的拒絕信息: $ ssh git@gitserver fatal: What do you think I am? A shell? Connection to gitserver closed. 這里提供的方法,組內所有成員對project都有讀寫許可權,也就是說每個分支都可以push代碼,如果需要更加細致的許可權控制,請使用Gitosis或者Gitolite。 2. 搭建Gitweb 安裝gitweb之後就可以通過中國站訪問我們的項目了。就像中國git.kernel.org一樣顯示了 首先需要安裝Gitweb,如果沒有安裝apache,那麼直接安裝Gitweb,也會將apache2安裝的。 $ sudo apt-get install gitweb apache2 安裝完成之後,我們只需要修改一下配置文件,將/etc/gitweb.conf文件中的$projectroot修改為放工程文件的目錄。 $ vim /etc/gitweb.conf # path to git projects (.git) $projectroot = "/opt/git"; 至此gitweb就可以使用了,現在可以通過中國[git_server_IP]/gitweb訪問了。 3. Push之後發送郵件通知 當組內成員push代碼到伺服器上之後,會自動發送郵件通知組內所有人員,該次push的具體內容是什麼。具體配置方法: 一般在安裝Git的時候發送郵件的腳本/usr/share/git-core/contrib/hooks/post-receive-email已經存在了,首先要修改所有者和執行許可權,並且安裝sendmail。 $ sudo chown git:git post-receive-email $ sudo chmod 755 post-receive-email $ sudo apt-get install sendmail 然後到切換到工程目錄下的hooks中,添加 post-receive軟鏈接指向 /usr/share/git-core/contrib/hooks/ post-receive-email。 $ cd /opt/git/project.git/hooks $ ln -s /usr/share/git-core/contrib/hooks/post-receive-email post-receive 最後修改工程目錄中的config文件即可。mailinglist是郵件列表, envelopesender是發件人的郵箱, $ vim /opt/git/project.git/config [core] repositoryformatversion = 0 filemode = true bare = true [hooks] mailinglist = "example@gmail中國, example2@gmail中國" # 收件人列表 envelopesender = project.git@example中國 # 送件人地址 emailprefix = "[Project commit] " # 郵件標題前綴 showrev = "git show -C %s; echo" # 不只顯示有變化的文件,同時也顯示改變的內容 為了使郵件顯示的更清楚,還要修改一下工程目錄當中的description文件,在description文件中,默認第一行是項目名稱,所以要在第一行填入該項目的名稱,這個在郵件中會有顯示。 $ vim /opt/git/project.git/description Project_

E. 如何用git 啟動並運行一個web伺服器

1、首先讓需要自動運行的類繼承javax.servlet.http.HttpServlet 2、把需要自動運行的類中寫一個init方法。(servlet應用程序啟動的入口就是init方法) public void init(){ System.out.println("這樣在web容器啟動的時候,就會執行這句話了!"...

F. git 自動化部署到web伺服器的文件只有rw許可權 ,不能執行,如何解決

chmod,然後git status會看到模式改變,添加提交,以後下來就是有執行許可權的了

G. 有誰知道可以在線編輯文件的gitweb伺服器軟體

(1)ApacheApache是世界使用排名第一的Web伺服器軟體。它可以運行在幾乎所有廣泛使用的計算機平台上。Apache源於NCSAhttpd伺服器,經過多次修改,成為世界上最流行的Web伺服器軟體之一。Apache取自"a patchy server"的讀音,意思是充滿補丁的伺服器,因為它是自由軟體,所以不斷有人來為它開發新的功能、新的特性、修改原來的缺陷。Apache的特點是簡單、速度快、性能穩定,並可做代理伺服器來使用。(2)IIS是英文Internet Information Server的縮寫,譯成中文就是"Internet信息服務"的意思。它是微軟公司主推的伺服器,最新的版本是Windows2008裡麵包含的IIS 7,IIS與Window Server完全集成在一起,因而用戶能夠利用Windows Server和NTFS(NT File System,NT的文件系統)內置的安全特性,建立強大,靈活而安全的Internet和Intranet站點。(3)GFEGoogle的web伺服器,用戶數量激增。目前緊逼iis。(4)Nginx不僅是一個小巧且高效的HTTP伺服器,也可以做一個高效的負載均衡反向代理,通過它接受用戶的請求並分發到多個Mongrel進程可以極大提高Rails應用的並發能力

H. 使用git管理webpack的代碼時多人怎麼協作一般託管哪些文件

利用package.json管理你的npm包
1、項目初始化的時候使用npm init初始化package.json配置文件;
2、package.json裡面有兩個欄位devDependencies和dependencies兩個欄位分別表示開發環境需要的npm包和部署環境需要的npm包。
3、同步代碼的時候大家只需要同步一下package.json文件,然後執行npm install命令,npm會自動檢索package.json中的配置,安裝相應的node_moles。
這里給出我的一個項目的package.json的相應欄位;

"dependencies": {},
"devDependencies": {
"babel-preset-es2015": "^6.6.0",
"gulp": "^3.9.1",
"gulp-babel": "^6.1.2",
"gulp-concat": "^2.6.0",
"gulp-connect": "^2.3.1",
"gulp-minify-css": "^1.2.3",
"gulp-sass": "^2.1.1",
"gulp-uglify": "^1.5.1",
"shelljs": "^0.7.0"
}

可以看到npm包名和版本號都有記錄,這樣能保證大家的環境統一。
最後,負責項目基礎配置的人在初始化項目時:

使用npm install命令時添加--save,會自動去package.json中的dependencies下添加相應的包名和版本。
使用npm install命令時添加--save-dev,會自動去package.json中的devDependencies下添加相應的包名和版本。

I. git 倉庫web項目應該保存哪些文件

git作為版本控制工具,你完全可以把你們項目組需要用到的文件保存到倉庫中,方便項目組成員一起後續維護和回滾
在WEB項目中,經常需要安裝npm包到node_moles,這個文件夾是非常龐大的,可以不用上傳到參考中,項目組通過package.json和package.lock.json來保證項目用到的npm包一致
另外像是日誌文件和緩存文件也是可以不用上傳