git基础

news2024/9/28 5:27:58

代码托管平台:git.acwing.com

一、git基本概念

工作区:仓库的目录。工作区是独立于各个分支的。
暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。
版本库:存放所有已经提交到本地仓库的代码版本
版本结构:树结构,树中每个节点代表一个代码版本。

二、git命令分类整理

1.全局设置

1.git config --global user.name xxx:设置全局用户名,信息记录在~/.gitconfig文件中
2.git config --global user.email xxx@xxx.com:设置全局邮箱地址,信息记录在~/.gitconfig文件中
3.git init:将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中

2.常用命令

4.git add XX :将XX文件添加到暂存区
5.git commit -m "给自己看的备注信息":将暂存区的内容提交到当前分支
6.git status:查看仓库状态
7.git log:查看当前分支的所有版本
8.git push -u (第一次需要-u以后不需要) :将当前分支推送到远程仓库
9.git clone git@git.acwing.com:xxx/XXX.git:将远程仓库XXX下载到当前目录下
10.git branch:查看所有分支和当前所处分支

3.查看命令

11.git diff XX:查看XX文件相对于暂存区修改了哪些内容
12.git status:查看仓库状态
13.git log:查看当前分支的所有版本
14.git log --pretty=oneline:用一行来显示
15.git reflog:查看HEAD指针的移动历史(包括被回滚的版本)
16.git branch:查看所有分支和当前所处分支
17.git pull :将远程仓库的当前分支与本地仓库的当前分支合并

4.删除命令

18.git rm --cached XX:将文件从仓库索引目录中删掉,不希望管理这个文件
19.git restore --staged xx:==将xx从暂存区里移除==
20.git checkout — XX或git restore XX:==将XX文件尚未加入暂存区的修改全部撤销==

5.代码回滚

21.git reset --hard HEAD^ 或git reset --hard HEAD~ :将代码库回滚到上一个版本
22.git reset --hard HEAD^^:往上回滚两次,以此类推
23.git reset --hard HEAD~100:往上回滚100个版本
24.git reset --hard 版本号:回滚到某一特定版本

6.远程仓库

25.git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库
26.git push -u (第一次需要-u以后不需要) :将当前分支推送到远程仓库
27.git push origin branch_name:将本地的某个分支推送到远程仓库
28.git clone git@git.acwing.com:xxx/XXX.git:将远程仓库XXX下载到当前目录下
29.git push --set-upstream origin branch_name:设置本地的branch_name分支对应远程仓库的branch_name分支
30.git push -d origin branch_name:删除远程仓库的branch_name分支
31.git checkout -t origin/branch_name 将远程的branch_name分支拉取到本地
32.git pull :将远程仓库的当前分支与本地仓库的当前分支合并
33.git pull origin branch_name:将远程仓库的branch_name分支与本地仓库的当前分支合并
34.git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的branch_name1分支与本地的branch_name2分支对应

7.分支命令

35.git branch branch_name:创建新分支
36.git branch:查看所有分支和当前所处分支
37.git checkout -b branch_name:创建并切换到branch_name这个分支
38.git checkout branch_name:切换到branch_name这个分支
39.git merge branch_name:将分支branch_name合并到当前分支上
40.git branch -d branch_name:删除本地仓库的branch_name分支
41.git push --set-upstream origin branch_name:设置本地的branch_name分支对应远程仓库的branch_name分支
42.git push -d origin branch_name:删除远程仓库的branch_name分支
43.git checkout -t origin/branch_name 将远程的branch_name分支拉取到本地
44.git pull :将远程仓库的当前分支与本地仓库的当前分支合并
45.git pull origin branch_name:将远程仓库的branch_name分支与本地仓库的当前分支合并
46.git branch --set-upstream-to=origin/branch_name1 branch_name2:将远程的branch_name1分支与本地的branch_name2分支对应

8.stash暂存

47.git stash:将工作区和暂存区中尚未提交的修改存入栈中
48.git stash apply:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素
49.git stash drop:删除栈顶存储的修改
50.git stash pop:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素
51.git stash list:查看栈中所有元素

上面命令有重复,只是分类。

三、homework

1.homeowrk_0

(0) 在当前目录下创建文件夹homework,并将homework目录配置成git仓库。后续作业均在homework目录下操作;
#进入到homework/lesson_5/创建一个文件夹
mkdir homework

#将该homework创建为仓库
git init

2.homework_1

(1) 创建文件readme.txt,内容包含一行:111;
将修改提交一个commit;
#在homework仓库中创建一个readme.txt文件,并输入111
vim readme.txt

#将该文件加入到缓存区
git add .  #也可以是 git add readme.txt

#此时可以看一下是否加入到了缓存区
git status

#然后将进行commit
git commit -m "add readme.txt"

#完成后可以检查一下
git log #该条命令会查看当前分支的所有版本

3.homework_2

(2) 在readme.txt文件末尾新增一行:222;
将修改提交一个commit;
#再次打开readme.txt文件
 vim readme.txt
#加入222后,继续执行homework_1的操作
git add .
git commit -m "add 222"

4.homework_3

(3) 创建文件夹:problem1和problem2;
创建文件problem1/main.cpp。文件内容为下述链接中的代码:https://www.acwing.com/problem/content/submission/code_detail/7834813/;
创建文件problem2/main.cpp。文件内容为下述链接中的代码:https://www.acwing.com/problem/content/submission/code_detail/7834819/;
将修改提交一个commit;
mkdir problem1 problem2

vim problem1

vim problem2

git add .

git commit -m "add p1 p2"

 

5.homework_4

(4) 删除文件夹problem2;
创建文件夹problem3;
创建文件problem3/main.cpp。文件内容为下述链接中的代码:https://www.acwing.com/problem/content/submission/code_detail/7834841/;
将readme.txt中最后一行222删掉,然后添加一行333;
将修改提交一个commit;
#删除文件夹
rm problem2 -r #直接删就行,不需要git

#创建文件夹
mkdir problem3

#进入文件夹problem3,创建main.cpp文件
vim main.cpp

#在修改readme.txt
vim readme.txt

#最后在提交到缓存区,并commit

git add .

git commit -m "add p3"

6.homework_5

(5) 在https://git.acwing.com/上注册账号并创建仓库,仓库名称为homework;
将本地git仓库上传到AC Git云端仓库;

 将上图两个步骤,复制到terminal

回车即可

7.homework_6

(6) 创建并切换至新分支dev;
在readme.txt文件中添加一行444;
将修改提交一个commit;
将dev分支推送至AC Git远程仓库;
#创建一个dev分支
git checkout  -b dev #创建一个dev分支  git checkout dev 本命令是切换到dev分支

#git branch 查看当前分支

#进入readme.txt文件
vim readme.txt #输入444

#传入到缓存区,并commit
git add .
git commit -m "add 444"

#将该分支上传到云端
git push 

git push --set-upstream origin dev #此命令是push完之后,出来的,copy ,paste就行

8.homework_7

(7) 切换回master分支;
在readme.txt文件中添加一行555;
将修改提交一个commit;
#切换到master分支
git checkout master # git branch 查看当前分支

#进入到readme.txt
vim  readme.txt

git add .

git commit -m "add 555" 

9.homework_8

(8) 将dev分支合并到master分支;
手动处理冲突,使readme文件最终内容包含4行:111、333、555、444;
将修改提交一个commit;
#将dev合并到master中
git merge dev  #此条命令为将xxx分支合并到当前所处分支

#合并后会有冲突,需要手动更改
vim readme.txt #更改即可

git add .
git commit -m "fix conflict"

10.homework_9

(9) 将master分支的版本库push到AC Git云端仓库;
登录myserver服务器(4. ssh作业中配置的服务器);
创建并清空文件夹:~/homework/lesson_5/;
将AC Git云端仓库clone到~/homework/lesson_5/中;
#进入服务器
ssh myserver

#创建lesson_5
mkdir lesson_5

#在lesson_5中clone

git clone git@git.acwing.com:Newer/homework.git
#该链接为git端的克隆命令

 

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

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

相关文章

黑马Hive+Spark离线数仓工业项目--数仓主题应用层ST层构建(2)

服务域:回访主题分析 目标:掌握回访主题的需求分析 路径 - step1:需求 - step2:分析 实施 需求:统计不同维度下的回访主题指标的结果 分析 - 指标 - 回访工程师数量、回访人员数量、回访人员最大数量、回访人员最…

C++学习 Day.8 (重载运算符和类型转换运算符)ps:一大波参考博客来袭~~

this指针 详解请点这里 复制构造函数详解 点这里和这里 指针的指针的地址,指针自身的地址,指针指向的地址 点这里 实例化解释很好 引用和指针的区别 点这里和这里 引用详解:C:引用的简单理解 - Tom文星 - 博客园 (cnblogs.co…

SMC详解

SMC全称:Secure Monitor Call 目的:进入到EL3异常等级 应用场景:大于等于EL1异常等级下使用(EL0下不能使用) 官方介绍以及使用方式如下: 主要配置: (1) SCR_EL3.SMD: (2) HCR_EL2.TSC 主要功…

ArcGIS基础实验操作100例--实验20按像元修改栅格值

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验20 按像元修改栅格值 目录 一、实验背景 二、实验数据 三、实验步骤 (1&…

SpringCloud整合Seata(AT两阶段--场景: 下单减少库存)

文章目录零:前置操作 --- 搭建Seata服务一:介绍说明二:添加undolog表三:框架整合Seata相关依赖3.1:引入公共SEATA POM依赖3.2:业务服务引入SEATA公共组件依赖3.3:yml文件配置Seata客户端和注册信…

[C++]模板与STL简介

🥁作者: 华丞臧 📕​​​​专栏:【C】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉LeetCode 文章目录模板初阶…

AspNetCore中的日志组件

介绍 本文写作年代比较久远,最新日志文档请查看: .NET Core 和 ASP.NET Core 中的日志记录 | Microsoft Learn了解如何使用由 Microsoft Extension.Logging NuGet 包提供的日志记录框架。https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/l…

选择-C++选择分支

引言 你们喜欢吃"只因"肉? a > 喜欢 b > 还行 c > 不喜欢 请说出你的答案: 证明 真ikun 和假ikun 关键点 我现在 a 因为我是ikun 我是 唯一玩梗的CSDN技术型博主 哈哈所以夹带点私货 你们dddd(懂的都懂) 关注我,让你看到更多的C/C 的技术点和技术以外的梗…

CTF之MISC题目-简单流量

CTF系列文章 第一篇 CTF之密码学题目-classical && coding 第二篇 CTF之MISC题目-西游记 第三篇 CTF之MISC题目-简单流量 文章目录CTF系列文章前言一、题目是什么?二、解题步骤1.下载文件、解压2.使用wireshark3.解压flag.zip总结前言 这是一道关于网络数…

ElasticSearch-倒排索引

文章目录一、mysql数据库存在的问题1.1 模糊查询索引失效1.2 不能分词查询二、倒排索引一、mysql数据库存在的问题 1.1 模糊查询索引失效 假设要查询上图中title中包含"手机"的信息,那么sql语句是这样的 SELECT * FROM goods WHERE title LIKE %手机%;如…

功能更新 | 身份认证增强安全配置

在开始本文前,先给大家出个解谜题,密码在下一段文字里,由 9 个字组成,开动你的脑筋吧,我们在本文结尾会揭晓答案: 2022 年马上就要结束了,机遇与挑战并存的一年。昨天,北京郊区一些地…

企业电子招标采购系统源码及功能清单

​ ​ 一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编…

从卖货到广告,跨境电商解锁变现新模式

一、经济全球化背景下,跨境电商作为外贸发展的新模式,可谓势头正盛。而 2022 年,在汇率波动、欧美通胀等不可抗逆因素的影响下,跨境电商大环境也面临着诸多挑战。对于消费者而言,全球通货膨胀持续走高,物价…

List、List<Object>、List<?>

List、List、List<?>ListList<Object>List<?>demoList 1、声明的List集合对其 所指向的集合对象&#xff08;就是赋值的集合对象&#xff09;的限制:无泛型限制&#xff0c;并且无视指向的集合对象的泛型&#xff0c;直接当成List处理&#xff08;泛型擦除…

软件测试难吗?应该怎样学习?

软件测试是一份不错的职业&#xff0c;现在也有许多小伙伴想要学习软件测试技术&#xff0c;成为一名软件测试员。但是零经验的小白又担心不知道软件测试好不好学&#xff0c;应该如何学习软件测试能力&#xff0c;需要做哪些培训呢。下面就给大家推荐一些学习经验与技巧&#…

【JavaEE】JVM(八股文!)

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录【JVM内存划分】【JVM类加载】【JVM垃圾回收机制GC】一&#xff09;GC是啥二&#xff09;GC回收哪部分内存三&#xff09;具体怎么回收四&#xff09;怎么找垃圾&#xff08;判定某个对象是否是垃圾&#xff09;五&a…

圆和椭圆外投影

1 圆外一点在缩放到圆上 圆方程: x2y222x^2y^2 2^2 x2y222 直线方程: ykxy kx ykx 圆外一点: A(3,3)A(3,3)A(3,3) 求点B. 方法1-解方程 圆外一点A(3,3)A(3,3)A(3,3),那么:直线k1k1k1,直线方程:yxyxyx 方程联立: x2x24x^2 x^2 4 \\ x2x24 x2y2x \sqrt{2} \\ y \sqrt…

点云 3D 分割 - SqueezeSeg(ICRA 2018)

点云 3D 分割 - SqueezeSeg&#xff08;ICRA 2018&#xff09;摘要1. 引言2. 相关工作A. 三维激光雷达点云的语义分割B. 用于3D点云的CNNC. 图像的语义分割D. 通过模拟收集数据3. 方法描述A. 点云变换B. 网络结构C. 条件随机场D. 数据收集4. 实验A. 评估指标B. 实验设置C. 实验…

2022电商行业重磅年度报告:八大年度关键词盘点

2022年终于过去&#xff0c;当网易云音乐推出“年度报告”霸屏朋友圈&#xff0c;它在试图唤起那些可能被遗忘的情绪和小心思。 这一年&#xff0c;有人悲观&#xff0c;有人积极&#xff0c;有人凭实力搭上了顺风车&#xff0c;也有人放弃了抵抗。这一年&#xff0c;作为电商人…

Mybatis学习笔记 | 动力节点老杜

目录 一、MyBatis概述 历史 MyBatis特点 ORM概述 二、Mybatis入门 1、SqlSessionFactory和SqlSession 2、核心配置文件的加载 3、mybatis事务管理机制 4、第一个mybatis程序 5、mybatis继承日志 三、mybatis增删改查 1、增加 通过Map传值 通过实体类传值 2、删除…