一、準備作業
1、Gogs
概念:
Gogs 是一款極易搭建的自助 Git 服務,
目的:
Gogs 的目標是打造一個最簡單、最快速和最輕松的方式搭建自助 Git 服務,使用 Go 語言開發使得 Gogs 能夠通過獨立的二進制分發,并且支持 Go 語言支持的 所有平臺,包括 Linux、Mac OS X、Windows 以及 ARM 平臺,
2、搭建前環境準備
1、docker環境,192.168.1.20 2、nginx服務器 192.168.1.10 3、mysql資料庫5.7,192.168.1.20 4、電腦安裝:intellij IDEA 開發人員撰寫代碼工具 git 開發人員將本地代碼用git提交到git遠程倉庫,
二、Docker搭建gogs,并上傳專案
1、安裝gogs
mkdir -P /server/docker/gogs
docker run --name=gogs -p 10022:22 -p 10080:3000 \ -v /home/docker/server/gogs/data:/data \ -itd gogs/gogs:latest
chmod -R 777 /server/docker/gogs/data #為運行gogs程式做的目錄授權,下文會提到
訪問gogs頁面:192.168.1.20:10080
gogs搭建完成,配置nginx域名訪問: http://git.test.com
server {
server_name git.test.com;
listen 80;
location / {
proxy_pass http://192.168.1.20:10080;
}
}
首次運行gogs安裝程式需填寫資料庫資訊,首先在mysql資料庫創建gogs用戶:
登錄mysql資料庫: create database gogs; #創建gogs資料庫 create user gogs; #創建gogs用戶 grant all privileges on gogs.* to gogs@'%' identified by 'gogs'; #為gogs用戶授權


禁止用戶注冊并設定gogs頁面的管理員賬號:

注:上圖的應用基本設定 應用名稱:可以換成自定義名稱 倉庫根目錄:使用默認就行了,默認/data/git/gogs-repositories,如果采用了資料卷映射,比如我這里因為/server/docker/gogs/data映射/data,需要給這個目錄777權限,負責會創建失敗, 域名:使用ssh時使用的域名或者IP SSH 埠號:gogs啟用ssh時使用的埠號,默認22埠,如果修改了這個埠號,那么在上面創建容器時要對應的將10022埠映射到修改的埠號,如果不啟用ssh,則置空 HTTP 埠號:gogs應用啟動的http埠,默認3000,如果修改了這個埠號,那么在上面創建容器時要對應的將10080埠映射到修改的埠號 應用 URL:即打開應用的url地址,因為這里采用了docker,所以我們要修改成宿主機的地址轉發去訪問,比如這里我的宿主機地址:192.168.1.20,它的10080埠會轉發到容器的3000埠,所以這里填:http://192.168.1.20:10080/ 日志路徑:gogs的日志保存路徑,默認就行了 ##安裝程式運行完成后,會生成一個app.ini檔案,在宿主機映射目錄/server/docker/gogs/data/gogs/conf/app.ini,其中有相關的配置資訊,盡量不要修改此檔案,可能導致服務無法訪問,
2、管理、配置gogs頁面
創建倉庫:


上傳專案代碼:根據提示操作(后文有相關的命令補充)

代碼上傳完畢,就可以進行倉庫設定,下圖圈住的這幾個選項是比較常用的,可以自己設定一下,
gogs管理面板:可以創建用戶、組織等,可以根據自己需求添加

三、相關知識補充
1、代碼在本地倉庫和遠程倉庫之間上傳、下載的方法
(1)本地git工具: Git操作命令
在本地git使用001用戶建一個專案:test 進行git全域配置: git config --global user.name "001" git config --global user.email "[email protected]" 創建一個倉庫: mkdir test cd test git init #生成本地.git檔案 touch README.md git add mall #mall為需要上傳的檔案夾或檔案 git commit -m "mall" #對上傳檔案的描述 git branch -a #查看所有分支 git branch slave #創建slave分支 git checkout slave #切換到slave分支 git remote add origin http://git.test.com/001/test.git #關聯遠程倉庫,遠程倉庫名字是origin git push -u origin master #上傳分支 重新上傳檔案 git rm -r 檔案夾 git rm 檔案 把你要重新上傳的檔案放入專案中 再提交一次 git add 要上傳的檔案 git commit -m "洗掉的某檔案的提示" git push -u origin master #提交到遠程倉庫 Git remote 修改源 git remote -v #查看clone下來的git源 git commit -m "Change repo." # 先把所有為保存的修改打包為一個commit git remote remove origin # 刪掉原來git源 git remote add origin [YOUR NEW .GIT URL] # 將新源地址寫入本地版本庫組態檔 git push -u origin master # 提交所有代碼 git倉庫專案代碼遷移(將git.test.com的專案遷移到git.prod.com中) mkdir gitspace cd gitspace git clone http://git.test.com/001/test.git #git克隆遠程專案 cd test git remote -v #查看git源 git branch -a #查看專案所有分支 git remote rename origin old-origin git remote add origin http://git.prod.com/001/test.git git push -u origin --all git push -u origin --tags 將遠端分支全部變成本地分支 1、首先將專案的所有分支clone下來,并且變成本地分支, mkdir some_repo cd some_repo git clone --bare http://git.test.com/001/test.git .git git config --unset core.bare git reset --hard 上面的意思是,首先隨便建立一個檔案夾some_repo,然后在里面只將xxx的.git檔案夾拷貝下來!此時,some_repo里面還是沒有任何repo的檔案,只有一個隱藏檔案夾.git,然后解除core.bare模式,然后再恢復所有的repo檔案,此時,所有的xxx的所有的分支都是本地分支了! 2、將本地分支全部推到遠端 git remote rename origin old_origin git remote add origin http://git.prod.com/001/test.git git push -u origin --all git push -u origin --tags
(2)intellij IDEA軟體使用:(其實也是使用git工具上傳)
IDEA軟體添加git: 打開 Setting 界面,點擊Tools —— Terminal, 修改右側選單欄 Shell path ,將cmd.exe設定為你自己Git安裝路徑下的bin\git.exe(Tab name 改為Git,這個可改可不改) 再打開首頁面最底下的一欄,Terminal出現git命令界面 下載代碼:file——>new——>project from version control——>git——>輸入存放代碼地址: http://git.test.com/001/test.git 上傳代碼:打開首頁——>open——>選中本地代碼——>右擊代碼目錄——>git——>add——>成功后再點擊git,commit directory——>成功后點擊git,push
還可以在IDEA界面直接點擊Terminal出現git命令界面:輸入git命令上傳代碼(更方便)
2、git上傳代碼遇到的錯誤
1、git上傳代碼卡住(Total 7072 (delta 2508), reused 6844 (delta 2376), pack-reused 0)

git config --global sendpack.sideband false git config --local sendpack.sideband false git config --global http.postBuffer 524288000 git config --global https.postbuffer 524288000 git config --global -l git config --local -l
執行完這些命令后,再上傳git push -u origin master,可能會稍微卡一會兒,然后就成功了,
2、修改保存在本地的git用戶名密碼
git config --global user.name "用戶名" git config --global user.password "密碼"
git config --global -l #查看
3、上傳代碼報錯:error: failed to push some refs to 'http://git.test.com/001/test.git'
#完整報錯:
error: failed to push some refs to 'http://git.test.com/001/test.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
原因分析:這個問題是因為遠程庫與本地庫不一致造成的
解決方法:可以把遠程庫同步到本地庫,再把本地庫推送到遠程庫
git pull --rebase origin master
git push -u origin master
4、上傳代碼報錯:error: RPC failed; result=22, HTTP code = 413
#完整錯誤: error: RPC failed; result=22, HTTP code = 413 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly Everything up-to-date
原因分析:上傳檔案太大,超過了最大限制
解決方法:nginx傳輸限制:(nginx.conf)
client_max_body_size 400M;
git傳輸限制:
git config --global http.postBuffer 524288000
git config --global https.postBuffer 524288000

愿你陽光開朗自信不羈,因為你從來都只是你,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/288944.html
標籤:其他
