Git使用总结(git使用,git实操,git命令和常用指令)

简介:Git是一款代码版本管理工具,可以记录每次提交的代码,防止代码丢失,可实现版本迭代,解决代码冲突,常用的远程Git仓库:Gitee(国内)、GitHub(国外,开源之家)、GitLab(企业级)。



一. Git安装使用

下载地址:

GIt官网icon-default.png?t=N7T8https://www.git-scm.com/Git版本安装验证:

git --version / git -v
//显示
git version 2.37.3.windows.1



二. git拉取代码,git克隆仓库的两种情况

1. 仓库有代码时

git clone 项目地址/https


2. 仓库没有代码时,连readme都没有(按操作步骤,上传文件)
 

git init  生成.git目录git remote add origin  远程仓库地址 #本地仓库关联到远程仓库git add .  添加到本地git commit -m '备注'  提交备注(就是你干了什么,写上)git push --set-upstream origin 分支名刷新远程仓库查看git remote remove origin  移除本地仓库关联的远程仓库,可重新绑定


三. git克隆仓库的两种方法

1. HTTPS(超文本传输协议),首次使用,初始化个人信息(填写个人用户信息)

git config --global user.name '用户名'git config --global user.email '邮箱'克隆命令:git clone 仓库地址/https

2. SSH(一次声明永久使用)

生成密钥:ssh-keygen -t rsa -C "邮箱"复制公钥:cat ~/.ssh/id_rsa.pub配置到远程仓库,举例gitee:设置 ->SSH公钥 -> 添加公钥克隆:git clone 仓库地址/SSH


四. git增删改

1. git add .  添加到暂存区(开发区域 -> 暂存区);2. git commit -m '备注'提交到本地区域 (暂存区 ->本地区域);3. git pull  远程仓库的代码拉到本地"合并";4. git push  本地代码提交到远程仓库(本地区域 -> 远程区域);5. git status  查看文件状态;6. git fetch    远程仓库的数据拉到本地"不合并";(此命令并不强迫让远端的变更合并到你的仓库,会对本地内容与fetch下载的内容进行隔离;)


五. git日志回滚

查看日志(提交的历史记录):

1.git log(详细但条数少,回车查看更多)2.git log --pretty=oneline(相对没有1详细,格式化后的,回车查看更多)代码回滚(回到你提交的那个版本):
git reset --hard HEAD^          回退到上个版本
git reset --hard HEAD~3         回退到前3次提交之前,以此类推,回退到n次提交之前回退到指定版本(很长,唯一标识前7个字母即可,commit_id就是那个标识字符)
git reset --hard commit_id      


六. git分支

查看分支:
git branch 查看自己创建的(克隆的仓库就算创建的第一个分支)
git branch -r  查看从远程缓存的分支
git branch -a  查看1+2创建分支:
git branch 分支名 (基于当前分支)
git branch 新分支名 旧分支名 (基于指定分支)切换分支:
git checkout 分支名
创建并切换分支:
git checkout -b 分支名 (基于当前分支)
git checkout -b 新分支名 旧分支名(基于指定分支)删除分支:
git branch -d 分支名 (删除分支)
git branch -D 分支名 (强制删除分支)


七. git代码冲突

问题:git push 时报错,原文件冲突

解决:

1. git pull 从远程仓库拿到最新的代码(先添加到本地git add . ,然后再添加备注git commit -m '' ,然后先拉取.git pull,解决完冲突后,再推送git push)2. git status 查看状态,根据提示去修改冲突文件3. 重新git add . / git commit -m '' / git push


八. git实操和其它

git stash                  //存到临时区
git stash list             //查看临时区列表 
git stash pop              //弹出临时区git tag  <tagName>               //创建本地tag;
git push origin  <tagName>       //推送到远程仓库;//若存在很多未推送的本地标签,一次性全部推送;
git push origin --tags     git show <tagName>                    //查看本地某个 tag 的详细信息;
git tag 或者 git tag -l               //查看本地所有 tag;
git ls-remote --tags origin           //查看远程所有 tag;
git tag -d <tagName>                  //本地 tag 的删除;
git push origin :refs/tags/<tagName>  //远程 tag 的删除;
tag是git版本库的一个标记,指向某个commit的指针,
创建 tag 是基于本地分支的 commit,而且与分支的推送是两回事,
就是说分支已经推送到远程了,但是你的 tag 并没有,
如果把 tag 推送到远程分支上,需要另外执行 tag 的推送命令;//远程仓库的数据拉到本地"合并",合并意味着可能存在冲突或者修改,
//因此每次合并后必定git status查看冲突解冲突(git pull = git fetch + git merge 分支名)
git pull  
//远程仓库的数据拉到本地"不合并"
git fetchb      
//恢复之前最新/h恢复已删除(撤消工作区的修改返回到最近一次add(缓存区)的
//版本或者最近一次commit(当前版本库)的版本)            
git restore 文件名  git log                           //查看提交历史
git branch                        //检测分支
git branch dev                    //创建dev分支
git checkout dev                  //切换到dev分支
git checkout -b dev               //创建并使用dev分支 
git checkout master               //切回到主分支
git merge dev                     //把dev合并到master主分支
git branch -v                     //查看分支
git merge 分支名                  //指定分支合并到当前分支git clone https://gitee.com/fenghuanb2/a2105.git  //克隆远层仓库文件到本地文件夹//把本地仓库(文件夹)推到远程仓库(gitee),origin(名字随便起的);
git remote add origin HTTPS  git push origin master:master  //把本地仓库主分支推到远程仓库主分支;//把dev分支添加到名字为origin的远程仓库(或者是git push HTTPS,少用);
git push origin dev:dev  git remote -v  //查看仓库数量、状态;git push --set-upstream origin dev  //创立本地和远程对应关系;Everything up-to-date  //所有都是最新


⭐隐藏文件和相关问题

一. 隐藏文件

1. .git(非常重要)> config文件存放了push提交的仓库地址

2. .gitignore是git忽略上传的文件


二. 相关问题

1. 切换分支代码丢失?

解决:

第一种:切换分支前,git add .  &&  git commmit -m '备注'

第二种:存到临时区,git add .  &&  git stash  使用的时候再弹出来 git stash pop(弹到当前分支)

2. 大家普遍克隆的是dev  因为它是默认分支,然后老大说一句话  让你拉去login分支代码开发?基于码云的login分支开发代码(即基于远程创建分支)?

解决:

git branch login  错误的  这不是基于码云 git branch 新分支名  指定分支名

git checkout -b login  错误的  这不是基于码云 git checkout -b 新分支名  指定分支名


三. 注意事项

1. 第一次创建分支push到远程仓库时间较长

git push --set-upstream origin 分支名

2. 基于旧分支创建的新分支,新分支有代码(传值)

新旧分支互不影响

3. 切换分支必须git add. && git commit或者git add . &&  git stash(否则代码丢失)


四. Git的相关命令都是通用的,Gitee(国内)、GitHub(国外)、GitLab(企业级)

创作不易,感觉有用,就一键三连,感谢(●'◡'●)

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

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

相关文章

接口请求的六种常见方式详解(get、post、head等)

一&#xff0e;接口请求的六种常见方式&#xff1a; 1、Get 向特定资源发出请求&#xff08;请求指定页面信息&#xff0c;并返回实体主体&#xff09; 2、Post 向指定资源提交数据进行处理请求&#xff08;提交表单、上传文件&#xff09;&#xff0c;又可能导致新的资源的建…

封装console

目的 1. 封装console.log , 使得打印更美观方便 2. 同时希望上线后不在打印消耗资源 例图&#xff1a; export const prettyLog () > {const isProduction import.meta.REACT_APP_ENV "prod";const isEmpty (value) > {return value null || val…

Flutter 实现dispose探测控件

文章目录 前言一、什么是dispose探测控件&#xff1f;1、通常情况2、使用dispose探测控件 二、如何实现1、继承StatefulWidget2、定义dipose回调3、定义child4、重载Dispose方法5、build child 三、完整代码四、使用示例1、基本用法2、设置定义数据 总结 前言 开发flutter一般…

Java 期末复习 习题集

&#x1f496; 单选题 &#x1f496; 填空题 &#x1f496; 判断题 &#x1f496; 程序阅读题 1. 读代码写结果 class A {int m 5;void zengA(int x){m m x;}int jianA(int y){return m - y;} }class B extends A {int m 3;int jianA(int z){return super.jianA(z) m;} …

Chapter 6 Frequency Response of Amplifiers

Chapter 6 Frequency Response of Amplifiers 这一节我们学习单极和差分运放的频率响应. 6.1 General Considerations 我们关心magnitude vs 频率, 因此有低通, 带通, 高通滤波器 6.1.1 Miller Effect Miller’s Theorem 考虑impedance Z1和Z2, X和Y之间增益为Av. Z1 Z/(…

spring 启动顺序

BeanFactoryAware 可在Bean 中获取 BeanFactory 实例 ApplicationContextAware 可在Bean 中获取 ApplicationContext 实例 BeanNameAware 可以在Bean中得到它在IOC容器中的Bean的实例的名字。 ApplicationListener 可监听 ContextRefreshedEvent等。 CommandLineRunner 整…

数据结构与算法笔记:基础篇 - 二叉树基础(下):有了如此高效的散列表,为什么还需要二叉树?

概述 上篇文章&#xff0c;我们学习了树、二叉树及二叉树的遍历&#xff0c;本章来学习一种特殊的二叉树&#xff0c;二叉查找树。二叉查找树最大的特点就是&#xff0c;支持动态数据集合的快速插入、删除、查找操作。 之前说过&#xff0c;散列表也是支持这些操作的&#xf…

盘点2024年5月Sui生态发展,了解Sui近期成长历程!

2024年5月是Sui的第一个生日月&#xff0c;Sui迎来了它的上线一周年纪念日。在过去的一年中Sui在技术进步与创新、生态系统的扩展、社区发展与合作伙伴关系以及重大项目和应用推出方面取得重要进展&#xff0c;展示了其作为下一代区块链平台的潜力。 以下是Sui的近期成长历程集…

QT 信号和槽 通过自定义信号和槽沟通 如何自定义槽和信号的业务,让它们自动关联 自定义信号功能

通过信号和槽机制通信&#xff0c;通信的源头和接收端之间是松耦合的&#xff1a; 源头只需要顾自己发信号就行&#xff0c;不用管谁会接收信号&#xff1b;接收端只需要关联自己感兴趣的信号&#xff0c;其他的信号都不管&#xff1b;只要源头发了信号&#xff0c;关联该信号…

STM32 | 独立看门狗 | RTC(实时时钟)

01、独立看门狗概述 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状…

QQ号码采集器-QQ邮箱采集器

寅甲QQ邮箱采集器或QQ号码采集软件, 一款采集QQ号、QQ邮件地址&#xff0c;采集QQ群成员、QQ好友的软件。可以按关键词采集&#xff0c;如可以按地区、年龄、血型、生日、职业等采集。采集速度非常快且操作很简单。

BoardLight - hackthebox

简介 靶机名称&#xff1a;BoardLight 难度&#xff1a;简单 靶场地址&#xff1a;https://app.hackthebox.com/machines/603 本地环境 靶机IP &#xff1a;10.10.11.11 ubuntu渗透机IP(ubuntu 22.04)&#xff1a;10.10.16.17 windows渗透机IP&#xff08;windows11&…

从欧盟弹性法案看软件物料清单(SBOM)

随着网络安全意识的提升和相关法规的推动&#xff0c;SBOM在国际上网络安全实践中的重要性日益凸显。 例如&#xff1a;美国国土安全部&#xff08;DHS&#xff09;的 “软件供应链评估工具包”&#xff08;SCAT&#xff09;就鼓励软件供应商提供SBOM&#xff0c;以帮助买方评…

重新认识Word —— 制作简历

重新认识Word —— 制作简历 PPT的图形减除功能word中的设置调整页边距进行排版表格使用 我们之前把word长排版文本梳理了一遍&#xff0c;其实word还有另外的功能&#xff0c;比如说——制作简历。 在这之前&#xff0c;我们先讲一个小技巧&#xff1a; PPT的图形减除功能 …

【数据结构】栈和队列-->理解和实现(赋源码)

Toc 欢迎光临我的Blog&#xff0c;喜欢就点歌关注吧♥ 前面介绍了顺序表、单链表、双向循环链表&#xff0c;基本上已经结束了链表的讲解&#xff0c;今天谈一下栈、队列。可以简单的说是前面学习的一特殊化实现&#xff0c;但是总体是相似的。 前言 栈是一种特殊的线性表&…

VISIO安装教程+安装包

文章目录 01、什么是VISIO&#xff1f;02、安装教程03、常见安装问题解析 01、什么是VISIO&#xff1f; Visio是由微软开发的流程图和图表绘制软件&#xff0c;它是Microsoft Office套件的一部分。Visio提供了各种模板和工具&#xff0c;使用户能够轻松创建和编辑各种类型的图…

【微信小程序开发(从零到一)】——个人中心页面的实战项目(二)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

VS2022+Qt雕刻机单片机马达串口上位机控制系统

程序示例精选 VS2022Qt雕刻机单片机马达串口上位机控制系统 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《VS2022Qt雕刻机单片机马达串口上位机控制系统》编写代码&#xff0c;代码整洁&a…

PHP“well”运动健身APP-计算机毕业设计源码87702

【摘要】 随着互联网的趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己的信息推广出去&#xff0c;最好方式就是建立自己的平台信息&#xff0c;并对其进行管理&#xff0c;随着现在智能手机的普及&#xff0c;人们对于智能手机里面的应用“well”运动健身app也在不断…

vue中插槽的本质

定义slotCompoent.vue 组件 <template><slot></slot><slot nameslot1></slot><slot name"slot2" msg"hello"></slot> </template>使用组件&#xff1a; <slotComponent><p>默认的</p>…