git知识总结

要知道

本地回退后,反悔了,可以恢复。前提是已经提交了,提交了就丢不了。 

git reflog  +  git reset --hard commitId


以前git push不让推,就是没有对应关系。第一次推要setxxx参数。 


 

 前奏


 


设置用户名和邮箱,设置错了,可以重新输入,重新设置

git config --global user.name “gzy”

git config --global user.email "xxxx163.com"

查看用户名和邮箱。邮箱可以是不存在的邮箱

git config --global user.name

git config --global user.email

给指令设置别名 。自己无法用鼠标创建.开头的文件,可以用指令。必须设置在用户根目录下 ~/表示根路径下

1.创建.bashrc文件

touch ~/.bashrc

2.在.bashrc文件中输入如下内容

#用于输出git提交日志

alias git-log ='git log --pretty=oneline --all --graph --abbrev-commit'

#用于输出当前目录所有文件及其基本信息

alias ll='ls -al'

3.打开gitBash , 执行.                告诉shell从~/.bashrc文件中读取并执行其中的命令

source ~/.bashrc

 

解决gitBash乱码问题

1.打开gitBash执行

git config --global core.quotepath false

2.git安装目录下文件中修改文件,添加两行代码    git_home是git安装目录

 

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

 

初始化仓库

git init

查看内容  配置完别名的

ll

 状态

我们的文件所在区域就是工作区 

缓存区就是提交本地仓库之前的缓存区

工作区进入暂存区用add,暂存区进入仓库用commit。


git流程中的状态

untracked未跟踪:新创建的文件,还没有与git产生联系。 

unstaged未暂存:修改已经有的文件,但是没有进入暂存区

staged已暂存:已经在暂存区。暂存区就是提交本地仓库之前的缓存区。

to be committed即将被提交:已经进入暂存区,还没被提交

命令 

基础指令

touch file01.txt  创建文件

git status   查看状态

git add .  添加所有到暂存区 

git commit -m "add file01"  提交        在本地提交了肯定丢不了

git log  查看日志   

vi file01.txt(文件名)  键盘insert变为可编辑状态,esc退出,:wq退出保存

git reset --hard commitId    回退版本

git reflog  查看操作记录      可以查看历史,即使回退完,也可以返回  。查看已删除的记录
git-log  查看提交记录    这个是别名指令

当git add  不想将所有的文件都添加到缓存区时。

 touch .gitignore   创建忽略文件    .固定名称

vi .gitignore  insert  :wq

输入 *.a  就是git add . 不会添加.a结尾的文件。

git clone 克隆

远端分支,也是一个分支。 

git fetch origin master   抓取远端master到本地

git pull    拉取远端

推送远程

git remote add origin git@gitee.com:ayu--66/git_test.git   关联远程仓库   origin是远端分支名可以自定义,一般都默认是origin

git remote  查看是否有远程仓库

git push origin master   将master推到远程仓库,每次都这么写也可以      因为名称一致,所以省略了 :master

git push  推送远端       不让推,是因为不知道绑定关系,本地与远端。

git branch -vv   查看本地与远端的对应关系

git push --set-upstream origin master:master    设置对应关系     第一次推的时候要加setxxx

git push 有了对应关系就可以使用了。

 

 

 分支

git branch  查看分支                   head指向谁,谁就是当前分支

git branch dev01(分支名)  创建分支

git checkout dev01(分支名) 切换分支 

git checkout -b dev02   切换并创建    没有这个分支就创建出来在切换。

git merge 分支名称(要合并的分支)   合并分支    合并到master,现在就要在master。

git branch -d b1  删除分支,需要做各种检查

git branch -D b1 强制删除  (删除的分支有内容没有完全合并到master上,-d就无法删除)

常用命令 

git init

git clone 地址

git add .

git commit -m 'xxx' 

git remote add origin 地址    与远程建立连接

git push origin master    不统一配置,每次都要这么写

git push --set-upstream origin master   统一建立关联

git push   建立关联后,就可以直接用了

git pull = git fetch + git merge  先抓取到本地,再合并也行。

git checkout 分支名

git checkout -b 分支名

git-log 别名日志 配置的

git merge

git status

git reset --hard commitId

 

本地解决冲突:

dev修改 file01文件                            内容:abcdev

master修改file01文件                        内容:abcmaster

切换到master,执行 git merge dev

 

冲突,合并失败。

此时,打开冲突文件file01。这个文件就变样了。

 git无法合并,交给提交人来解决冲突。

 

找到冲突文件,解决后,重新提交。 

 


远端解决冲突

远端与你本地不一致,远端被别人推送了,并且正好是你修改的那一行代码。

之所以产生冲突就是因为 git merge操作,合并操作,不知取你的还是他的。

git pull = git fetch + git merge。

这时候一样的操作,找到冲突的文件,进行修改(解决冲突) add commit 重新推送。

图1:B是本地的master进行了修改。A是远端,修改了master。

图2:B要推代码之前,先拉取(抓取+合并),此步骤会解决冲突。

图3:远端完成同步


两个人都有需求,改的是同一个文件。后推送的人会推送失败,产生冲突。这时候只需拉取,找到冲突文件,add,commit,push,就可以了。A只需再pull就可以和远端一样了。

 

解决冲突的本质操作

找到冲突文件,本地进行修改,然后add ,commit ,再推送

每次推送前,要进行pull操作。 不拉取有可能会覆盖别人代码(但是git会有提示不让推送)

ssh仓库

ssh-keygen -t rsa    生成秘钥   一路回车

cat ~/.ssh/id_rsa.pub   查看秘钥  复制    粘贴到这里。

 

ssh -T git@gitee.com  验证秘钥是否配置成功

如果是秘钥,就用ssh

 

 修改Terminal

铁律 

用idea切换分支之前,一定要提交代码,只要代码提交了,代码就丢不了。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker 部署SSM项目(包含打包)

一:SSM项目打包 1.这个一定要勾选防止静态资源没打包上 2.第二步 3.第三步 4.更改名字(注意部署到线上的时候这里如果用docker或者window部署的话需要带这个项目名,不然会出现找不到接口的情况) ![在这里插入图片描述](https://img-blog.csdnimg.cn/dir…

C#中数组与列表,集合等的联系

C#中,所有数组都自动继承于System.Array这个抽象类,数组都为引用类型, 所有对数组的更新都会导致源数组的元素值的篡改。 而所有集合的根都来自可枚举接口IEnumerable 数组有三种样式: 数组的Rank(秩)属…

企业微信hook接口协议,ipad协议http,同步消息记录

同步消息记录 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信limit是int每次返回大小seq是int查询下标 请求示例 {"uuid":"ecb033af-6fcd-4ec2-880e-41f070b65eaf","limit":1000, "seq":1…

访客管理系统对于校园安全的重要性

校园访客办理计划是针对校园安全需求规划的安全办理体系,主要用于对校园外来人员的科学办理。要做好校园安全作业,把风险分子拒之门外尤为要害。校园访客办理计划实现访客实名制,并结合公安网、黑名单功用,对风险人员进行提前预警…

浅析vue3自定义指令

vue3中可以像下面这样使用自定义指令。 这里我们只是定义了一个vFoucs变量,vue怎么知道这是一个指令呢? 这是因为约定大于配置,vue3中有这样一个约定(截图来自官方文档): 注意这里说的是驼峰命令&#x…

【class6】人工智能初步(选择一个合适的监督学习算法。)

【昨日内容复习】 进行监督学习时,第一个步骤是提取数据集的文本特征和对应的标签。 提取文本特征的具体步骤如下: STEP1. 构造词袋模型,提取数据集中的文本特征 STEP2. 使用toarray()函数,将X转换为一个NumPy数组,方…

初始化linux数据盘(3TB)分区-格式化-挂载目录

场景说明:某云给我们服务器加载了一块3TB的硬盘扩容(没有直接扩,原因是原来的盘做的是mbr(什么年代了,谁干的)的分区,最大识别2TB) 确认磁盘 输入命令lsblk 查看数据盘信息 &#…

PyQt5的多窗口设计

文章目录 步骤一步骤2步骤3步骤4步骤5完整的代码如下 步骤一 1.首先新建一个窗口,把对象名改为ParentWindow,然后保存,把.ui的名字改为Main_window.ui 步骤2 再新建一个窗口,把对象名改为ChildWindow1,然后保存&…

Python 旋转立方体

文章目录 效果图运行环境完整代码实现思路1. 导入库和定义常量2. 创建Cube类3. 实现Cube类的draw方法4. 实现主函数 效果图 运行环境 python版本:python3.x 依赖包: $ pip install pygame $ pip install numpy完整代码 import numpy as np # 导入 N…

【复试分数线】工科985历年分数线汇总(第三弹)

国家线 可以看作是考研上岸最最最基础的门槛。真正决定你能不能进入复试的还要看院线(复试分数线)!今天我将分析考信号的5所工科类985近三年复试分数线,大家可以参考!! 分别是:①北京航空航天大…

k8s coredns配置

1.coredns可根据集群具体数量修改pod数,官方推荐比例为5/1,即有15台服务器最好是3个pod。 2.coredns会继承pod所在主机的dns解析,修改了主机的dns解析之后,coredns有一段时间的缓存,重启coredns才会在集群内部立刻生效该解析。 …

黑马甄选离线数仓项目day01(项目介绍)

课程介绍 项目名称 黑马甄选数仓形式 离线数仓开发业务类型 电商业务 电商介绍 B2B B2C C2C 项目属于 新零售电商 新零售 线上(网站,app,小程序) 线下(实体体验店) 物流(自营物流) 项目行业 果蔬生鲜领域 商业模式 B…

[图解]实现领域驱动设计译文暴露的问题03

0 00:00:02,960 --> 00:00:04,940 前面我们讲了 1 00:00:05,260 --> 00:00:06,810 第①句话的 2 00:00:07,090 --> 00:00:09,750 第(1)个问题和第(2)个问题 3 00:00:13,920 --> 00:00:16,930 共享父类的对象&#…

【代码随想录算法训练Day5】今天休息,复盘总结

Day5 休息日 时机恰到好处,刚好学习完了数组和链表,从代码随想录里扒了两张总结图来,这就是这几天里我们一起解决的问题,如果以后忘了,还有问题,先回到这里,只看思维导图,还能想起来…

WordPress 管理员密码重置方法汇总

最近明月碰到一个 WordPress 站长求助咨询,说是自己 WordPress 站点的管理员密码被恶意篡改了,对 WordPress 了解的都知道这一般都是恶意代码造成的,问题大多出在使用了所谓的破解版、去授权版的插件或者主题被植入了恶意代码、后门木马。明月…

【目标检测论文解读复现NO.38】基于改进YOLOv8模型的轻量化板栗果实识别方法

前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文&#xff0c…

革新机器人任务规划:TREE-PLANNER引领高效、准确的机器人动作生成新趋势

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! 引言 任务规划在机器人技术中扮演着至关重要的角色。它涉及到为机器人设计一系列中级动作(技能),使其能够完成复杂的高级任…

网络基础(三)——网络层

目录 IP协议 1、基本概念 2、协议头格式 2.1、报头和载荷如何有效分离 2.2、如果超过了MAC的规定,IP应该如何做呢? 2.3、分片会有什么影响 3、网段划分 4、特殊的ip地址 5、ip地址的数量限制 6、私有ip地址和公网ip地址 7、路由 IP协议 网络…

C语言/数据解构——(随即链表的复制)

一.前言 嗨嗨嗨,大家好久不见。已经有好几天没更新了。今天我们就分享一道链表题吧——随即链表的复制https://leetcode.cn/problems/copy-list-with-random-pointer废话不多说,让我们直接开始今天的题目分享吧。 二.正文 1.1题目描述 他和单链表不同…

Java入门最小必要知识:变量及其本质

编程语言是与计算机交流的桥梁,而在编程世界中,变量是这座桥上不可或缺的砖石。 从本质上,可以把复杂的编程工作简化为两件事: ①定义变量②操作变量 可见,变量之于编程的重要性。 对于Java开发者,理解…