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.hqwc.cn/news/691896.html

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

相关文章

数据分享—鄱阳湖矢量边界数据

鄱阳湖位于中国江西省北部,是中国最大的淡水湖泊之一,也是长江流域第一大湖。鄱阳湖水域广阔,湖区面积约为3600平方公里。鄱阳湖拥有丰富的水生生物资源,湖中有多种淡水鱼类和水生植物,是重要的渔业资源基地之一。湖泊…

【报错合集】完美解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”

文章目录 解决方案:更改设置的硬件版本 今天我需要将别人的虚拟机克隆到我的VMware Workstation上运行,结果发生了以下的错误: 刚开始以为是VMware Workstation的版本问题太低导致的,所以我删除了原来的那个版本,下载…

哈希算法在区块链中的应用

哈希算法是区块链技术的核心组件之一,它确保了区块链数据的不可篡改性和安全性。在本文中,我们将探讨哈希算法的基本原理,以及它在区块链中的具体应用。 哈希算法的基本原理 哈希算法是一种数学函数,它接收输入(或“消…

实现echarts地图

效果图: 2.echarts.registerMap("xizang", XZ) 注册了一个名为 "xizang" 的地图,其中 XZ 是地图数据。 接下来是 option 对象,包含了图表的配置信息,比如图表的布局、提示框样式、地理组件配置和系列数据配置等。 在 t…

【计算机网络篇】数据链路层(9)使用集线器的共享式以太网

文章目录 🛸使用同轴电缆的共享总线以太网 🎆使用集线器的共享式以太网🥚集线器的特点 🍔10BASE-T星型以太网 🛸使用同轴电缆的共享总线以太网 若总线上的某个机械连接点接触不良或断开,则整个网络通信就不…

数据分析中大数据和云计算

大数据和云计算 前言一、大数据二、大数据定义三、数据存储单位四、大数据存储技术五、大数据应用技术六、大数据特征七、数据容量八、数据类型的多样性结构化数据半结构化数据非结构化数据 九、获取数据的速度十、可变性十一、真实性十二、复杂性十三、价值十四、云计算十五、…

求两个整数中的大者,用函数调用实现

在调用函数时,大多数情况下,函数是带参数的。主调函数和被调用函数之间有数据传递关系。前面已提到:在定义函数时函数名后面括号中的变量名称为形式参数(formal parameter,简称形参),在主调函数…

TriCore:Interrupt

今天简单总结下 TriCore 的中断路由模块。 名词缩写 缩写全程说明IRInterrupt Router SRService Request 包括: 1. External Resource 2. Internal Resource 3.SW(Software) SPService Privoder 包括: 1. CPU 2. DMA SRNServic…

Linux makefile进度条

语法 在依赖方法前面加上就不会显示这一行的命令 注意 1.make 会在当前目录下找名为“makefile” 或者 “Makefile” 的文件 2.为了生成第一依赖文件,如果依赖文件列表有文件不存在,则会到下面的依赖关系中查找 3..PHONY修饰的依赖文件总是被执行的 …

QGIS编译

一,安装:OSGeo4W 二,安装:Cygwin64 https://www.cygwin.com/setup-x86_64.exe 三,安装: 安装bison和flex 四)QGIS_3.28 下载QGIS_3.28的源码包 五 环境变量设置: echo off set VS19…

vscode+clangd阅读Linux内核源码

1. 禁用或卸载官方C/C插件. 2. 安装clangd插件 3. 清除之前的产物 4. 生成.config文件 5.编译生成内核镜像 6.编译内核模块 7.编译设备树文件 8.生成compile_commands.json文件 运行上述命令后,在内核源码根目录生成了compile_commands.json文件 9.设置clangd插…

商务分析方法与工具(九):Python的趣味快捷-Pandas处理公司财务数据集思路

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…