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 
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐