Git遠(yuǎn)程倉庫是Git版本控制系統(tǒng)的一個(gè)概念,它是一個(gè)存儲(chǔ)Git代碼的遠(yuǎn)程服務(wù)器。
你可以將本地Git倉庫上傳到遠(yuǎn)程倉庫,以便與其他人協(xié)作開發(fā)或備份代碼。
創(chuàng)建遠(yuǎn)程倉庫
遠(yuǎn)程倉庫可以使用第三方平臺(tái),如(github、gitlab、gitee)等,這里使用的倉庫為gitee
。
地址為:https://gitee.com/
- 需自行創(chuàng)建賬號(hào)登錄
- 點(diǎn)擊“+”號(hào)——點(diǎn)擊新建倉庫
- 填寫倉庫信息(除了倉庫名其他都不重要)
向遠(yuǎn)程倉庫推送數(shù)據(jù)文件
- 在本地添加遠(yuǎn)程倉庫
- 根據(jù)上一篇文章創(chuàng)建的本地倉庫添加遠(yuǎn)程倉庫,如果沒有需要?jiǎng)?chuàng)建本地倉庫
- 地址為倉庫地址,創(chuàng)建完成會(huì)看到
[root@jenkins cangku]# git remote add origin https://gitee.com/yyang2/test_01.git
- 將本地倉庫文件推送到遠(yuǎn)程倉庫測(cè)試
[root@jenkins cangku]# git push -u origin master
Username for 'https://gitee.com': yyang2
Password for 'https://yyang2@gitee.com':
Counting objects: 20, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (20/20), 1.80 KiB | 0 bytes/s, done.
Total 20 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/yyang2/test_01.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
注意賬號(hào)密碼是你創(chuàng)建倉庫時(shí)自定義的,一定要自己記住。
此時(shí)master分支上的兩個(gè)文件已經(jīng)推送到遠(yuǎn)程倉庫了
從第二臺(tái)主機(jī)本地拉取遠(yuǎn)程倉庫數(shù)據(jù)
- 創(chuàng)建公鑰,存放至遠(yuǎn)程倉庫,不然拉取會(huì)失敗
[root@master-01 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MRxAZqBztC5ibEEGPkTPv1sI/BMLe1wG81TawTDsrxo root@master-01
The key's randomart image is:
+---[RSA 2048]----+
|+= oo*++o |
|= oo + o=o. |
| +oooo.o+. |
|. ++. =. o |
|.+.+.o +S |
|o. .* B . |
| . E .. |
| . =. |
| o. |
+----[SHA256]-----+
[root@master-01 ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPVwx3MG3oXcRQAx4K5VkPKXR0YiTdxJxGhtNGMWyPoN1j46zUjJtQl0tHsBMQW//NJ0+1+IzM3ReKe7xG8ZvDj9mmtiYu6SkYhPTkB9Qv5uzmu37pQ33MlB3MfthHMAvlu3m5LNZ5LKcz7fnFLBV9OyrgxuFPkgaavm4qIemy5JmthG5K2WXR5MfyNb4jzOTJl3Qxsk3lCDiAU2oXwCtWrx1LbySM8lQZ3hezGvkmauCnn+tFecalYeU/72CjRywX0A7FwHRBMspR4bLkCO+jvTZGB7UswbYC2SvVCAp1qG56KxraIszpmxnYah2Y0ONTo0AvOZENIZvI5IL65nm1 root@master-01
- 復(fù)制公鑰然后按下圖步驟操作,確定后需要輸入倉庫密碼確認(rèn)
- 在本地選擇個(gè)合適的目錄,克隆遠(yuǎn)程倉庫時(shí)用
[root@master-01 ~]# mkdir /yu_cangku
[root@master-01 ~]# cd /yu_cangku/
[root@master-01 yu_cangku]# git clone git@gitee.com:yyang2/test_01.git
正克隆到 'test_01'...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 20 (delta 0), reused 0 (delta 0), pack-reused 0
接收對(duì)象中: 100% (20/20), done.
[root@master-01 yu_cangku]# ls
test_01
[root@master-01 yu_cangku]# ls test_01/
file1.txt hehe.py
- 增加內(nèi)容再推送至遠(yuǎn)程倉庫
[root@master-01 yu_cangku]# cd test_01/
[root@master-01 test_01]# ls
file1.txt hehe.py
[root@master-01 test_01]# cat file1.txt
hello git
hello world
hello
hello hehehe
[root@master-01 test_01]# echo "hello yuancheng_cangku" >> file1.txt
[root@master-01 test_01]# git add .
[root@master-01 test_01]# git commit -m "遠(yuǎn)程編輯 -v1"
[root@master-01 test_01]# git config --global user.email "yuancheng@example.com"
[root@master-01 test_01]# git config --global user.name "yuancheng"
[root@master-01 test_01]# git push origin master
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 326 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To git@gitee.com:yyang2/test_01.git
0a18968..c5ad2ac master -> master
- 在遠(yuǎn)程倉庫刷新查看內(nèi)容
發(fā)現(xiàn)了新增加的內(nèi)容,說明過程是成功的。
第一臺(tái)主機(jī)同步遠(yuǎn)程倉庫數(shù)據(jù)
- 當(dāng)遠(yuǎn)程倉庫數(shù)據(jù)優(yōu)先于本地倉庫,需要同步,如果已經(jīng)克隆過倉庫,可使用以下命令同步
[root@jenkins cangku]# git pull origin master
Username for 'https://gitee.com': yyang2
Password for 'https://yyang2@gitee.com':
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://gitee.com/yyang2/test_01
* branch master -> FETCH_HEAD
Updating 0a18968..c5ad2ac
Fast-forward
file1.txt | 1 +
1 file changed, 1 insertion(+)
[root@jenkins cangku]# cat file1.txt
hello git
hello world
hello
hello hehehe
hello yuancheng_cangku
- 第二臺(tái)這時(shí)可以用以下命令同步數(shù)據(jù)
git pull origin master
tag標(biāo)簽
Git中的標(biāo)簽(tag)主要有以下作用:
1??:標(biāo)記軟件版本:標(biāo)簽最常用的用途就是標(biāo)記軟件版本,類似于在代碼的進(jìn)化過程中某一天突然進(jìn)行了一次正式的版本發(fā)布,或者修復(fù)了一個(gè)重要的漏洞,或者進(jìn)行了某些功能的改進(jìn)等,這些具有里程碑意義的事件發(fā)生時(shí),我們可以為其打上一個(gè)標(biāo)簽,以方便后續(xù)的管理和追蹤。
2??:分支過度標(biāo)簽:當(dāng)Git的分支過多的時(shí)候,此時(shí)便可以利用標(biāo)簽來對(duì)分支進(jìn)行過度,這樣可以減少分支的數(shù)量。
3??:輕量級(jí)引用:標(biāo)簽其實(shí)就是一個(gè)指向某個(gè)commit的輕量級(jí)引用,打了標(biāo)簽后,就可以通過標(biāo)簽來引用這個(gè)提交。
- tag的使用方法
[root@jenkins cangku]# git tag v1.0
[root@jenkins cangku]# git tag
v1.0
此時(shí)只是將本地倉庫做了標(biāo)簽,且為最新內(nèi)容
- 將tag標(biāo)簽同步到遠(yuǎn)程倉庫
[root@jenkins cangku]# git push origin v1.0
Username for 'https://gitee.com': yyang2
Password for 'https://yyang2@gitee.com':
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/yyang2/test_01.git
* [new tag] v1.0 -> v1.0
-
再遠(yuǎn)程倉庫查看
-
指定id號(hào)進(jìn)行標(biāo)簽操作
git tag -a v1.0 [id] -m "v1.0"
- 查看tag標(biāo)簽對(duì)應(yīng)的id版本
[root@jenkins cangku]# git show v1.0
commit c5ad2ac2778758c0c6274427bc9fdaf172fd5779
Author: yuancheng <yuancheng@example.com>
Date: Fri Aug 4 17:52:58 2023 +0800
遠(yuǎn)程 -v1
diff --git a/file1.txt b/file1.txt
index 8a3fe2c..90a5b9e 100644
--- a/file1.txt
+++ b/file1.txt
@@ -2,3 +2,4 @@ hello git
hello world
hello
hello hehehe
+hello yuancheng_cangku
git忽略文件
gitignore是一個(gè)特殊的文件,用于告訴Git哪些文件或目錄不應(yīng)該被納入版本控制。在Git倉庫中,有些文件或目錄可能包含敏感信息、臨時(shí)文件或者不需要被跟蹤的文件,這些文件不應(yīng)該被包含在Git倉庫中。通過使用.gitignore文件,開發(fā)者可以告訴Git哪些文件需要被忽略,從而避免將這些文件包含在版本控制中,提高Git倉庫的可維護(hù)性和安全性。
gitignore文件的主要作用有以下幾個(gè)方面:文章來源:http://www.zghlxwxcb.cn/news/detail-645436.html
- 忽略敏感信息和不必要的文件:在一個(gè)Git倉庫中,有些文件可能包含敏感信息,例如API密鑰、密碼等。這些信息不應(yīng)該被包含在版本控制中,因?yàn)橐坏┬孤?,可能?huì)對(duì)項(xiàng)目或者用戶造成嚴(yán)重的損失。通過使用.gitignore文件,開發(fā)者可以將這些敏感信息所在的文件或目錄添加到忽略列表,從而避免將其包含在Git倉庫中。
- 忽略臨時(shí)文件和目錄:有些文件和目錄是臨時(shí)性的,不需要被版本控制管理。例如,編譯生成的中間文件、日志文件、配置文件等。通過添加到.gitignore文件,可以避免將這些文件包含在Git倉庫中,提高倉庫的整潔性和可維護(hù)性。
- 統(tǒng)一管理項(xiàng)目文件:有時(shí)候,一個(gè)項(xiàng)目可能有多個(gè)人協(xié)作開發(fā),每個(gè)人的開發(fā)環(huán)境和工作習(xí)慣都不同。為了避免不必要的沖突和錯(cuò)誤,可以使用.gitignore文件統(tǒng)一管理項(xiàng)目文件,確保每個(gè)人都使用相同的配置和約定。
示例:文章來源地址http://www.zghlxwxcb.cn/news/detail-645436.html
vim .gitignore
# 忽略所有以“.log”結(jié)尾的文件
*.log
# 忽略指定目錄下的所有文件和子目錄
node_modules/
# 忽略指定文件或目錄
my_secret_file.txt
logs/
# 忽略所有以“.swp”結(jié)尾的文件
*.swp
# 忽略指定擴(kuò)展名的文件
*.docx
# 忽略指定文件或目錄,以及所有以“.tmp”結(jié)尾的文件
temp/
*.tmp
[root@master-01 test_01]# git add .
[root@master-01 test_01]# git commit -m "gitignore"
[root@master-01 test_01]# git push origin master
到了這里,關(guān)于【2023】Git版本控制-遠(yuǎn)程倉庫詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!