1.Git使用技巧-基础原理

Git 使用技巧

文章目录

  • Git 使用技巧
  • 前言
  • 一、Git 安装
  • 二、搭建服务端仓库
  • 三、搭建客户端
    • 1. git 通信
    • 2. git支持的通信协议
    • 本地拉取代码
    • 3. 配置用户名和密码
      • 查看配置
  • 查看git 帮助
  • Git 工作流程
  • 总结
  • 参考


前言

Git 是一个开源的分布式代码版本控制系统,用于敏捷高效地处理任何或小或大的项目。


一、Git 安装

Git 安装分为两种:
linux 系统:
Centos 或者fedora 直接使用命令进行默认安装(建议 安装方便)或者通过源码安装。

sudo yum install git

ubuntu 系统安装。

sudo apt-get install git

验证是否安装成功:

git --version

windos系统:
在git 官网下载app进行安装Git 官网

二、搭建服务端仓库

在linux 系统搭建git 仓库服务端。
为了安全搭建空的仓库。
在搭建仓库的时候linux 使用user 权限。不要使用root 权限。避免后期提交代码出现问题。

git init --bare

三、搭建客户端

在windos 上搭建客户端。安装window app 即可

1. git 通信

git 采用ssh 进行通信。 git 客户端和仓库之间采用ssh协议通信,采用非对称加密的方式。 在windows 上创建公私钥。

创建公私钥:在git bash shell 下创建

ssh-keygen -t rsa   // 然后一路enter 

本地操作:
密钥的位置:
生成密钥位置:C:\Users\Administrator.ssh

然后复制公钥文件(id_rsa.pub)内容.
远端操作(服务端仓库):
cd /home/ubuntu_go/.ssh 目录下。赋值公钥内容到authorized_keys文件内,保存即可。 文件不存在创建即可。

2. git支持的通信协议

http/https,ssh, git 本身协议。

本地拉取代码

采用ssh 协议

git clone ssh://user_name@ip_addr:/code_brach

3. 配置用户名和密码

配置用户名和密码分为全局和局部;
全局配置:
如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情,Git 都会使用那些信息

// 进入仓库分支git  config --global config user.name ubuntu_gogit config --global  user.email ubuntu_go@qq.com //邮箱地址可以随便写,不进行验证

局部配置
设置每个文件夹都有用户名字和密码
想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

// 进入到分支路径下git config user.name ubuntu_gogit config  user.email ubuntu_go@qq.com  //邮箱地址可以随便写,不进行验证

查看配置

使用git config --list来查看git的所有配置
局部配置可以指这样查看:
进入本地仓库内.git 文件夹下面的config 文件内。

查看git 帮助

git help
man git

Git 工作流程

Git 工作流程如下所示:
GIt 管理分4部分: 本地工作区,暂存区,本地仓库,远端仓库。
本地工作区,暂存区,本地仓库是属于本地操作。
图1

功能解析
WorkSpace: 工作区域,平时存放项目代码地方;
Index/stage: 暂存区,用于标记你的改文件名,新建文件名等,事实上它只是一个文件,保存即将提交的文件列表信息。(git status 查看是否标记,git add file_name 添加标记)
Repository: 本地仓库区(或版本库) ,就是本地安全粗放囊数据的位置,这里买呢有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本;
Remote : 远程仓库,托管代码的服务器。

文件工作流程:

git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件git add到暂存区域;
3、将暂存区域的文件commit到git仓库;
4、本地的修改push到远程仓库,如果失败则执行第5步
5、git pull将远程仓库的修改拉取到本地,如果有冲突需要修改冲突。回到第三步

因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)


本地文件状态:
图2
文件状态解析:
在这里插入图片描述


总结

此文章主要是对git基础原理的介绍和基本git 安装部署等。

参考

Git教程

文章参考与<零声教育>的C/C++linux服务期高级架构系统教程学习:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot---定时任务实现

定时任务 1. scheduled注解实现1.1. 用法1.2. 参数详解1.2.1. cron1.2.2. zone1.2.3. fixedDelay1.2.4. fixedDelayString1.2.5. fixedRate1.2.6. fixedRateString1.2.7. initialDelay1.2.8. initialDelayString 1.3. 示例 1. scheduled注解实现 1.1. 用法 任意类中创建一个方…

vue 目录

vue学习资源 vue.js中文官网&#xff1a; http://cn.vuejs.org/ vue.js源码&#xff1a; https://github.com/vuejs/vue vue.js官方工具&#xff1a; https://github.com/vuejs vue.js英文官网&#xff1a; https://vuejs.org/ vue全家桶 介绍 介绍 【 Vue全家桶 Vue&#xff…

从零开始 Spring Boot 67:JPA 中的惰性元素

从零开始 Spring Boot 67&#xff1a;JPA 中的惰性元素 图源&#xff1a;简书 (jianshu.com) 惰性加载带来的问题 在实体类之间建立关系时&#xff0c;可以选择“惰性加载”&#xff0c;比如&#xff1a; Entity public class Student {// ...OneToMany(mappedBy "stu…

软件设计模式与体系结构-设计模式-行为型软件设计模式-状态模式

五、状态模式 概念 与策略模式类似&#xff0c;状态模式将不同状态下的行为封装在不同的类中&#xff0c;每个类代表一个状态 状态模式的组成 Context&#xff1a;定义了与客户程序的接口&#xff0c;它保持了一个concreteState的代表现在状态的实例State&#xff1a;定义了…

数据增强之裁剪、翻转与旋转

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 pytorch教程 也可获取。 文章目录 数据增强 Data Augmentation裁剪Croptransforms.CenterCroptransforms.RandomCroptransforms.RandomResizedCroptra…

数据库的备份与恢复(超详细讲解)

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于MySQL数据库的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.数据库的备份与恢复是什么 二. …

stable diffusion 调试天坑 (setup.py)

第一次下载V1的stable diffusion (https://github.com/CompVis/stable-diffusion) 到本地调试&#xff0c;根据其要求创建了虚拟环境&#xff0c;自动运行了setup.py文件&#xff0c;长这样 from setuptools import setup, find_packagessetup(namelatent-diffusion,version0.…

Android Studio实现内容丰富的安卓博客发布平台

如需源码可以添加q-------3290510686&#xff0c;也有演示视频演示具体功能&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动。 项目编号078 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看博客列表…

RabbitMQ系列(8)--实现RabbitMQ队列持久化及消息持久化

概念&#xff1a;在上一章文章中我们演示了消费者宕机的情况下消息没有被消费成功后会重新入队&#xff0c;然后再被消费&#xff0c;但如何保障RabbitMQ服务停掉的情况下&#xff0c;生产者发过来的消息不会丢失&#xff0c;这时候我们为了消息不会丢失就需要将队列和消息都标…

MAYA传送带上放石头(新旧粒子系统)

播放试试 使用老的粒子系统 particleShape1.shuliangrand(0,5); particleShape1.daxiao<<rand(0.2,0.5),rand(0.2,0.5),rand(0.2,0.5)>>; particleShape1.xuanzhuan<<rand(360),rand(360),rand(360)>>; 使用新的粒子系统 粒子向后滑落 新粒子系统能进行…

33.RocketMQ之Broker启动源码

highlight: arduino-light Broker启动流程:BrokerStartup#main java public static void main(String[] args) { //手动指定了 nameServer start(createBrokerController(args)); } java public static BrokerController start(BrokerController controller)…

计算机网络 - http协议 与 https协议(2)

前言 本篇介绍了构造http请求的的五种方式&#xff0c;简单的使用postman构造http请求&#xff0c;进一步了解https, 学习https的加密过程&#xff0c;了解对称密钥与非对称密钥对于加密是如何进行的&#xff0c;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流…