git的使用

2023-09-20 14:32:05

1)git的学习及总结

可以用通配符添加多个文件,如git add *.txt;
git add . //把当前所有文件都添加到暂存区中


git reset test.txt //取消暂存
git commit -m "提交的信息" //这个信息会被提交到仓库中,作为版本管理的凭证
//git只会提交到暂存区中的文件,而不会提交工作中的其他文件!
repository  [rɪˈpɒzɪt(ə)ri] 仓库 


git log命令查看提交记录;
例如:输出如下信息
	commit bc691e00aeb009ba8b20db6e5f4915e4b27188fc (HEAD -> master)
	Author: 00025_JiangHuaiWei <jhw@autobrain.cn>
	Date:   Mon Sep 18 15:07:56 2023 +0800
git log --oneline //查看简洁的log信息,查看一些提交历史;


git reset的三种模式
git reset --soft	保存工作区 保存暂存区
git reset --hard	丢弃工作区 丢弃暂存区
git reset --mixed	保存工作区 丢弃暂存区(也是默认参数)
git reset --soft f05c120 //f05c120为回退的版本id;
git ls-files  //查看暂存区里面的内容
git reflog //查看的操作历史记录;
git reset --hard 83582b1 //回退到之前83582b1版本
git reset --sort HEAD^   //回退到上一个版本


git diff的使用
git diff是比较的工作区和暂存区的不同
git diff HEAD 是比较工作区和版本库的不同
git diff --cached //暂存区和版本库的不同
git diff 版本id1 版本id2;
git diff HEAD~3 HEAD file3.txt //查看当前版本与第三个版本的的file3.txt内容的不同,其他文件不查看;
git diff 分支1 分支2 //比较分支之间的差异;


从版本库中删除文件
git rm 会删除工作区中的文件;
git rm 会同时将删除的文件添加到暂存区;
【因此 git rm 相当于 rm + git add 两个命令】


git rm other.log //同时删除本地和暂存区的内容
git rm --cached other.log //只删除暂存区的内容
删除完,应该再次提交,否则文件不能真正删除;
提交到版本库,完成删除动作
git commit -m “xxxxxx”


.gitignore的使用:
echo access.log > .gitignore //把access.log文件添加到.gitignore文件中
执行上面语句,则只会看到other.log,不会看到access.log文件了。
git ls-files执行后,只有other.log会添加到版本库中,accesss.log不会添加到
git status -s //输出 "modified:   ../.gitignore",代表gitignore这个文件被修改过;


远程仓库的创建及秘钥添加
	1)github的注册,需要用到邮箱;
ssh配置和克隆仓库
推举用ssh,不用htttps;
cd ~/.ssh //进入这个目录
当前目录:/home/jiang/.ssh
ssh-keygen -t rsa -b 4096  //生成秘钥按rsa协议生成,文件大小4096
把生成的秘钥添加到github上即可;


git常用命令6个:
git clone
git push命令是推送到远程仓库;
git add
git commit 把暂存区的内容提交到版本仓库中
git pull 拉取
git checkout
ctrl + shift + r //刷新网页的快捷键


本地文件添加远程仓库(origin是远程仓库的别名)
添加远程仓库:
步骤1: git remote add <远程仓库别名><远程仓库地址>
步骤2: git push -u <远程仓库名><分支名>
git remote add origin git@192.168.130.63:jianghuaiwei/dbc-itearator.git
	git remote add origin的作用:是将远程仓库添加到本地仓库中,并为其设置一个别名;
	例如:“git@192.168.130.63:jianghuaiwei/dbc-itearator.git”为远程仓库,添加到本地仓库并将其命名为"origin";
	这样就可以通过使用"origin"来推送或拉取更新;
git remove -v //当前仓库对应的远程仓库的别名和地址,必须在对应的本地目录下才可以
	输出:
	origin	git@192.168.130.63:autobrain/develop/common/edr.git (fetch)
	origin	git@192.168.130.63:autobrain/develop/common/edr.git (push)
git branch -M main //指定分支的名称为main
git push -u origin main //把本地仓库与远程仓库关联起来,-u 是upstream的缩写
	全称应该是git push -u origin main:main //把本地仓库的main分支推送到远程仓库的main分支;注意:git版本低的是master
	如果远程仓库的main分支和本地的main分支是一个名字的话,就写一次就可以了;
git pull <远程仓库名><远程分支名>:<本地分支名>: git pull origin main //远程仓库名称和远程分支名称可以省略,代表的是 origin 和 main 注意:git版本低的是master
执行完git pull命令后,git会为我们执行一次合并操作;
用fetch来获取远程仓库的修改内容;

git图形化工具
GitKraken -- 超好用的 Git 可视化工具
visual studio code 【source control】有“U” 未跟踪,M修改,A添加到暂存等;


分支的学习
git branch  查看分支列表
git branch branch_name 创建分支
git switch branch_name 切换分支 有的版本不支持,只能是git checkout branch_name切换分支
git merge branch_name 合并分支:合并后的分支还是存在的
git branch -d branch_name 删除分支,【已合并的】
git branch -D branch_name 删除分支,【未合并的】


解决分支的冲突
git commit -am "feat:1" //就一个命令完成添加暂存和提交的两个动作;
分支和master内容冲突的话,会出现下面错误:
	jiang@jiang-X280:~/brahch_demo$ git checkout master
	error: Your local changes to the following files would be overwritten by checkout:
		main1.txt
	Please commit your changes or stash them before you switch branches.
	Aborting
需要手动修改错误,并提交;
总结:
两个分支未修改同一个文件的同一位置:git自动合并
两个分支修改了同一文件的同一处位置:产生冲突
解决办法:
	1)手工修改文件
	2)  添加暂存区 git add file
	3)  提交修改
终止合并:
	git merge --abort;


回退和rebase(变基)





Project slug: 仓库url名称,只能英文
Visibility Level: 仓库可见性,Privite就是私有仓库,Public就是公有仓库
https://blog.csdn.net/m0_66681776/article/details/129670579


fatal: detected dubious ownership in repository at '/home/jiang/ab_demo'
To add an exception for this directory, call:
解决办法:手动禁用安全目录 git config --global --add safe.directory '*'

git remote rm origin //删除远程仓库

推送远程仓库三部曲:
	git add .
	git commit -m "add context"	
	git push(全程是: git push origin master)


git push出现下面的错误的解决办法:
fatal: The current branch dev has no upstream branch.
To push the current branch and set the remote as upstream, use
    git push --set-upstream origin dev
首先git push命令,是默认将当前分支Push到远程的对应的分支,如果远程不存在对应分支,则会报错。比如这里,本地是dev分支,远程没有dev分支,使用这条命令默认就是对应远程dev分支,所以就会报错;
解决办法:git push --set-upstream origin dev


本地分支与远程仓库分支关系对应
git branch dev2 
git checkout dev2
echo dev2 > dev2.txt //创建一个测试文件
git add dev2.txt
git commit -m "branch dev2 test"
git push --set-upstream origin dev2 //因为远程仓库没有dev2分支,需要创建一个,正确的话,输出下面结果:
	Total 0 (delta 0), reused 0 (delta 0)
	remote: 
	remote: To create a merge request for dev2, visit:
	remote:   http://192.168.130.63/jianghuaiwei/data-closed-loop/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev2
	remote: 
	To 192.168.130.63:jianghuaiwei/data-closed-loop.git
	 * [new branch]      dev2 -> dev2
	Branch 'dev2' set up to track remote branch 'dev2' from 'origin'.
git push(全程 git push origin dev2)因为在dev2的分支上,所以也可以简写为 git push	

security compliance 安全合法性;
revision 美 [rɪˈvɪʒn] 修订
stale 美 [steɪl] 陈腐的,没有创意的;
metrics /ˈmɛtrɪks/ 度量
alert 美 [əˈlɜːrt] 警报; 警戒;
incident 美 [ˈɪnsɪdənt] 严重事件
unrecognized argument 无法识别的参数
decorate 美 [ˈdekəreɪt] 装饰
./gitkraken //解压这个文件,运行这个软件就行了。
hotfix 网络用语 修补程序
git log --oneline --graph --decorate --all
alias graph="git log --oneline --graph --decorate --all" //取别名,等号两边没有空格
分支管理和工作模型
  1. git的常用命令
1	git init				新建代码库
2	git clone			克隆项目
3.1	git branch		列出本地已经存在的分支,并且当前分支会用*标记
3.2	git branch -r	查看远程版本库的分支列表
3.3	git branch -a	查看所有分支列表(包括本地和远程,remotes/开头的表示远程分支)
3.4	git branch -v	查看一个分支的最后一次提交
3.5	git branch --merged			查看哪些分支已经合并到当前分支
3.6	git branch --no-merged	查看所有未合并工作的分支
3.7	git checkout -b 	新分支	创建分支的同时,切换到该分支上
4.1	git tag [name]	创建tag
4.2	git tag	查看已创建的tag
4.3	git show tagName	查看tag对应的commit id
5	git reset --hard commit-id 回退代码 (到这里就和reset方法一样了)
6	git submodule add [url] [path]	添加子模块
7.1	git pull	更新本地代码
7.2	git fetch	拉取仓库里有 本地电脑没有的代码
7.3	pull 根据不同的配置,可等于 fetch + merge 或 fetch + rebase
8	git add	将当前更改加入到索引
9	git commit	提交当前工作空间的修改内容
10	git commit	将commit的代码提交的远程仓库
11.1	git reset --hard HEAD^	回退到上个版本
11.2	git reset --hard	本地库、暂存区动、工作区都动
11.3	git reset --mixed	本地库、暂存区动,工作区不动
11.4	git reset --soft	本地库动,暂存区、工作区不动
11.5	git reset --hard HEAD~3	回退到前3次提交之前
12.1	git push origin HEAD --force	推送到远程仓库
12.2	git push --set-upstream origin dev	本地创建了一个名为dev的分支,远程仓库没有这个分支,push
13	git merge	合并代码
14	git merge --abort、	取消合并过程
	git reset --merge	取消合并过程
15.1	git stash	将当前分支修改暂存
15.2	git stash list	查看暂存信息
15.3	git stash apply	恢复最近一次修改
15.4	git stash apply stash@{2}	恢复索引
16.1	git config --local remote.origin.url	查看代码仓库地址
16.2	git config --local remote.origin.url http://www.abc.com/abc.git	修改代码仓库地址
17.1	git branch -d 分支名称	删除本地分支,不能删除当前所在的分支,如果要删除,必须先切换到其他分支上
17.2	git branch -D 分支名称	强制删除分支
17.3	git push origin :分支名称	删除远程分支,分支名称前有个冒号,分支名前的冒号代表删除
18	git status	文件、文件夹在工作区、暂存区的状态
19	git log	查看提交历史
更多推荐

应用案例 | 使用dataFEED OPC Suite将汽车零部件工厂数据集成到SAP Business Suite

一背景某知名空气过滤和热管理组件供应商是一家专业的汽车零部件制造集团——专注于液体和空气过滤系统、进气系统以及热管理组件的生产与销售。该集团在全球范围内拥有24个生产工厂,并在运营中广泛采用了SAPBusinessSuite作为其企业资源规划(ERP)和制造执行系统(MES)。该集团的主要业务需求是将来自车间设备的生产

SpringSecurity 权限管理的实现

文章目录前言权限管理的实现权限校验的原理FilterSecurityInterceptorAccessDescisionManagerAffirmativeBasedConsensusBasedUnanimousBasedAccessDecisionVoterWebExpressionVoterAuthenticate

响应式网页设计(Responsive Web Design)的核心原理

聚沙成塔·每天进步一点点⭐专栏简介⭐响应式网页设计的核心原理⭐优点和缺点优点缺点⭐写在最后⭐专栏简介前端入门之旅:探索Web开发的奇妙世界欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个

国产化系统中遇到的视频花屏、卡顿以及延迟问题的记录与总结

目录1、国产化系统概述1.1、国产化操作系统与国产化CPU1.2、国产化服务器操作系统1.3、当前国产化系统的主流配置2、视频解码花屏与卡顿问题2.1、视频解码花屏2.2、视频解码卡顿2.3、关于I帧和P帧的说明3、国产显卡处理速度慢导致图像卡顿问题3.1、视频延时和卡顿原因分析3.2、SDL2库跑在景嘉微国产显卡上效

亚马逊、敦煌网、国际站自养号测评需要哪些资源与技术门槛?

测评服务商说的天花乱坠,实际真假难辨,FB等社交软件自找测评犹如大海捞针。产品都要上架了,靠谱的测评服务还是没找到,亚马逊测评求人不如求己,今天来教你怎么养一批安全、可控的买家号。亚马逊等跨境平台测评自养号需要用到哪些资源呢?1、养号系统及软件2、代理IP资源3、收货地址及注册资料4、外币信用卡及礼品卡5、邮箱及手机号

当量因子法、InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估中的应用及论文写作、拓展分析

生态系统服务是人类从自然界中获得的直接或间接惠益,可分为供给服务、文化服务、调节服务和支持服务4类,对提升人类福祉具有重大意义,且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目(MillenniumEcosystemAssessment,MA)以来,生态系统服务成为学术界的研究热点,其中在生态系统服务功能

学习笔记|模数转换器|ADC原理|STC32G单片机视频开发教程(冲哥)|第十七集:ADC采集

文章目录1.模数转换器(ADC)是什么?手册说明:2.STC32G单片机ADC使用原理19.1.1ADC控制寄存器(ADC_CONTR)19.1.2ADC配置寄存器(ADCCFG)19.1.4ADC时序控制寄存器(ADCTIM)19.3ADC相关计算公式3.编写最简单的ADC采集代码(查询&中断)P10的引脚去获取一个

4、ARM异常处理

一、异常处理1、异常概念处理器在正常执行程序的过程中可能会遇到一些不正常的的事件发生,这时处理器就要将当前的程序暂停下来转去处理这个异常的事件,异常事件完成后再返回到之前被异常打断的点继续执行2、异常处理机制不同的处理器对异常的处理流程大体相同,但是不同的处理器在具体实现的机制上有所不同。比如处理器遇到哪些事件认为是异

【Flink实战】玩转Flink里面核心的Source Operator实战

🚀作者:“大数据小禅”🚀文章简介:【Flink实战】玩转Flink里面核心的SourceOperator实战🚀欢迎小伙伴们点赞👍、收藏⭐、留言💬目录导航Flink的API层级介绍SourceOperator速览Flink预定义的Source数据源案例实战Flink自定义的Source数据源案例-订单来源实战F

Android UT开发简介

一、概述AndroidUT(UnitTesting)开发是指在Android应用程序中进行单元测试的开发过程。单元测试是一种软件测试方法,用于测试应用程序中的最小可测试单元(通常是函数或方法)的正确性。AndroidUT开发的主要目标是确保应用程序的各个单元在不同情况下能够按照预期正确运行。通过编写、运行和维护单元测试

免费、安全、可靠!一站式构建平台 ABS 介绍及实例演示 | 龙蜥技术

编者按:操作系统是一个大的软件集合,成百上千个软件之间有相互调用、相互依赖等各种复杂的关联关系,所以统一的软件包格式,能够更友好地管理、定义这些复杂关系。今天,龙蜥社区基础设施Contributor单凯伦带大家了解龙蜥社区官方构建平台ABS,熟悉AnolisOS软件包、镜像构建流程以及ABS未来规划等。本文整理自龙蜥大

热文推荐