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(企业级)

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

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

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

相关文章

海南聚广众达电子商务咨询有限公司引领抖音电商新风尚

在数字化浪潮汹涌澎湃的今天&#xff0c;电商行业正迎来前所未有的发展机遇。作为电商领域的一颗璀璨明星&#xff0c;海南聚广众达电子商务咨询有限公司凭借其专业的抖音电商服务&#xff0c;成功吸引了众多商家的目光&#xff0c;成为了业界的一匹黑马。 海南聚广众达电子商…

【前端】响应式布局笔记——自适应布局

自适应布局 自适应布局是不同设备对应不同的html(局部自适应)&#xff0c;通过判断设备的类型或控制局部的变化。 1、获取设备是移动端还是pc端 // 获取设备的信息let userAgent navigator.userAgent.toLowerCase();// 使用正则表达式来判断类型let device /ipad|iphone|m…

《Kubernetes部署篇:基于Kylin V10+ARM64架构CPU+containerd一键离线部署容器版K8S1.26.15高可用集群》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;企业级K8s集群运维实战 一、部署背景 由于业务系统的特殊性&#xff0c;我们需要针对不同的客户环境部署基于containerd容器版 K8S 1.26.15集群&…

45-1 waf绕过 - 文件上传绕过WAF方法

环境准备: 43-5 waf绕过 - 安全狗简介及安装-CSDN博客然后安装dvwa靶场:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客打开dvwa靶场,先将靶场的安全等级调低,然后切换到文件上传 一、符号变异 在PHP中,由于其弱类型特性,有时候仅有一…

图像算法---自动对焦AF

一&#xff0c;CDAF反差对焦原理 CDAF&#xff0c;全称Contrast Detection Auto Focus&#xff0c;即反差式对焦或对比度检测自动对焦&#xff0c;是一种广泛应用于入门级数码相机和相机模块化智能手机上的自动对焦技术。以下是关于CDAF反差对焦的详细介绍&#xff1a; 工作原…

基于Python的实验室管理系统的设计与实现(论文+源码)_kaic

摘 要 随着实验室设备越来越多&#xff0c;实验室及其设备管理工作变得越来越繁重&#xff0c;还存在些管理模式仍旧处于手工管理模式和一些抢占实验室的不文明现象&#xff0c;传统的手工模式已经满足不了日益增长的管理需求&#xff0c;而本系统摒弃传统模式&#xff0c;开启…

Docker 快速入门Ubuntu版(1h速通)

Docker 快速入门Ubuntu版&#xff08;1h速通&#xff09; 写在前面&#xff0c;本教程主要参考Docker get started&#xff0c;ChatGPT-4o的回答&#xff0c;以及网络上查找到的其他资料&#xff0c;这里主要是记录了笔者的学习过程&#xff0c;难免会有批漏&#xff0c;还烦请…

手写mybatis-预编译后sql语句

sql表 mybatis数据库中的gxa_user表 /*Navicat Premium Data TransferSource Server : rootSource Server Type : MySQLSource Server Version : 80028Source Host : localhost:3306Source Schema : mybatisTarget Server Type : MySQLTarget…

苹果警告部分 iPhone 用户称他们遭到雇佣间谍软件攻击

苹果警告部分 iPhone 用户称他们遭到“雇佣间谍软件攻击 苹果正在提醒用户注意针对 iPhone 的新一轮已识别雇佣间谍软件攻击。可能的受害者已经收到来自苹果的电子邮件&#xff0c;其中描述了该攻击如何“远程破坏 iPhone”。据路透社报道&#xff0c;印度和其他 91 个国家的受…

前端图片在切换暗黑模式时太亮该怎么办?

通过css中的filter属性来实现&#xff0c;进行图片的色系反转、亮度、对比度调整等 1、invert 反转输入图像&#xff0c;值为 100% 则图像完全反转&#xff0c;值为 0% 则图像无变化 filter: invert(1); 2、blur 给元素应用高斯模糊效果。 filter: blur(5px); 3、brightnes…

港中文斯坦福提出SD加速模型PCM,一步即可生成图像和视频,可直接与SD1.5,SDXL,AnimateLCM结合!

又有新的SD加速模型可以用了&#xff0c;PCM解决了原来LCM模型的各种问题。并且对 AnimateLCM 也做了优化&#xff0c;用PCM直接生成动画也可以保证质量了。 PCM从这三个角度说明了LCM的设计空间是有限的并很好地解决了这些限制。 PCM主要改善了三个LCM原有的问题&#xff1a;…

SpringBoot Redis读写与数据序列化 RedisTemplate 与 StringRedisTemplate 防转字节

介绍 RedisTemplate 对象在底层默认会转成字节&#xff0c;造成了内存的开销很大&#xff0c;这是他底层进行处理的,造成可读性差&#xff0c;如需要转成简单的字符串存储需要进行序列化的配置。 RedisTemplate 配置类 Configuration public class RedisConfig {Beanpublic …

文本数据预处理

1.定义 数据预处理:在数据分析之前&#xff0c;对数据进行初步处理 缺失值填写噪声处理不一致数据修正中文分词等 2. 文本数据预处理相关操作 2.1. 中文分词 安装相关库pip install jiaba2.1.1 相关使用 全模式 一段文本种所有可能出现地词语都扫描出来&#xff0c;一段文…

基于pytorch的车牌识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、导入数据 from torchvision.transforms import transforms from torch.utils.data import DataLoader from torchvision import datase…

微服务第二轮

学习文档 背景 由于每个微服务都有不同的地址或端口&#xff0c;入口不同 请求不同数据时要访问不同的入口&#xff0c;需要维护多个入口地址&#xff0c;麻烦 前端无法调用nacos&#xff0c;无法实时更新服务列表 单体架构时我们只需要完成一次用户登录、身份校验&#xff…

【十大排序算法】选择排序

选择就像是在谱曲&#xff0c;每个决定就是一个音符&#xff0c;只有将它们有序地安排在一起&#xff0c;才能奏响美妙的乐章。 文章目录 一、选择排序的思想二、选择排序的发展历程三、选择排序具象化四、选择排序算法实现五、选择排序的特性推荐阅读 一、选择排序的思想 选…

[STM32]定位器与PWM的LED控制

目录 1. 深入了解STM32定时器原理&#xff0c;掌握脉宽调制pwm生成方法。 (1)STM32定时器原理 原理概述 STM32定时器的常见模式 使用步骤 (2)脉宽调制pwm生成方法。 2. 实验 (1)LED亮灭 代码 测试效果 (2)呼吸灯 代码 测试效果 3.总结 1. 深入了解STM32定时器原…

绿联云NAS一些探索(1):SSH、包管理器探测、安装docker-compose等

绿联云NAS一些探索SSH、包管理器探测、安装docker-compose等 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https:…

git报错解决方法error: remote origin already exists.

有时想添加远程本地仓库和远程公司仓库&#xff0c;但git remote的时候发现关联的是一样的&#xff0c;你再去关联时会报错&#xff0c;这时候你应该清除你想关联的远程仓库&#xff0c;再次连接就可以了 下面这个错误提示是远程源已经存在 现在你可以这样做 1、查看远程库的信…

Jenkins工作流程原理

持续集成&#xff1a;自动部署打包发布代码 Jenkins工作流程 项目已经基于Jenkins实现了持续集成&#xff0c;每当我们push代码时&#xff0c;就会触发项目完成自动编译和打包。而需要运行某个微服务时&#xff0c;我们只需要经过两步&#xff1a; 第一步&#xff0c;访问je…