Git使用:实现文件在不同设备之间进行同步

news2024/11/16 10:25:45

一、注册Gitee,创建远程仓库

        注册网址:登录 - Gitee.com

        打开Gitee,注册完进行登录,点击右上角【+】创建一个仓库

        新建仓库:

        点击创建,仓库创建完毕。

二、下载Git安装包,并创建本地仓库

        下载网址:Git - Downloads

         等待下载完成,打开安装,可以使用默认的配置一直点Next即可。

1.创建本地仓库

        其实本质上就是创建一个文件夹,只是在Git有一个高大上的名字叫仓库。事实上,也是有一点不同的,就是仓库需要通过一些配置才可以和远程仓库关联上。

        假设我在自己电脑windows平台上创建一个文件夹gitee用来存放所有的仓库,即:

        E:\2023second project\gitee

2.配置ssh key,关联本地和远程仓库

        上文中本地仓库和远程仓库都准备好了,现在就是打通二者的关联。在刚刚创建的gitee文件夹里右键点击Open Git Bash here

         先做一下简单的配置:

git init #初始化本地仓库
git config --global user.name "【你的用户名】" #声明操作的用户名字,会出现在提交记录中
git config --global user.email "【你的邮箱】" #声明操作的用户邮箱,会出现在提交记录中

        提示:Git Bash的复制快捷键是Ctrl+insert,粘贴是shift+insert。

        接着生成密钥,中间会有一个询问过程,全部敲enter键,一般是有3次。

ssh-keygen -t rsa -C "【你的邮箱】" #生成密钥ssh

        红框后面就是生成的公钥位置 

         接下来用cat命令查看对应文件内容,以下命令会返回公钥内容,复制添加到gitee上就可以进行联通了。登录Gitee后点击头像->设置->ssh公钥,根据提示粘贴链接并取个名字备忘。  

cat /c/Users/Administrator/.ssh/id_rsa.pub #查看公钥,注意改为自己的路径

        添加完公钥确定,然后回到Git Bash,输入一下命令查看是否添加成功,中间需要输入一次yes。

ssh -T git@gitee.com #查看是否添加成功

        连接远程仓库,复制刚刚创建的远程仓库链接:

        执行如下命令,把ssz-ssz改为自己的用户名,把401_second_project改为自己的仓库:

git remote add origin https://gitee.com/ssz-ssz/401_second_project.git #链接远程仓库origin

        接下来可以使用一下命令查看连接的远程仓库地址:

git remote -v #查看连接的远程仓库

        至此,完成基本环境的搭建。 

三、ubuntu端上传文件

1.创建本地仓库,配置git 

        其中ubuntu端配置git环境和windows端基本一致,命令如下:

#若没有git,安装git
sudo apt-get update
sudo apt-get install git

#创建401_gitee文件夹,把要上传的代码拷贝到这个文件夹
cd 401_gitee
git init #初始化仓库
git config --global user.name "【自己用户名】" #声明操作的用户名字,会出现在提交记录中
git config --global user.email "【自己邮箱】" #声明操作的用户邮箱,会出现在提交记录中
ssh-keygen -t rsa -C "自己邮箱" #生成密钥ssh
cat /home/txz/.ssh/id_rsa.pub # 查看公钥,注意改为自己的路径
ssh -T git@gitee.com #查看是否添加ssh成功,注意要输入一个yes
git remote add origin https://gitee.com/ssz-ssz/401_second_project.git #连接远程库origin
git remote -v #查看连接的远程库地址

2.提交本地文件

git pullgit clone都是用于与远程仓库交互的Git命令,但它们的用途和行为有所不同:

  • git clone是用来克隆一个远程仓库的命令。它会创建一个新的目录,初始化一个.git目录,拉取远程仓库的所有数据,创建一个指向远程仓库的origin的远程跟踪分支,并在本地创建一个master分支作为origin的一个副本。这个命令通常只在你第一次获取远程仓库时使用。

  • git pull则是用来更新本地仓库的命令。它实际上是git fetchgit merge的组合,即它会拉取远程仓库的新数据(git fetch),然后将这些新数据合并到你当前的工作分支中(git merge)。这个命令用于已经克隆过的仓库,当你想要获取最新的更改时使用。

简而言之,git clone用于初次复制仓库,而git pull用于已克隆的仓库同步最新更改。因此,git pull不能用git clone来代替,因为git clone会创建一个全新的仓库副本,而不是更新现有的工作副本。如果你在一个已经克隆的仓库中使用git clone,它会在你的本地创建一个新的仓库目录,这并不是更新操作。

 

        将仓库里面的readme文件全部删除,把项目文件全部拷贝到401_second_project文件夹中

git add 401_second_project/*  #将工作区文件提交到暂存区
git commit -m "提交最原始文件" #将暂存区文件提交到本地版本库
git push -u origin master #推送到远程库,首次需要-u,之后可以省略,master为分支名

         此时在远端仓库就可以看到推送的文件:

此后想在本地工作区修改代码文件,创建一个分支second_coputer,其不回影响主干分支:

git branch second_computer #创建分支second_computer
git checkout second_computer #切换分支
cd 401_second_project/ #进入要修改的文件夹
gedit ReadMe.txt #修改文件内容
git add ReadMe.txt #将工作区文件提交到暂存区
git commit -m "second_computer:加入测试文本" #将暂存区文件提交到版本库
#如果此时发现提交到版本库的东西还要改,则执行命令git reset --soft HEAD^撤销上次提交
git checkout master #再次切换到master分支
git merge second_computer #合并second_computer到主分支
git push origin master #把主分支推送到远程库

如果远程仓库通过别人对文件进行了修改,ubuntu端想要获取最新文件则执行如下命令

git pull origin #拉取远程库文件并合并到本地仓库
或者
git fetch origin #拉取远程库文件
git merge origin/master #合并到本地仓库,将origin合并到本地指定分支

四、windows端下载ubuntu提交到gitee上面的代码并修改,然后提交

mkdir gitee #首先创建一个想要放工程的文件夹
cd gitee
git clone https://gitee.com/ssz-ssz/401_second_project.git #把远程仓库文件克隆到这个文件夹

以后想同步远程仓库文件

git pull origin #拉取远程库文件并合并到本地

当然也可以对文件进行修改然后上传到远程仓库,步骤和ubuntu端修改文件一样,也要创建一个分支,防止影响主干程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1541231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

正则表达式具体用法大全~持续更新

# 正则表达式: ## 单字符匹配: python # 匹配某个字符串: # text "abc" # ret re.match(b,text) # print(ret.group()) # 点(.):匹配任意的字符(除了\n): # text "\nabc&quo…

day02_mysql-DDLDMLDQL_课后练习 - 参考答案

文章目录 day02_mysql_课后练习第1题第2题 day02_mysql_课后练习 第1题 案例: 1、创建数据库test02_library 2、创建表格books 字段名字段说明数据类型b_id书编号int(11)b_name书名varchar(50)authors作者varchar(100)price价格floatpub…

【C语言】——指针四:字符指针与函数指针变量

【C语言】——指针四:字符指针与函数指针变量 一、字符指针二、函数指针变量2.1、 函数指针变量的创建2.2、两段有趣的代码 三、typedef关键字3.1、typedef的使用3.2、typedef与define比较 四、函数指针数组 一、字符指针 在前面的学习中,我们知道有一种…

FaceBook广告账号验证教程

1.登录facebook账号,点击左边的ads manager。 2.点击Create ad创建广告。 3.选择广告投放意向。 4.填写广告信息。 5.创建广告后选择付款方式,这里我是使用信用卡付款。这里我是使用Fomepay的虚拟卡进行绑定的。 6.填写信用卡的持卡人姓名 卡号 有效期 安全码 7.填写…

【Jenkins】群晖 配置 ssh over push 插件

群晖 配置 ssh over push 插件 前提 部署好 Jenkins 且 安装 好 ssh over push 插件 开启 群晖 ssh 服务 及 SFTP 服务 配置 Jenkins Jenkins ——系统管理——publish over ssh 测试下: 遇到的问题: jenkins.plugins.publish_over.BapPublishe…

数据容器-序列-集合-Python

师从黑马程序员 序列 序列的常用操作-切片 切片:从一个序列中,取出一个子序列 语法:序列[起始下标:结束下标,步长] 注:此操作不会影响序列本身,而是会得到一个新的序列 my_list[0.1,2,3,4,5,6] result1…

LeetCode-热题100:79. 单词搜索

题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相…

解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法

解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法 理想汽车的工作,原文,BEV-CLIP: Multi-modal BEV Retrieval Methodology for Complex Scene in Autonomous Driving 链接:https://arxiv.org/pdf/2401.…

C++函数返回机制,返回类型

return语句终止当前正在执行的函数并将控制权返回到调用该函数的地方。 return语句有两种形式 return;return expression; 无返回值函数 没有返回值的return语句只能用在返回类型是void的函数中。 返回void的函数不要求必须有return语句,因为这类函数的最后一句…

手撕算法-接雨水

描述 分析 i位置能积累的雨水量,等于其左右两边最大高度的最小值。为了能获取i位置左右两边的最大高度。使用动态规划。两个dp数组: leftMaxrightMax 其中 leftMax[i] 代表i位置左边的最大高度rightMax[i] 代表i位置右边的最大高度 初始状态&#x…

新手装修:卫生间渗水原因及解决方法。福州中宅装饰,福州装修

引言 瓷砖渗水问题常常发生在卫生间区域,需要及时处理以免造成地面滑倒和墙面霉菌等问题,为了解决这一问题,我们应该怎么做呢? 首先要检查水管是否漏水,可以进行打压测试来确认是否存在漏水情况。如果发现水管破损造成…

php 快速入门(一)

一、配置系统环境 1.1 安装软件 1、安装php的开发软件:phpstorm 在这个软件中写代码 2、安装php的运行软件:phpstduy 写好的php程序需要放到phpstduy中,用户才能访问和测试 安装过程注意事项:安装的路径中不能有空格和中文字符&…

什么是 PDAF?它是如何工作的?相位检测自动对焦解释

常见问题解答 什么是相位对焦 PDAF 代表相位检测自动对焦。这是一种自动对焦方法,可以检测光线进入相机时的行进和交汇位置。在智能手机中,这是在传感器级别完成的。为了使物体聚焦,光线应该在同一点相遇。如果不这样做,系统将确定如何调整镜头以达到焦点。 PDAF 好用吗…

HTTP --- 下

目录 1. HTTP请求方式 1.1. HTML 表单 1.2. GET && POST方法 1.2.1. 用 GET 方法提交表单数据 1.2.2. 用 POST 方法提交表单数据 1.2.3. 总结 1.3. 其他方法 2. HTTP的状态码 2.1. 重定向 2.1.1. 临时重定向 && 永久重定向 2.1.2. 302 &&…

UE5 C++ 3D血条 响应人物受伤 案例

一.3Dwidget 1.创建C Userwidget的 MyHealthWidget,声明当前血量和最大血量 UCLASS() class PRACTICEC_API UMyHealthWidget : public UUserWidget {GENERATED_BODY() public:UPROPERTY(EditAnywhere,BlueprintReadWrite,Category "MyWidget")float C…

基于Springboot+Vue的在线考试系统!免费领取源码

今天给大家分享一套基于SpringbootVue的在线考试系统源码,在实际项目中可以直接复用。(免费提供,文末自取) 一、系统运行图 1、登陆页面 2、后台管理 3、全套环境资源 二、源码免费领取方式 关注本号,回复 考试 关注本号,回复…

【数据结构】快速排序(用递归)

大家好,我是苏貝,本篇博客带大家了解快速排序,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 基本思想二. 快速排序2.1 hoare版本2.2 挖坑法2.3 前后指针法2.4 快速排序优化三数取中法…

数据结构:堆和二叉树遍历

堆的特征 1.堆是一个完全二叉树 2.堆分为大堆和小堆。大堆:左右节点都小于根节点 小堆:左右节点都大于根节点 堆的应用:堆排序,topk问题 堆排序 堆排序的思路: 1.升序排序,建小堆。堆顶就是这个堆最小…

设计模式-访问者(Visitor)模式详解和应用

文章目录 前言访问者模式介绍结构包含的角色应用场景代码示例访问者模式的扩展访问者模式优缺点总结 前言 最近在做一个根据数学表达式生成java执行代码的功能,其中用到了访问者模式。使我对访问者模式有了更深入的理解。故写下此篇文章分享出来,不足之…

ios逆向某易新闻 md5+aes

本期的案例比较简单,也许是ios逆向算法本来就比较简单的原因,所以前面我就多扯一些爬虫和逆向的东西。之前写的文章都是js逆向和android逆向的案例,这也是首篇ios的案例,所以会从入门开始讲起。 3大逆向对比 首先爬虫工程师大部…