簡介
Git是一個開源的分布式版本控制系統(tǒng),可以高效的處理從小到很大的項目版本管理。
分類
- 集中式
SVN,CVS
使用單一的服務器用來管理和存儲所有文件的修訂版本;協(xié)同開發(fā)的成員拉取或提交都需連接到這臺服務器;如果服務器宕機,宕機期間任何人都不能拉取或提交,無法做到協(xié)同;如果服務器磁盤損壞,又沒有備份,將丟失所有文件的修訂歷史,文件僅剩下成員在各自電腦中的當前版本。
- 分布式
Git
解決集中式缺點,客戶端不僅是下載最新文件,而是把代碼倉庫完整的鏡像了,包括歷史修訂記錄。任何一個故障的協(xié)同服務器都可以使用鏡像出來的本地倉庫恢復。
Git是系統(tǒng);GitHub是社區(qū)
GitHub
準備一個Github賬號
#安裝Git
[root@wenzi ~]#yum -y install git
#配置秘鑰
[root@wenzi ~]#ssh-keygen -t rsa -C 'GitHub郵箱'
#查看秘鑰,將公鑰復制到GitHub中
[root@wenzi ~]#ll .ssh/
total 8
-rw------- 1 root root 2602 Jun 19 23:02 id_rsa
-rw-r--r-- 1 root root 573 Jun 19 23:02 id_rsa.pub
[root@wenzi ~]#cat .ssh/id_rsa.pub
克隆GitHub已有倉庫
GitHub
本地
#配置git環(huán)境
[root@wenzi ~]#git config --global user.name 'GitHub用戶名'
[root@wenzi ~]#git config --global user.email 'GitHub郵箱'
#查看git配置
[root@wenzi ~]#cat .gitconfig
#設置遠程倉庫地址
[root@wenzi ~]#git remote add origin git@github.com:wenzi0729/first.git
[root@wenzi ~]#ll
total 4
-rw-------. 1 root root 1279 May 15 02:35 anaconda-ks.cfg
#克隆遠程倉庫
[root@wenzi ~]#git clone git@github.com:wenzi0729/first.git
Cloning into 'first'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (6/6), done.
[root@wenzi ~]#ll
total 4
-rw-------. 1 root root 1279 May 15 02:35 anaconda-ks.cfg
drwxr-xr-x 3 root root 35 Jun 19 23:30 first
[root@wenzi ~]#cat first/README.md
This is created file in GitHub
[root@wenzi ~]#cd first/
#在本地修改倉庫文件
[root@wenzi first]#echo 'local local local' >> README.md
#提交當前目錄下所有文件到緩存區(qū)
[root@wenzi first]#git add .
#提交到本地倉庫
[root@wenzi first]#git commit -m 'This is local created file'
[main b07feb5] This is local created file
1 file changed, 1 insertion(+)
#提交到遠程倉庫
[root@wenzi first]#git push origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 287 bytes | 287.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:wenzi0729/first.git
759f39c..b07feb5 main -> main
驗證?
本地新建倉庫上傳至GitHub
GitHub需要新建一個空倉庫second
#創(chuàng)建新倉庫專用目錄
[root@wenzi ~]#mkdir second;cd second
#使該目錄稱為git管理倉庫
[root@wenzi second]#git init
設定環(huán)境
[root@wenzi second]#git config --global user.name 'wenzi'
[root@wenzi second]#git config --global user.email 'xxxxxxxx@163.com'
[root@wenzi second]#git remote add origin git@github.com:wenzi0729/second.git
#創(chuàng)建新文件
[root@wenzi second]#echo '123123123' > 123.txt
#將git本地的分支名改為main
[root@wenzi second]#git branch -m master main
#因為GitHub中second是新建的倉庫,指定默認使用main分支
[root@wenzi second]#git pull --rebase origin main
[root@wenzi second]#git push origin main
驗證?
踩坑:
一、上傳到遠程倉庫時報錯
[root@wenzi second]#git push origin main
error: src refspec main does not match any
error: failed to push some refs to 'github.com:wenzi0729/second.git'
2020年10月起,倉庫默認分支從master變?yōu)閙ain,需要將本地和遠程倉庫同步
git branch -m master main
二、當GitHub中新建倉庫,git第一次上傳時報錯
[root@wenzi second]#git push origin main
To github.com:wenzi0729/second.git
?! [rejected] ? ? ? ?main -> main (fetch first)
error: failed to push some refs to 'github.com:wenzi0729/second.git
除了將本地倉庫和遠程倉庫關聯(lián)外,還需要關聯(lián)分支
git pull --rebase origin main
GitLab
不支持的 Linux 發(fā)行版和類 Unix 操作系統(tǒng)
- Arch Linux
- Fedora
- FreeBSD
- Gentoo
- macOS
安裝配置
官方文檔:GitLab下載安裝_GitLab最新中文免費版下載安裝-極狐GitLab
gitlab配置文件:/etc/gitlab/gitlab.rb
Gitlab相關命令:
- 重新加載配置文件:gitlab-ctl reconfigure
- 重啟:gitlab-ctl restart
- 查看服務狀態(tài):gitlab-ctl status
- 查看所有日志:gitlab-ctl tail
- 檢查gitlab:gitlab-rake gitlab:check SANITIZE=true --trace
一、
[root@wenzi ~]#yum install -y curl policycoreutils openssh-server openssh-clients
[root@wenzi ~]#yum -y install postfix
[root@wenzi ~]#systemctl enable --now postfix.service
[root@wenzi ~]#curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
[root@wenzi ~]#EXTERNAL_URL="http://192.168.29.141:8080" yum install -y gitlab-jh
安裝完訪問?http://192.168.29.141:8080 ,網頁提示502,查看日志?gitlab-ctl tail | grep error、gitlab-ctl tail | grep 8080
發(fā)現(xiàn)報錯:
{"correlation_id":"","duration_ms":0,"error":"badgateway: failed to receive response: dial unix /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket: connect: connection refused","level":"error","method":"GET","msg":"","time":"2023-06-22T02:02:08+08:00","uri":""}
2023-06-21_18:04:16.06570 /opt/gitlab/embedded/lib/ruby/gems/3.0.0/gems/puma-5.6.5/lib/puma/binder.rb:341:in `initialize': Address already in use - bind(2) for "127.0.0.1" port 8080 (Errno::EADDRINUSE)
原因1:puma端口沖突
解決辦法:vim /etc/gitlab/gitlab.rb ,在默認端口#?puma['port'] = 8080下新增一行 puma['port'] = 8989 ,此端口不能和external_url重復。修改完畢保存,重新加載配置文件,重啟gitlab,等待兩三分鐘再次訪問http://192.168.29.141:8080即可
原因2:使用虛擬機的話,內存不夠也會出現(xiàn)502,要給gitlab足夠的內存可用,個人感覺內存4G以上,或者配置交換分區(qū)。
除非您在安裝過程中指定了自定義密碼,否則將隨機生成一個密碼并存儲在 /etc/gitlab/initial_root_password 文件中(出于安全原因,24 小時后,此文件會被第一次?gitlab-ctl reconfigure
?自動刪除,因此若使用隨機密碼登錄,建議安裝成功初始登錄成功之后,立即修改初始密碼)。使用此密碼和用戶名?root
?登錄。
二、
訪問http://192.168.29.141:8080,創(chuàng)建新項目
配置ssh秘鑰,查看id_rsa.pub,將公鑰復制到gitlab中
[root@wenzi ~]#ssh-keygen
[root@wenzi ~]#ll .ssh/
total 8
-rw------- 1 root root 2610 Jun 22 02:40 id_rsa
-rw-r--r-- 1 root root 576 Jun 22 02:40 id_rsa.pub
查看客戶端訪問項目地址
文章來源:http://www.zghlxwxcb.cn/news/detail-499236.html
三、?
[root@wenzi ~]#git config --global user.name "root"
[root@wenzi ~]#git config --global user.email "git@192.168.29.141"
[root@wenzi ~]#git clone git@192.168.29.141:root/myceshi.git
[root@wenzi ~]#cd myceshi/
[root@wenzi myceshi]#touch local.txt
[root@wenzi myceshi]#git add local.txt
[root@wenzi myceshi]#git commit -m "This is local"
[root@wenzi myceshi]#git push origin main
文章來源地址http://www.zghlxwxcb.cn/news/detail-499236.html
到了這里,關于Git——分布式版本控制系統(tǒng)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!