Git学习(mac)

news2024/9/23 15:26:52

Git基础

1.安装与配置

  • 下载与安装:git官网

  • 使用入口:

    • win:右键菜单 git bash

    • Mac: 终端

  • 查看git版本:

    git --version
    
  • 使用Git工作之前,我们需要做个一次性的配置。方便后续Git能跟踪到谁做了修改,我们需 要设置对应的用户名与邮箱地址

    git config --global user.name "your_username"
    
    git config --global user.email "your_email@domain.com"
    
    git config --list 查看所有配置
    
  • 注意 git config 命令的 --global 参数,用了这个参数,表示你这台机器上所有的Git仓库都会 使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

2.Git 文件的三种状态与工作模式

版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件当前什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git仓库,不参与版本控制.通过git add 状态变为Staged.
  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹完全一致.这种类型的文件有两种去处,如果它被修改,而变为Modified.如果使用git rm 移出版本库,则成为Untracked文件.
  • Modified:文件已修改,仅仅是修改,并没有进行其他的操作.这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout,则丢弃修改过,返回unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改!
  • Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态.执行git reset HEAD filename取消暂存,文件状态为Modified
#查看制定文件状态
git status [文件名]

#查看所有文件状态
git status

#添加所有文件到暂存区
git add . 

#提交暂存区中的内容到本地仓库 -m:提交的信息
git commit -m "信息"

  • 工作区:简单理解为电脑中的目录,比如自己创建的本地目录,就是平时存放项目代码的地方
  • 暂存区:类似一个缓存区,用于临时存放你的改动,事实上它是一个文件,保存即将提交的列表信息
  • 仓库区:就是安全存放数据的位置,这里有你提交到所有版本的数据,其中HEAD指向最新放入仓库的版本工作区,一般会有一个.git文件,它是git的版本库,包含了我们修改提交的信息,一般是隐藏的,mac可以使用comand+shift+. 展开
  • Remote Repository:远程仓库,一般看作第四种状态,托管代码的服务器(github),可以简单的认为是你项目组中的一台电脑用于远程数据交换

版本库又名仓库,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来, 每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可 以“还原”。

然后基本的git工作流程就是:

  1. 在工作中添加,修改文件

  2. 将需要进行的版本管理的文件放入暂存区域

  3. 将暂存区域文件提交到git仓库

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

3.本地仓库

什么是仓库?仓库又名版本库,英文名repository,我们可以简单理解为一个目录,用于存放代码的,这个目录里面的所有软件都可以被Git管理起来,每个文件的修改、删除等操作Git都能跟踪到。本地仓库就是未被push到远程仓库的仓库(如github),这个仓库在我们电脑里被git管理。

获取git仓库一般有两种方法:

  • 初始化git 本地仓库,新建一个文件自己把它设置为一个仓库进行管理

    git init <"file url">
    
  • 从github上克隆仓库

    git clone <"github file url">
    

日常使用只需要记住下图6个命令:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XyduZOKt-1688618280955)(/Users/zhangkai/Library/Application Support/typora-user-images/image-20230705161629731.png)]

3.1 初始化本地仓库

  1. 新建一个test文件夹,将其初始化,初始化了一个空的仓库,目录下多了.git目录,.git文件很重要,一般是隐藏的需要手动设置进行显示,它记录了版本的每次改变,关于版本等所有信息都在这个目录里面

    git init /Users/xxx/Desktop/test 
    

2.在之前初始化仓库的文件夹中新建一个Hello.txt文件来测试:先执行git status查看文件状态,通过git status 命令看到此时Hello.txt文件在暂存区中。

3.发现Hello.txt文件未被跟踪,然后我们先执行git add . (.是当前目录所有文件,也可以指定文件名)命令,再执行git status

4.发现Hello.txt已经放入暂存区了,等待提交,这时候再执行git commit -m “加入本次提交的记录说明(注释)方便后续查看提交或改动记录”,最后再一次执行git status查看 ** 可以发现提交暂存区文件到本地版本库中。

发现文件已经提交成功了,没有可提交的文件

5.忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立“.gitignore”文件,此文件有如下规则:

1.忽略文件中的空行或以井号(# )开始的行将会被忽略。
2.可以使用Linux通配符。例如∶星号(*)代表任意多个字符,问号(﹖)代表一个字符,方括号([abc] )代表可选字符范围,大括号( {string1,string2……})代表可选的字符串等。
3.如果名称的最前面有一个感叹号( !),表示例外规则,将不被忽略。
4.如果名称的最前面是一个路径分隔符(/ ),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
5.如果名称的最后面是一个路径分隔符(/ ),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目 录都忽略)。

例如以下这些实例:

*.txt   #忽略所有的.txt结尾的文件
!lib.txt  #但lib.txt除外
/temp  #进忽略项目根目录下的TODO文件,不包括其他目录temp
bulid/  #忽略bulid目录下的所有文件
doc/*.txt #会忽略doc/notes.txt 但是不包括doc/sever/arch.txt

6.时光穿梭机—版本回退

步骤:

1.查看版本,确定需要回到的刻点

指令:git log(log是日志的意思)或 git log --pretty=online (常用)

我们将Hello.txt中内容修改一下再次add和commit

然后我们进行版本回退,首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交645465d...,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

回退上一版本

也可以利用另一种方式:

git reset --hard 提交编号(commit id)

要是不记得刚才的版本号了,可以使用以下命令:

git reflog

3.2 从github上克隆远程仓库

git clone <url>

4.将本地仓库托管到github

1.链接远程仓库到本地(要在当前文件路径下操作)

git remote add origin <远程仓库链接>

2.将本地文件推送到远程仓库

git push 仓库名 分支名
eg:
git push test main

3.输入用户名和密码 但是这种方式github已经禁止了,所以采用token令牌验证

输入用户名
获取token令牌-->github中的settings->developer settings->personal access tokens-->tokens(classic)-->复制tokens
输入密码(用tokens代替密码)

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

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

相关文章

第四章——复合类型

数组 数组&#xff08;array&#xff09;是一种数据格式&#xff0c;能够存储多个同类型的值。例如30个int类型的值&#xff0c;12个float类型的值。每个值都存储在一个独立的数组元素中&#xff0c;计算机在内存中依次存储数组的各个元素。 创建数组时应指出以下三点&#x…

10.1UEC++/UObject

1. 1.new出的对象&#xff0c;不用自己管理内存释放&#xff1b; 2.比如两个类对象指针a,b同时指向一个苹果&#xff0c;若苹果消亡&#xff0c;会将a,b同时指向空。 3.保存时&#xff0c;将工程中的actor&#xff0c;属性等能够保存在本地就是uob在发挥作用。 4.不管在ue&…

自然语言处理实战项目12-基于注意力机制的CNN-BiGRU模型的情感分析任务的实践

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下自然语言处理实战项目12-基于注意力机制的CNN-BiGRU模型的情感分析任务的实践&#xff0c;本文将介绍一种基于注意力机制的CNN-BiGRU模型&#xff0c;并将其应用于实际项目中。我们将使用多条CSV数据样例&#xff0…

虚拟机ubuntu系统IP地址变成127.0.0.1了

使用sudo dhclient -v指令动态获取IP地址 注意要把电脑网线拔掉&#xff0c;如果WIFI和有线同时连着设备就会出现如下情况 拔掉网线后正常

网络应用基础交换机(NETBASE第五课)

网络应用基础交换机&#xff08;NETBASE第五课&#xff09; 交换机的定义 交换是按照通信两端传输信息的需要&#xff0c;用人工或设备自动完成的方法&#xff0c;把要传输的信息送到符合要求的相应路由上的技术的统称。交换机根据工作位置的不同&#xff0c;可以分为广域网交…

Tubi 时间序列 KPI 的异常值检测

欢迎来到 Tubi—— 在这里&#xff0c;广告型视频点播永不停歇&#xff01; 作为全球最大的流媒体服务之一&#xff0c;Tubi 保持稳定增长&#xff0c;并始终关注对业务发展至关重要的前沿趋势。基于此&#xff0c;Tubi 数据科学团队创建了一套全新警报系统&#xff0c;对 Key…

【Kubernetes运维篇】RBAC认证授权详解(一)

文章目录 一、RBAC授权认证理论知识1、什么是RBAC授权&#xff1f;2、认证基本流程3、K8S客户端访问apiserver的认证几方式1、第一种&#xff1a;客户端认证2、第二种&#xff1a;Bearertoken方式3、第三种&#xff1a;Serviceaccount方式 4、RBAC授权常见角色绑定方式1、第一种…

安装OSAR_Co_X

在找开源的QSAR平台 在WOS里用“open source”、“QSAR”、“platform”为关键字找到一个描述QSAR-Co-X的文献&#xff0c;这是一个基于python开发的QSAR平台&#xff08;额&#xff0c;&#xff0c;&#xff0c;目前还不是很清楚&#xff09;。 根据链接找到Github里代码的所…

讲故事vs讲知识,区别太大

讲故事vs讲知识&#xff0c;区别很大 以故事化的方式讲知识&#xff0c;一般受众爱听 讲故事&#xff0c;通常受众爱听 趣讲大白话&#xff1a;但不是所有的故事都爱听 【趣讲信息科技219期】 #非著名IT人安志强的趣味笔记# **************************** 有一小部分故事&#…

CTFshow-pwn入门-栈溢出pwn49(静态链接pwn-mprotect函数的应用)

pwn49 首先我们先将pwn文件下载下来&#xff0c;然后赋上可执行权限&#xff0c;再来查看pwn文件的保护信息。 chomd x pwn checksec pwn file pwn我们可以看到这是一个32位的pwn文件&#xff0c;并且保护信息开启了NX和canary&#xff0c;也就是堆栈不可执行且有canary。最最…

算数运算符

运算符介绍&#xff1a;运算符是一种特殊的符号&#xff0c;用以表示数据的运算、赋值和比较等。 算术运算符赋值运算符关系运算符逻辑运算符位运算符三元运算符 算术运算符 算术运算符是对数值类型的变量进行运算的。 % 取模&#xff0c;取余 在 % 的本质&#xff0c;a % b…

UE5.1.1 C++从0开始(17.GAS游戏能力系统)

教程的链接&#xff1a;https://www.bilibili.com/video/BV1nU4y1X7iQ 教程内的老师没用GAS的插件&#xff0c;而是自己写了一个。这一篇文章只是开头&#xff0c;还有很多的内容没有往里面写。 新增了一个object类&#xff0c;新增了一个使用这个类的组件。然后把这个组件用…

text-to-3d方面的论文列表分享

以下给出几篇我个人觉得比较有价值的text-to-3d的论文列表&#xff0c;论文的超链接会连接到arxiv上。 DreamfusionFantasia3DTangoLatent-NeRFMagic-3dClip-ForgeClip-MeshDreamfieldAvatarCLIPPoint-EShape-EText2Mesh

P3804 【模板】后缀自动机(SAM)

题目描述 给定一个只包含小写字母的字符串 S。 请你求出 S 的所有出现次数不为 11 的子串的出现次数乘上该子串长度的最大值。 输入格式 一行一个仅包含小写字母的字符串 S。 输出格式 一个整数&#xff0c;为所求答案。 题解&#xff1a;这里就不讲后缀自动机的模板相关…

zigbee学习之DHT11温湿度传感器+zigbee无线通信

开发环境&#xff1a;IAR烧录器串口调试助手CC2530DHT11 两个模块&#xff1a;一个作为协调器&#xff0c;负责接收数据&#xff0c;一个作为终端&#xff0c;负责发送数据 步骤&#xff1a; 1、SampleApp.c里配引脚P0_6(查看硬件上的标识) 2、DTH11.c里配引脚 3、修改PANID和信…

超纯水抛光混床树脂的选择及工艺流程

一、什么是超纯水&#xff1f; 既将水中的导电介质几乎完全去除&#xff0c;又将水中不离解的胶体物质、气体及有机物均去除至很低程度的水。电阻率大于18MΩ*cm&#xff0c;或接近18.3MΩ*cm极限值。 超纯水是科技界为了研制超纯材料&#xff08;半导体原件材料、纳米精细陶…

服务器搭建oracle,并远程连接教程

下载两个压缩包&#xff0c;然后上传到服务器&#xff0c; 软件安装09&#xff1a;CentOS安装Oracle - 虚拟机 - 5997CK - 欢迎您! (hezhilin.online) 这里有全部步骤&#xff0c;反正过了几天我也会忘记&#xff0c;不赘述了。 直接上拆的坑&#xff1a; 开启服务器端口后…

借书问题-2022年全国青少年信息素养大赛Python国赛第3题

[导读]&#xff1a;超平老师计划推出《全国青少年信息素养大赛Python编程真题解析》50讲&#xff0c;这是超平老师解读Python编程挑战赛真题系列的第5讲。 全国青少年信息素养大赛&#xff08;原全国青少年电子信息智能创新大赛&#xff09;是“世界机器人大会青少年机器人设计…

9.33UEC++、容器

1.定义&#xff1a; 2.TArray&#xff1a;快&#xff0c;小&#xff0c;高 &#xff1a;同质容器 &#xff1a;创建栈对象&#xff0c;不能创建堆对象 如何构建TArray&#xff1a; 获取方式&#xff1a; 实现方式&#xff1a;定义一个array容器数组&#xff0c;两种遍历方式…

跳跃游戏(力扣)贪心 JAVA

给定一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1&#xff1a; 输入&#xff1a;nums [2,3,1,1,4] 输出&#xff1a;true 解释&#xff1a;可以先跳 1 步…