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.mzph.cn/pingmian/11191.shtml

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

相关文章

新闻标题抓取

要从新闻⽹站⾸⻚抓取最新的新闻标题和链接,可以使⽤ requests 库获取⽹⻚内容,然后利⽤ BeautifulSoup 解析HTML,提取新闻标题和相应的链接。 由于新闻⽹站的结构可能不断变化,且每个⽹站的结构不同,这⾥提供的代码仅…

深入探索Python协程:从基础到实践的学习笔记-01

文章目录 取消任务和设置超时取消任务设置超时 future使用装饰器测量协程执行时间创建和操作事件循环 取消任务和设置超时 取消任务 要取消一个协程任务,你可以调用该任务的cancel()方法。这个操作会使得正在等待的asyncio.sleep()抛出asyncio.CancelledError异常…

回溯之组合总和II

上一篇文章使用回溯解决了组合总和I,这次使用回溯解决组合总和II,下面先给出回溯的模板代码。 private void backtracking(参数1,参数2,...){if(递归终止条件){收集结果;return;}for(遍历集合){处理;backtracking(参数1,参数2,...); // 递归;回溯;} }组…

5. FactoryTalk View SE -- 模拟量趋势记录

step1: 在项目列表下找到数据记录–数据记录模型–新建。 step2:更改描述、文件标识符、存储格式。 step3:更改文件缓存路径。 step4:更改缓存文件保存的周期。 step5:5s保存一次数据。 step6:添加标…

zero123 转 diffusers 的 base model

zero123 转 diffusers 的 base model Q1Q2 Q1 ModuleNotFoundError: No module named pipeline_zero1to3将pipeline_zero1to3.py放到convert_zero123_to_diffusers.py同级目录下 pip install kornia pip install pytorch_lightningQ2 $ python ./diffusers/scripts/convert…

从零开始搭建Springboot项目脚手架2:配置文件、返回值、日志等

1、多个环境与配置文件 2、统一返回值 返回值包括两种场景:正常controller的返回、异常发生之后返回 正常controller的返回:通过在controller的默认返回Response实现 异常发生之后返回:通过全局异常处理统一捕获返回 首先创建类StatusCode…

Java中的NIO及其与传统IO的区别

Java的NIO(New Input/Output)是从Java 1.4版本开始引入的一套新的IO API,用来替代标准Java IO API。NIO支持面向缓冲区的(Buffer-oriented)、基于通道的(Channel-based)IO操作。NIO旨在提高IO操…

[Spring Cloud] (7)gateway防重放拦截器

文章目录 简述本文涉及代码已开源Fir Cloud 完整项目防重放防重放必要性:防重放机制作用: 整体效果后端进行处理 后端增加防重放开关配置签名密钥 工具类防重放拦截器 前端被防重放拦截增加防重放开关配置请求头增加防重放签名处理防重放验证处理函数bas…

打造清洁宜居家园保护自然生态环境,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建自然生态场景下违规违法垃圾倾倒检测识别系统

自然生态环境,作为我们人类赖以生存的家园,其健康与否直接关系到我们的生活质量。然而,近年来,一些不法分子为了个人私利,在河边、路边等公共区域肆意倾倒垃圾,严重破坏了环境的健康与平衡。这种行为不仅损…

ffmpeg推流flv到rtmp

前言 使用ffmpeg推流很简单,使用ffmpeg命令推流更简单。本篇以本文标题《ffmpeg推流flv到rtmp》为中心。只推流输入flv格式的媒体文件,只推流到rtmp。 原因很简单,简化一切复杂的流程,稍后再说原因。我们通过多篇慢慢的提升代码复杂度,例如:把mp4推流到rtmp需要使用ffm…

18.04版本的ubuntu没有连接网络的图标(坑人版)

以下更新内核别看,因为后面安装驱动报一堆错误!!! 不升级内核成功方法跳转连接:https://blog.csdn.net/weixin_53765004/article/details/138771613?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%2213877…

单调栈问题

原理 单调栈的核心原理是:在栈内保持元素的单调性(递增或递减) 单调递增栈: 用于处理“下一个更小的元素”问题。当新元素比栈顶元素小或等于时,直接入栈;否则,一直从栈顶弹出元素&#xff0c…

React 第二十六章 React.memo

React.memo 是 React 提供的一个高阶组件&#xff0c;用于对函数组件进行性能优化。 React.memo 的源码实际上就是返回一个 PureComponent 组件&#xff1a; function memo(FuncComp){return class Memo extends PureComponent{render(){return <>{FuncComp(this.props…

OBS直播二次开发_OBS直播软件介绍

OBS工作室版 免费且开源的用于视频录制以及直播串流的软件。 下载以在Windows, Mac以及Linux上简单且快速的开始串流。 功能 实时高性能的视频/音频捕捉与混合,以及无限的场景模式使您可以通过自定义实现无缝转换。为视频源设计的滤镜例如图片蒙版,色彩校正,色度/色彩键控…

软件体系结构风格

目录 一、定义 二、.经典软件体系结构风格&#xff1a; 1.管道和过滤器 2.数据抽象和面向对象系统 3.基于事件系统&#xff08;隐式调用&#xff09; 4.分层系统 5.仓库 6.C2风格 7.C/S 8.三层C/S 9.B/S 题&#xff1a; 一、定义 软件体系机构风格是描述某一特定应用…

没想到 JSON 还可以像 XPATH 方式进行操作,简直不要太爽

Jayway JsonPath 是一种 Java 库&#xff0c;用于在 Java 应用程序中解析和操作 JSON 数据。它提供了一种便捷的方式来定位和提取 JSON 文档中的信息&#xff0c;通过使用类似于 XPath 的语法&#xff0c;开发人员能够轻松地选择和操作 JSON 数据。 JsonPath 表达式是由用点分…

物联网系统

文章目录 一、物联网二、物联网系统1.核心特点2.体系构架3.作用 一、物联网 物联网&#xff08;Internet of Things&#xff0c;IoT&#xff09;是指将各种物理设备&#xff08;如传感器、执行器、嵌入式系统等&#xff09;通过互联网连接起来&#xff0c;并通过云计算系统实现…

通过内网穿透实现远程访问个人电脑资源详细过程(免费)(NatApp + Tomcat)

目录 1. 什么是内网穿透 2. 内网穿透软件 3. NatApp配置 4. 启动NatApp 5. 通过内网穿透免费部署我们的springboot项目 通过内网穿透可以实现远程通过网络访问电脑的资源&#xff0c;本文主要讲述通过内网穿透实现远程访问个人电脑静态资源的访问&#xff0c;下一章节将讲…

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

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

超级好用的C++实用库之点阵字体

&#x1f4a1; 需要该C实用库源码的大佬们&#xff0c;可搜索微信公众号“希望睿智”。添加关注后&#xff0c;输入消息“超级好用的C实用库”&#xff0c;即可获得源码的下载链接。 概述 点阵字体是一种数字字体&#xff0c;其中每个字符都由一定尺寸的像素矩阵组成。比如&…