目录
- 创建远程仓库
- 向远程仓库推送数据文件
- 从第二台主机本地拉取远程仓库数据
- 第一台主机同步远程仓库数据
- tag标签
- git忽略文件
Git远程仓库是Git版本控制系统的一个概念,它是一个存储Git代码的远程服务器。
你可以将本地Git仓库上传到远程仓库,以便与其他人协作开发或备份代码。
创建远程仓库
远程仓库可以使用第三方平台,如(github、gitlab、gitee)等,这里使用的仓库为gitee
。
地址为:https://gitee.com/
- 需自行创建账号登录
- 点击“+”号——点击新建仓库
- 填写仓库信息(除了仓库名其他都不重要)
向远程仓库推送数据文件
- 在本地添加远程仓库
- 根据上一篇文章创建的本地仓库添加远程仓库,如果没有需要创建本地仓库
- 地址为仓库地址,创建完成会看到
[root@jenkins cangku]# git remote add origin https://gitee.com/yyang2/test_01.git
- 将本地仓库文件推送到远程仓库测试
[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.
注意账号密码是你创建仓库时自定义的,一定要自己记住。
此时master分支上的两个文件已经推送到远程仓库了
从第二台主机本地拉取远程仓库数据
- 创建公钥,存放至远程仓库,不然拉取会失败
[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
- 复制公钥然后按下图步骤操作,确定后需要输入仓库密码确认
- 在本地选择个合适的目录,克隆远程仓库时用
[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
接收对象中: 100% (20/20), done.
[root@master-01 yu_cangku]# ls
test_01
[root@master-01 yu_cangku]# ls test_01/
file1.txt hehe.py
- 增加内容再推送至远程仓库
[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 "远程编辑 -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
- 在远程仓库刷新查看内容
发现了新增加的内容,说明过程是成功的。
第一台主机同步远程仓库数据
- 当远程仓库数据优先于本地仓库,需要同步,如果已经克隆过仓库,可使用以下命令同步
[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
- 第二台这时可以用以下命令同步数据
git pull origin master
tag标签
Git中的标签(tag)主要有以下作用:
1️⃣:标记软件版本:标签最常用的用途就是标记软件版本,类似于在代码的进化过程中某一天突然进行了一次正式的版本发布,或者修复了一个重要的漏洞,或者进行了某些功能的改进等,这些具有里程碑意义的事件发生时,我们可以为其打上一个标签,以方便后续的管理和追踪。
2️⃣:分支过度标签:当Git的分支过多的时候,此时便可以利用标签来对分支进行过度,这样可以减少分支的数量。
3️⃣:轻量级引用:标签其实就是一个指向某个commit的轻量级引用,打了标签后,就可以通过标签来引用这个提交。
- tag的使用方法
[root@jenkins cangku]# git tag v1.0
[root@jenkins cangku]# git tag
v1.0
此时只是将本地仓库做了标签,且为最新内容
- 将tag标签同步到远程仓库
[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
-
再远程仓库查看
-
指定id号进行标签操作
git tag -a v1.0 [id] -m "v1.0"
- 查看tag标签对应的id版本
[root@jenkins cangku]# git show v1.0
commit c5ad2ac2778758c0c6274427bc9fdaf172fd5779
Author: yuancheng <yuancheng@example.com>
Date: Fri Aug 4 17:52:58 2023 +0800
远程 -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是一个特殊的文件,用于告诉Git哪些文件或目录不应该被纳入版本控制。在Git仓库中,有些文件或目录可能包含敏感信息、临时文件或者不需要被跟踪的文件,这些文件不应该被包含在Git仓库中。通过使用.gitignore文件,开发者可以告诉Git哪些文件需要被忽略,从而避免将这些文件包含在版本控制中,提高Git仓库的可维护性和安全性。
gitignore文件的主要作用有以下几个方面:
- 忽略敏感信息和不必要的文件:在一个Git仓库中,有些文件可能包含敏感信息,例如API密钥、密码等。这些信息不应该被包含在版本控制中,因为一旦泄露,可能会对项目或者用户造成严重的损失。通过使用.gitignore文件,开发者可以将这些敏感信息所在的文件或目录添加到忽略列表,从而避免将其包含在Git仓库中。
- 忽略临时文件和目录:有些文件和目录是临时性的,不需要被版本控制管理。例如,编译生成的中间文件、日志文件、配置文件等。通过添加到.gitignore文件,可以避免将这些文件包含在Git仓库中,提高仓库的整洁性和可维护性。
- 统一管理项目文件:有时候,一个项目可能有多个人协作开发,每个人的开发环境和工作习惯都不同。为了避免不必要的冲突和错误,可以使用.gitignore文件统一管理项目文件,确保每个人都使用相同的配置和约定。
示例:
vim .gitignore
# 忽略所有以“.log”结尾的文件
*.log
# 忽略指定目录下的所有文件和子目录
node_modules/
# 忽略指定文件或目录
my_secret_file.txt
logs/
# 忽略所有以“.swp”结尾的文件
*.swp
# 忽略指定扩展名的文件
*.docx
# 忽略指定文件或目录,以及所有以“.tmp”结尾的文件
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