当前位置: 首页 > news >正文

【Git】:远程仓库操作

远程仓库操作

  • 一.理解版本控制系统
  • 二.远程仓库
    • 1.克隆
    • 2.Push操作
    • 3.fetch操作
    • 4. .gitnore文件

一.理解版本控制系统

我们⽬前所说的所有内容(⼯作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者计算机上。⽽我们的Git其实是分布式版本控制系统

可以简单理解为,我们每个⼈的电脑上都是⼀个完整的版本库,这样你⼯作的时候,就不需要联⽹了,因为版本库就在你⾃⼰的电脑上。既然每个⼈电脑上都有⼀个完整的版本库,那多个⼈如何协作呢?⽐⽅说你在⾃⼰电脑上改了⽂件A,你的同事也在他的电脑上改了⽂件A,这时,你们俩之间只需把各⾃的修改推送给对⽅,就可以互相看到对⽅的修改了。

分布式版本控制系统的安全性要⾼很多,因为每个⼈电脑⾥都有完整的版本库,某⼀个⼈的电脑坏掉了不要紧,随便从其他⼈那⾥复制⼀个就可以了。

在实际使⽤分布式版本控制系统的时候,其实很少在两⼈之间的电脑上推送版本库的修改,因为可能你们俩不在⼀个局域⽹内,两台电脑互相访问不了。也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有⼀台充当“中央服务器”的电脑,但这个服务器的作⽤仅仅是⽤来⽅便“交换”⼤家的修改,没有它⼤家也⼀样⼲活,只是交换修改不⽅便⽽已。有了这个“中央服务器”的电脑,这样就不怕本地出现什么故障(⽐如运⽓差,硬盘坏了,上⾯的所有东西全部丢失,包括git的所有内容)。

在这里插入图片描述

二.远程仓库

1.克隆

1.在gitee上创建一个远程仓库(中央服务器)**

在这里插入图片描述

在这里插入图片描述

仓库是由成员得的,可以添加删除成员,gitee有4种成员,具体的权限,可以点击问号查询。

在这里插入图片描述

1.ReadMe文件:仓库第一个创建的文件,每当有访客进入时,看到的第一个文件就是ReadMe文件,它可以用来写一些使用方法....
2.issues:是其它人员发现BUG或者其它时与仓库成员进行交流的平台。
3.PullRequest:是一个合并申请单。当有分支想与其它分支合并时,需要给仓库管理员发一张申请单。

2.克隆远程仓库

在这里插入图片描述

注意:在克隆时不能在本地仓库路径下执行,其它地方都可。

在这里插入图片描述

查看远程仓库的名字(默认是origin)

在这里插入图片描述

如果想看更详细的可以加上-v选项。

在这里插入图片描述

这里的push和fecth代表我们拥有对远程仓库的推拉权限,也就是读取和上传的权限。

在这里插入图片描述

2.Push操作

1.查看配置

主要查看名字和邮箱是否与gitee上的一致。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如果写错了可以用git config --global --unset +[name]删除。

2.Push操作

将本地操作的某一个分支的修改内容Push到远程仓库。

在这里插入图片描述

下面是一些本地操作,就一笔带过。

在这里插入图片描述

接着向远程仓库里的master分支推送。语法:git push+仓库名+分支名

在这里插入图片描述

在这里插入图片描述

3.fetch操作

如果仓库的代码更新了,我们需要获取新的代码,就要使用拉取功能了(实际上是拉取+合并功能)。语法;git pull+仓库名+分支名(:+本地分支名)。

在这里插入图片描述

在这里插入图片描述

4. .gitnore文件

在创建仓库时有一个.gitgnore文件,那么这个文件是干什么的呢?

在这里插入图片描述

在⽇常开发中,我们有些⽂件不想或者不应该提交到远端,⽐如保存了数据库密码的配置⽂件,那怎么让Git知道呢?在Git⼯作区的根⽬录下创建⼀个特殊的 .gitignore ⽂件,然后把要忽略的⽂件名填进去,Git就会⾃动忽略这些⽂件了。

不需要从头写 .gitignore ⽂件,gitee在创建仓库时就可以为我们⽣成,不过需要我们主动勾选⼀下,不过由于我们创建时没有勾选,所以这里来自己手写一个.gitgnore。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

当我们创建一个.so文件后,git并没有更新它的状态,因为我们忽略了.so文件,让git不对它进行追踪。

新的需求

如果我们创建了一个c.so文件,想让它被提交怎么办呢?

1.git add -f +文件名
2.修改.gitignore。

在这里插入图片描述

如果有一天.gitignore文件特别长,导致我们都记不清哪些文件被忽略了,git也提供了一种查找办法。

在这里插入图片描述

相关文章:

  • 祝贺!湖南天府生态农业有限公司喜获“湖南省生猪核心育种场”授牌
  • 使用傅里叶实现100倍的压缩效果(附Python源码)
  • 【TCP/IP】组播
  • WPF 控件禁用时,显示悬浮提示
  • http协议工具:apache详解
  • 数学建模:BP神经网络(含python实现)
  • geoserver 热力图样式
  • 从kafka如何保证数据一致性看通常数据一致性设计
  • 利用LaTex批量将eps转pdf、png转eps、eps转png、eps转svg
  • 这才开工没几天收到Offer了,简历改的好,找工作没烦恼。
  • 基于ant的图片上传组件封装(复制即可使用)
  • 2个wordpress优化SEO主题模板
  • TypeScript基础知识点
  • 捕捉消费新趋势,脉纷纷让生活更便捷
  • 学习鸿蒙基础(4)
  • css系列之关于字体的事
  • JavaScript 基本功--面试宝典
  • node学习系列之简单文件上传
  • 多线程 start 和 run 方法到底有什么区别?
  • 二维平面内的碰撞检测【一】
  • 番外篇1:在Windows环境下安装JDK
  • 简单数学运算程序(不定期更新)
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 聊聊flink的BlobWriter
  • 深度学习中的信息论知识详解
  • 试着探索高并发下的系统架构面貌
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 首页查询功能的一次实现过程
  • 我是如何设计 Upload 上传组件的
  • 学习笔记:对象,原型和继承(1)
  • 积累各种好的链接
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​iOS安全加固方法及实现
  • ​ssh免密码登录设置及问题总结
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • %check_box% in rails :coditions={:has_many , :through}
  • (12)Linux 常见的三种进程状态
  • (C语言)共用体union的用法举例
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)EOS中账户、钱包和密钥的关系
  • ***检测工具之RKHunter AIDE
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .NET CLR Hosting 简介
  • .NET MVC第五章、模型绑定获取表单数据
  • .NetCore项目nginx发布
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net专家(高海东的专栏)
  • /etc/sudoers (root权限管理)
  • @JoinTable会自动删除关联表的数据