【git】git版本控制

news2024/10/6 8:26:03

目录

1.在合适的位置打开bush,创建仓库

2.检查:跳转到当前文件夹,显示当前文件夹的相对路径

3.初始化

4.创建一个文本文件readme.txt

5.手动向readme文件中添加一些内容

6.把文件添加到暂存区

7.把文件提交到git仓库

8.手动修改readme.txt文件

9.查看当前git中文件的状态

10.查看文件修改的不同

11.把文件添加到暂存区,并检查状态

12.把文件提交到仓库,并检查状态

13.查看记录(日志)

14.练习修改,添加,提交

15.查看当前版本内容

16.版本退回,并查看版本

17.查看每次命令

18.版本退回GPL版本,并查看版本内容

19文件追踪

20.查看工作区中的版本与仓库中的版本的不同

21.撤销修改

22.删除文件

24.配置github

25.把仓库与本地的仓库联系起来

26.向远程仓库中提交

27.”删除“远程仓库

28.克隆远程仓库

28.创建分支

29.在dev分支修改文件,并提交

30.合并分支

31.删除分支

32.新建分支dv,并提交到github

33.创建新分支,解决冲突

35.用不用快速合并的方式合并

36.Bug修复

36.查看远程仓库的信息

37.多人协作

38.标签

36.忽略某些文件

37.为操作配置别名


1.在合适的位置打开bush,创建仓库

mkdir(make directory创建目录)

2.检查:跳转到当前文件夹,显示当前文件夹的相对路径

cd(change directory改变目录)

pwd(print working directory打印当前工作目录)

3.初始化

git init(git initilatize git初始化)

已经初始化空的git仓库(repository)在D盘work_git/learngit/.git

表示你现在的文件夹为空,现在多了一个.git文件夹

4.创建一个文本文件readme.txt

 touch(触摸,当文件不存在时会创建该文件)

现在当前文件夹中创建了一个名为“readme”的txt类型的文件

(当然也可以手动创建)

5.手动向readme文件中添加一些内容

(windows环境下,建议所有的路径都不要有中文,文本编辑器推荐用vscode)

6.把文件添加到暂存区

git add(git添加)

git的文件有三个工作区:

工作目录(working directory),暂存区域(staging area),git仓库(.git directory或repository)

版本的更新过程是先由工作目录add到暂存区域,再由暂存区域commit到git仓库

7.把文件提交到git仓库

git commit  -m"备注“(git提交)

现在已经把这个版本提交到仓库了

[master分支]备注

1个文件改变,2行内容插入

创建readme.txt文件

(注意-m)

8.手动修改readme.txt文件

9.查看当前git中文件的状态

git status(状态)

在默认分支

改变还未被暂存以提交

    (用”git add <file>来更新什么会被提交)意思是用git add命令把文件添加到暂存区

      (用“git restore <file>来丢弃改变在工作目录)意思是用git restore命令来撤回这次改变

                  已修改:readme.txt

没有已经添加的改变以提交(用git add或者git commit -a)

意思是我们已经做了修改,但还没有把它添加到暂存区

在第6步,我们说到git有三种工作区

他们分别对应三种状态:modified(已修改的),staged(已暂存的),commited(已提交的)

10.查看文件修改的不同

git diff(git difference不同)

diff --git a/readme.txt  b/readme.txt 意思是变化的文件

index c65888e..f4cc7a4 100644 索引

--- a/reame.txt

+++ b/readme.txt

@@ -1,2 +1,2 @@

-git is a version control system 意思是这一行减去了

+git is a distributed version control system  意思是这一行新加的

git is free                     意思是这一行没变化

11.把文件添加到暂存区,并检查状态

git add

git status

改变将要被提交    意思是文件现在在暂存区

     (用”git restore --staged<file>来不存储)意思是让文件回到工作目录中

             已修改: readme.txt

12.把文件提交到仓库,并检查状态

git commit -m"add distributed"

git status

没有东西要被提交,工作树很干净

意思是现在三个工作区都没有任务,即所有的修改都已经提交到仓库中

13.查看记录(日志)

git log(记录/日志)

commit 3d4e…….63cd

 意思是commit id 的版本号,是一个很大的十六进制数,是一个哈希值,此次提交的索引

HEAD->master  意思是当前版本的指针

作者:名字<邮箱>

提交日期:星期五 十二月 24日 11:13:52 2021年 +0800

  add distirbuted (你自己写的备注)

log的顺序是从最近的到最远的

如果不想看作者,日期信息可以用下面的命令

git log --oneline(只显示一行)

git log --pretty=online(完美的=一行)意思是会显示完整的哈希值

14.练习修改,添加,提交

15.查看当前版本内容

cat <file>(固定)

16.版本退回,并查看版本

git reset --hard HEAD^(git 重置--hard 头指针的上一个^)

当前版本的头指针在3d43e7f备注

退回上上个版本可以git reset --hard HEAD^^

退回前100个版本可以git reset --hard HEAD~100

17.查看每次命令

git reflog(git referencelog查阅日志)

18.版本退回GPL版本,并查看版本内容

在当前git窗口未关闭的情况下,首先查找GPL版本的commit哈希值(前几位即可)9c07c

git reset --hard 9c07c

19文件追踪

创建一个license.txt(许可证)文件,并查看git状态、

未被追踪的文件:

(用“git add <file>"来包含进什么会被提交

                 LICENSE

没有东西被添加进以提交但是未被追踪的文件存在

意思是当一个文件首次被创立之后,是未被追踪的状态,要先添加到暂存区才能被追踪

20.查看工作区中的版本与仓库中的版本的不同

没有内容显示,就是没有差别

21.撤销修改

01,在未添加到暂存区的时候,手动修改文件,查看状态,

此时文件还没有被添加到暂存区,可以用git restore <file>丢弃修改,并查看版本内容

02,在添加到暂存区之后,手动修改文件并添加到暂存区,查看状态

用git restore --staged <file>来让文件回到没有添加到工作区的状态

并查看git状态,和版本内容

PS:这是2.3之后新版的撤销操作

原来版本对应的是命令是

git checkout --<file>

git reset HEAD <file>

 

22.删除文件

首先把创建的license.txt提交到仓库

手动删除或者用rm(remove 移除)

用“git add/rm<file>来更新什么被提交

用”git restore <file>来丢弃改变在工作目录中

01.误操作,丢弃删除这个操作

02.确定要删除,git   add/git rm  +git commit

23.查看ssh密钥

打开git bush 软件,首先检查自己是否有ssh密钥

cd ~/.ssh

没有这样的文件或目录

表示你的系统还没有ssh

创建ssh密钥

ssh-keygen -t rsa -C "邮箱“

(ssh安全协议keygenerate钥匙生成

然后一路回车

创建完成后,再次查看.ssh文件

cd ~/.ssh

ls(List directory contents,显示目录列表)

cat ~/.ssh/id_rsa.pub(查看公钥public)

24.配置github

首先注册一个GitHub账号,点击头像,点击settings,

点击ssh keys,点击new ssh key,

添加一个名称,复制粘贴刚才的公钥(上图一长串右键copy)

创建一个新的仓库repository,命名为learngit

25.把仓库与本地的仓库联系起来

按照GitHub的提示

(在learngit的目录下打开gitbush)

git remote add  origin git@github.com:gaode-8/learngit.git(远程添加仓库@网址)

git branch -M main

git push -u origin main(push推-u初始化时origin源头main主分支)

这是第一次使用git的clone或者bush时会得到的命令

输入yes回车

ps:

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器

此时再看github,你会发现learngit仓库与我们本地的leargit仓库一样了

26.向远程仓库中提交

首先修改文件(在最后一行添加:git is good并添加到本地仓库)

此时github中并没有发生变化

接下来把本地仓库

git push origin mian(push推main主要的分支)

 

(中间发生一次错误

是因为github更新之后把master换成了main)

现在github已经变化

27.”删除“远程仓库

首先查看远程仓库的信息

git remote -v

fetch取 push推

git remote rm <name>

即可”删除“远程仓库(这里的删除并不是真正的删除,只是取消本地仓库和远程仓库的联系)

28.克隆远程仓库

首先我在我的github上新建了一个Cplusplus_learn仓库

git clone <地址>(clone克隆,复制)

注意这里的地址有好几种写法

1.http协议: https://github.com/xxx/xxx

2.ssh协议: @github.com:xxx/xxx

可以在github上的code找到,直接复制即可

然后我们发现我们自己的电脑上多了一个Cplusplus_learn文件夹

里面也和github上面的一摸一样

检查

28.创建分支

git checkout -b <name>(创建并跳转到分支dev)

(等于是 git branch dev

              git checkout dev

两步的合并)

查看分支

(标有*的是当前分支)

29.dev分支修改文件,并提交

30.合并分支

切换回main

我们发现readme中的修改不见了

合并dev分支到main

更新

快进模式

切换也可以使用 git switch dev

git switch  -c dev 创建并切换到dev

31.删除分支

git branch -d dev

32.新建分支dv,并提交到github

33.创建新分支,解决冲突

创建新分支,并修改

你的分支比远程/main分支超前了一个分支

在跳转到main,修改

我们尝试合并但是发生了冲突,合并失败

自动合并Readme.txt

冲突(内容):README.TXT合并冲突

自动合并失败;修复冲突,然后提交结果。

用git status 查看状态

您的分支领先于2个提交的来源/主人

(使用Git Push发布您的本地提交)

你有没有解除的路径。

(修复冲突并运行git提交

(使用git merge -abort中止合并)

未使用的路径:

(使用git添加<file> ...”标记分辨率)

修改后:Readme.txt

没有添加更改以提交(使用git添加/git commit -a

我们也可以直接查看readme.txt

手动修改AND,并选择接受

然后提交

删除feature1

可以用带参数的git log 查看合并情况

35.用不用快速合并的方式合并

好处是保留合并后的分支

36.Bug修复

修改readme.txt

用git stash(储存)现场,之后可以恢复

确定在哪个分支上修复bug,就在那个分支上创建分支

然后修改bug,提交分支,合并分支

然后会到main分支继续工作

检查刚才临时储存的

回复并删除储存

git stash pop(去)

(用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除)

如果想把修复这个bug分支的操作复制到其他分支上去可以用

git cherry-pick <commit>

<commit>是修复bug分支的commit操作id

36.查看远程仓库的信息

推送main分支

37.多人协作

38.标签

git tag <name>(标签)

git show <name>(查看标签内容)

也可以找到之前的操作id,补加tag

可以给标签添加信息

git tag -a <name> -m "备注“

删除本地标签

向远程推送标签

或者一次性推送全部标签

删除远程标签

36.忽略某些文件

创建 文件名为 .gitignore 的文件(注意没有后缀格式)

并提交

我们发现无法提交abc.txt了

37.为操作配置别名

git congig --global(意思是全局,这台电脑上的仓库都可以用) alias.<别名> 操作

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

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

相关文章

前端监控之用户行为监控实践2(数据统计mongodb)

一、技术栈介绍 我们当前的项目&#xff0c;后端是node 搭建&#xff0c;数据库是非关系型数据库 mongodb。 二、数据情况介绍 日志存储存储格式如下&#xff1a; 主要包括&#xff1a; key意义type当前访问类型actionTime访问时间content访问内容erp、fullname、orgname、…

【Spring MVC】这一篇,带你从入门到进阶

目录 1、什么是MVC&#xff1f; 2、什么是 Spring MVC 3、如何学好 Spring MVC&#xff1f; 3.1、如何创建 Spring MVC 项目 3.1.1、使用Spring Initializr创建&#xff08;推荐&#xff09; 3.2、将 Spring 程序与用户&#xff08;浏览器&#xff09;联通 3.3、基础注解…

6.5 拓展:如何实现 Web API 版本控制,同时兼容无版本控制的原始接口?

第6章 构建 RESTful 服务 6.1 RESTful 简介 6.2 构建 RESTful 应用接口 6.3 使用 Swagger 生成 Web API 文档 6.4 实战&#xff1a;实现 Web API 版本控制 6.5 拓展&#xff1a;如何实现 Web API 版本控制&#xff0c;同时兼容无版本控制的原始接口&#xff1f; 6.5 拓展&#…

干旱预测方法总结及基于人工神经网络的干旱预测案例分析(MATLAB全代码)

本案例采用SPEI干旱指数&#xff0c;构建ANN和BP神经网络预测模型&#xff0c;并开展1~3个月预见期的干旱预测&#xff0c;对比分析干旱预测模型的适用性&#xff0c;为流域干旱预警和管理提供技术依据。 干旱预测 1 干旱预测方法 1.1 统计学干旱预测 根据历史降水或气温等…

【python】用plotly绘制正二十面体

文章目录顶点棱实现正二十面体plotly 的 Python 软件包是一个开源的代码库&#xff0c;它基于 plot.js&#xff0c;而后者基于 d3.js。我们实际使用的则是一个对 plotly 进行封装的库&#xff0c;名叫 cufflinks&#xff0c;能让你更方便地使用 plotly 和 Pandas 数据表协同工作…

设备树(配合LED驱动说明)

目录 一、起源 二、基本组成 三、基本语法 四、特殊节点 4.1 根节点 4.2 /memory 4.3 /chosen 4.4 /cpus 多核CPU支持 五、常用属性 5.1 phandle 5.2 地址 --------------- 重要 5.3 compatible --------------- 重要 5.4 中断 --------------- 重要 5.5 …

python攻陷米哈游《元神》数据?详情请看文章。。

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 《原神》是由米哈游自研的一款全新开放世界冒险RPG。 里面拥有许多丰富得角色&#xff0c;让玩家为之着迷~ 今天&#xff0c;我们就来用python探索一下原神游戏角色信息&#xff01; 标题大家看看就好了哈~&#xff08…

DNS,DNS污染劫持,DNS加密

1. DNS&#xff08;Domain Name System&#xff09;DNS&#xff08;Domain Name System&#xff09;&#xff0c; 也叫网域名称系统&#xff0c;是互联网的一项服务。它实质上是一个 域名 和 IP 相互映射的分布式数据库.DNS&#xff08;Domain Name Server&#xff0c;域名服务…

医疗保健和智慧城市服务将引领5G物联网采用

Juniper Research预测&#xff0c;到2026年&#xff0c;全球5G物联网连接将达到1.16亿&#xff0c;而2023年仅为1700万。该公司预测&#xff0c;医疗保健部门和智慧城市服务将在未来三年推动这1100%的增长&#xff0c;到2026年占5G物联网设备的60%以上。5G物联网技术的超低延迟…

配置Flutter开发环境

一、在Windows上搭建Flutter开发环境 1、去flutter官网下载其最新可用的安装包&#xff0c;下载地址&#xff1a;https://flutter.dev/docs/development/tools/sdk/releases 。 注意&#xff0c;Flutter的渠道版本一直在不断的更新&#xff0c;请以Flutter官网为准。 另外&…

自动化测试框架对比

Robot Framework&#xff08;RF&#xff09; 链接&#xff1a;http://robotframework.org/ Robot Framework&#xff08;RF&#xff09;是用于验收测试和验收测试驱动开发&#xff08;ATDD&#xff09;的自动化测试框架。 基于 Python 编写&#xff0c;但也可以在 Jython&…

Android 基础知识4-3.1 TextView(文本框)详解

一、前言 TextView就是一个显示文本标签的控件&#xff0c;就是用来显示文本。可以在代码或者 XML中设置字体&#xff0c;字体大小&#xff0c;字体颜色 &#xff0c;字体样式 &#xff08;加粗级斜体&#xff09;&#xff0c;文字截断&#xff08;比如&#xff1a;只显示10个字…

【Python数据挖掘入门】一、数据挖掘概况

一、数据挖掘概况 数据挖掘是指从大量的数据中&#xff0c;通过统计学、人工智能、机器学习等方法&#xff0c;挖掘出未知的、具有价值的信息和知识的过程。 典型案例&#xff1a; 啤酒与尿布杜蕾斯与口香糖杜蕾斯与红酒 数据挖掘是一门交叉学科&#xff0c;覆盖了统计学、数…

正则表达式常见语法_findall方法、r原串的使用

正则表达式常见语法 re.findall&#xff08;&#xff09;方法 findall&#xff08;&#xff09;方法中flag参数的作用 运行结果为 运行结果是空列表&#xff0c; 以上说明&#xff0c;正则表到时中的“点号”不能和换行符匹配。 如果匹配模式设置为re.DOTALL或者re.S&#xff…

类与对象(this 关键字、构造器)

目录一、面向对象二、类与对象三、对象内存图四、成员变量和局部变量区别五、this关键字六、构造器/构造方法一、面向对象 一种编程思想:也就是说我们要以何种思路&#xff0c;解决问题&#xff0c;以何种形式组织代码 当解决一个问题的时候&#xff0c;面向对象会把事物抽象成…

23年六级缓考

【【六级674】3月六级规划+许愿成功的小伙伴记得来还愿啦!!(四六级延期考2周冲刺计划)】https://www.bilibili.com/video/BV1nx4y1w7fz?vd_source=5475f4f6010a81c8e6d4789af8e1a20f 作文

「TCG 规范解读」初识 TPM 2.0 库续一

可信计算组织&#xff08;Ttrusted Computing Group,TCG&#xff09;是一个非盈利的工业标准组织&#xff0c;它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立&#xff0c;并采纳了由可信计算平台联盟&#xff08;the Trusted Computing Platform Alli…

前端预防XSS攻击全攻略

如何防止XSS攻击 一、是撒子 XSS攻击&#xff08;跨站点脚本攻击&#xff09;&#xff0c;就是黑客恶意篡改你网页的前端代码&#xff0c;在里面注入一些恶意的 htmljavascript的脚本&#xff0c;并在你的浏览器内运行&#xff0c;获取你的信息&#xff0c;或者进行一些恶意操…

3年自动化测试经验,面试连20K都拿不到,现在都这么卷了吗····

我的情况 大概介绍一下个人情况&#xff0c;女&#xff0c;本科&#xff0c;三年多测试工作经验&#xff0c;懂python&#xff0c;会写脚本&#xff0c;会selenium&#xff0c;会性能&#xff0c;会自动化&#xff0c;然而到今天都没有收到一份offer&#xff01;从2022年11月1…

Html 代码学习

场景:在页面中插入音频 代码 常见属性: src 音频的路径 controls 显示播放的控件 autoplay 自动播放 loop 循环播放 场景:在页面中插入视频 代码 常见属性: src 路径 controls 显示播放的控件 autoplay 自动播放 要配合muted 例如 autoplay muted loop 循环播放 链接 /…