Git常用命令详细总结,更适合中国宝宝体质

文章目录

  • 代码仓库
    • 创建仓库
      • 1.进入需要创建代码库的文件夹
      • 2.创建/切始化仓库
      • 3.关联远程仓库
      • 拉取远程仓库到本地
    • 添加文件到仓库
      • 1.查看工作区状态
      • 2.添加文件到暂存区
      • 3.提交到本地仓库
      • 4.对比工作区文件变化
    • 仓库配置
      • 1.配置全局用户名和邮箱
      • 2.配当前仓库用户名和邮箱
      • 3.查看Git全局配置
  • 代码版本/提交切换
    • 查看过去版本/提交
      • 1.提交的详情
      • 2.提交的简介
    • 回退版本/提交
      • 1.回退到当前最新提交
      • 2.回退到上次提交
      • 3.回退到上n次提交
      • 4.回退到某次提交
    • 重返未来版本
      • 1.查看历史提交以及被回退的提交
      • 2.回到未来版本
    • 撤销修改
      • 1.工作区文件撤销
      • 2.暂存区文件撤销
      • 3.提交到了版本库
    • 删除文件
      • 1.从版本库删文件
      • 2.恢复删除
      • 3.从版本库中删除文件,但是本地不删除该文件
    • 暂存修改
    • 忽略文件
  • 分支
    • 创建与合并分支
      • 1.创建分支
      • 2.切换分支
      • 3.合并分支
      • 4.删除分支
        • 删除本地分支
        • 删除远程分支
      • 5.查看分支
      • 6.合并分支,解决分支冲突
      • 7.开发完需要提交PR/MR
    • 暂存修改
      • 1.暂存工作现场
      • 2.恢复工作现场
        • 恢复
        • 删除
        • 恢复+删除
    • 多人协作
      • 1.查看远程库信息
      • 2.更新/推送远程库
        • 更新远程库信息
        • 将远程库最新修改更新到本地
        • 将本地修改推送到远程仓库
      • 3.本地分支与远程分支交互
        • 使用远程分支A创建本地分支
  • 代码版本tag
    • 1.查看tag
      • 本地tag
      • 远程tag
    • 2.操作tag
      • 添加tag
        • 给当前版本加tag
        • 给历史版本加tag
      • 删除tag
        • 删除本地标签
        • 删除远程标签
      • 推送tag到远程仓库
      • 更新到本地
  • 其他生僻命令
    • 查看代码历史记录
    • 查找引入 bug 的提交
    • 复制提交到当前分支
    • 查看命令

代码仓库

创建仓库

1.进入需要创建代码库的文件夹

cd 文件路径

2.创建/切始化仓库

git init

3.关联远程仓库

git remote add origin 远程仓库URL

拉取远程仓库到本地

或者直接克隆远程的仓库,更简单方便。

git clone <远程仓库URL>

添加文件到仓库

1.查看工作区状态

git status

2.添加文件到暂存区

添加单个文件:

git add 文件名

添加所有文件:

git add .

会忽略的文件:.gitignore中指定的文件会被忽路、空目录

3.提交到本地仓库

git commit#我的电脑是Windows,此时进入了一个文本编辑器(vim)
#使用CTRL+C,输入i,进入插入模式
#使用CTRL+C,输入:wq,保存退出

也可以使用git commit -m "commit message",建议提交遵循commit message规范。

使用git commit -m "commit message"的方式提交代码虽然快捷,但是有一些潜在的问题:

  1. 提交信息可能过于简单:使用-m参数,你可能会倾向于写一些简短的提交信息,这可能会导致提交信息缺乏必要的详细内容,使得其他开发者难以理解这次提交的目的和内容。
  2. 无法处理复杂的提交信息:如果你的提交信息需要多行,或者需要更复杂的格式(比如列表、引用等),那么-m参数就无法满足需求了。
  3. 可能会忽略未跟踪的文件git commit -m只会提交已经被添加到暂存区的文件,如果有新的文件被修改但是还没有被添加到暂存区,那么这些文件就不会被提交。

4.对比工作区文件变化

git diff 

建议将beyond compare配置为diff工具,用于diff以及merge冲突

仓库配置

1.配置全局用户名和邮箱

git config --global user.name "name"
git config --global user.email "email address"

若是个人开发机可以这样配置,若是公共编译机则不能这样配置。

2.配当前仓库用户名和邮箱

git config user.name "name"
git config user.email "email address"

3.查看Git全局配置

git config --global -l

代码版本/提交切换

注意:这里的版本均为本地仓库版本。

查看过去版本/提交

1.提交的详情

git log 

2.提交的简介

git log --pretty=oneline

回退版本/提交

1.回退到当前最新提交

git reset --hard HEAD

2.回退到上次提交

git reset --hard HEAD^

3.回退到上n次提交

git reset --hard HEAD~n

4.回退到某次提交

git reset --hard commit_id
# 可通过git log获取id

重返未来版本

1.查看历史提交以及被回退的提交

git reflog

注意:该记录有时限,且只在本地

2.回到未来版本

git reset --hard commit_id

撤销修改

1.工作区文件撤销

如果文件没有被提交到暂存区(即没有执行 git add 命令),你可以使用 git checkout 文件名 来撤销对该文件的修改。

git checkout 文件名

2.暂存区文件撤销

如果你想将暂存区的文件撤销到工作区,你可以使用 git reset HEAD 文件名 命令。这个命令不带 --hard 参数,所以它只会将暂存区的文件撤销到工作区,而不会影响工作区的文件。

git reset HEAD 文件名

如果你想撤销暂存区的文件,你可以使用 git checkout 文件名 命令。这将会撤销你对该文件的所有修改。

git checkout 文件名

3.提交到了版本库

参见回退版本/提交

删除文件

1.从版本库删文件

git rm 文件名

修改后需要提交

2.恢复删除

参考撤销修改

3.从版本库中删除文件,但是本地不删除该文件

git rm --cached 文件名

暂存修改

参照分支-暂存修改

忽略文件

通过git仓库下的.gitignore文件屏蔽某些中间文件/生成文件

分支

创建与合并分支

1.创建分支

仅创建:

git branch 分支名

创建并切换:

git checkout -b 分支名

在本地仓库操作,创建的都是本地分支。

2.切换分支

git checkout 分支名

3.合并分支

合并某分支到当前分支:

git merge <要合并的分支>

禁用 Fast-forward 模式:

git merge --no-ff

变基:

用于重新应用一系列提交到另一个分支上。

git rebase <要提取提交的分支>

4.删除分支

删除本地分支

删除未合并分支:

git branch -D 分支名

删除已合并分支:

git branch -d 分支名
删除远程分支
git push origin -d 分支名

也可以在界面操作。

5.查看分支

查看当前分支:

git branch

查看所有分支消息:

git branch -a

例如:

* masterremotes/origin/master

6.合并分支,解决分支冲突

  1. 将要合并的分支更新到最新

  2. 切换到主分支

  3. 合并分支

  4. 解决合并时的conflict

  5. 提交到版本库

  6. 合并成功

  7. 查看分支状态

    git log --graph
    git log --graph --pretty=oneline --abbrev-commit
    

7.开发完需要提交PR/MR

通过PR/MR来合并开发分支与主分支。

暂存修改

1.暂存工作现场

git stash

2.恢复工作现场

恢复
git stash apply
删除
git stash drop
恢复+删除
git stash pop

多人协作

1.查看远程库信息

#详细
git remote -v#不详细
git remote

2.更新/推送远程库

更新远程库信息
git fetch
将远程库最新修改更新到本地
git pull#或
git fetch + git merge
将本地修改推送到远程仓库
git pushgit push origin 分支名

3.本地分支与远程分支交互

使用远程分支A创建本地分支
git checkout -b A origin/A 
#origin是远程仓库名,若名字一样origin/A可以省略

将本地分支与远程分支作关联

git branch --set-upstream-to=origin/remote_branch  your_branch#或
git checkout your_branch
git branch -u origin/remote_branch

代码版本tag

1.查看tag

本地tag

git tag -l

远程tag

git ls-remote --tags origin

2.操作tag

添加tag

给当前版本加tag
git tag -a 标签名 -m "这是备注信息"
给历史版本加tag
git tag -a 标签名 commit_id -m "这是备注信息"

删除tag

删除本地标签
git tag -d <tag_name>
删除远程标签
git push origin :refs/tags/<tag_name>

推送tag到远程仓库

git push origin <tag_name>#推送所有未提交的tag
git push origin --tags

更新到本地

git pull origin --tags

其他生僻命令

查看代码历史记录

git blame <file_name>

查找引入 bug 的提交

这个命令可以通过自动搜索的方式来查找引入 bug 的提交。利用二分查找法,自动检查每个提交是否引入了 bug。

git bisect start
git bisect bad      # 当前版本是有bug的
git bisect good v1.0 # v1.0 版本没有 bug
git bisect reset

复制提交到当前分支

将指定的提交应用到当前分支。常用于将其他分支的提交复制到当前分支。

git cherry-pick <commit-id>

查看命令

#常用命令
git help#所有命令
git help -a

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

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

相关文章

Selenium中常用的JS操作总结

​ 目录 前言&#xff1a; JS相关操作 JS Xpath定位 获取单个元素 获取元素集合 文本输入 获取坐标 获取浏览器窗口的内部高度 获取浏览器窗口的内部宽度&#xff1b; 坐标计算 设置样式 设置窗口大小 类数组对象arguments JQuery选择器 jQuery 选择器 jQuery …

多模态——使用stable-video-diffusion将图片生成视频

多模态——使用stable-video-diffusion将图片生成视频 0. 内容简介1. 运行环境2. 模型下载3. 代码梳理3.1 修改yaml文件中的svd路径3.2 修改DeepFloyDataFiltering的vit路径3.3 修改open_clip的clip路径3.4 代码总体结构 4. 资源消耗5. 效果预览 0. 内容简介 近期&#xff0c;…

Linux上安装Redis

案例中Linux版本为CentOS7.9&#xff0c;安装目录为 /root/software/ 1、使用 wget 命令从官网下载安装包 wget https://github.com/redis/redis/archive/7.2.3.tar.gz2、解压缩 tar -xzf 7.2.3.tar.gz3、进入解压后的目录 cd redis-7.2.34、 编译和安装Redis make make i…

npm中,你不了解的.npmrc文件

原文链接&#xff1a;npm中&#xff0c;你不了解的.npmrc文件 写在前面 对于写JS的程序员来说&#xff0c;可能没有人不知道npm&#xff0c;但是有些同学对他的配置文件(即.npmrc文件)并不了解。结合我的学习心得&#xff0c;写一篇博客跟大家分享一些该配置文件的知识。 .np…

理解CLIP模型

1.简介 学习深度学习必看CLIP&#xff01;论文链接arxiv.org/pdf/2103.00020v1.pdf。 简单来说就是传统的分类任务被用来预测指定的类别&#xff0c;有监督训练限制了模型的通用性和可用性&#xff0c;并且需要带有标签的数据来训练&#xff0c;该篇论文就想直接从原始文本中…

Navicat 技术指引 | 适用于 GaussDB 的用户权限设置

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对 GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…

Spring 七大组件

文章目录 Spring 七大组件 Spring 七大组件 核心容器(Spring core) 核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean&#xff0c;它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式…

(Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码&#xff1a; 四、本文代码数据说明手册分享 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matalb平台编译&am…

Flink Flink中的分流

一、什么是分流 所谓“分流”&#xff0c;就是将一条数据流拆分成完全独立的两条、甚至多条流。也就是基于一个DataStream&#xff0c;定义一些筛选条件&#xff0c;将符合条件的数据拣选出来放到对应的流里。 二、基于filter算子的简单实现分流 其实根据条件筛选数据的需求…

面了一个4年经验的测试工程师,自动化都不会也要15k,我也是醉了····

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

表单考勤签到作业周期打卡打分评价评分小程序开源版开发

表单考勤签到作业周期打卡打分评价评分小程序开源版开发 表单打卡评分 表单签到功能&#xff1a;学生可以通过扫描二维码或输入签到码进行签到&#xff0c;方便教师进行考勤管理。 考勤功能&#xff1a;可以记录学生的出勤情况&#xff0c;并自动生成出勤率和缺勤次数等统计数…

本地缓存与分布式缓存

一、缓存的概念 在服务端编程当中&#xff0c;缓存主要是指将数据库的数据加载到内存中&#xff0c;之后对该数据的访问都在内存中完成&#xff0c;从而减少了对数据库的访问&#xff0c;解决了高并发场景中数据库容易成为性能瓶颈的问题&#xff1b;以及基于内存的访问速度高…

ruoyi-plus-vue部署

安装虚拟机 部署文档 安装docker 安装docker 安装docker-compose 可能遇到的错误 Failed to deploy ruoyi/ruoyi-server:5.1.0 Dockerfile: ruoyi-admin/Dockerfile: Cant retrieve im age ID from build stream 安装 vim 命令 yum install vim -y 修改文件 vim /etc/re…

flutter 无法从H5 WebView 访问摄像头和录音权限

AndroidManifest.xml需要在 中添加以下权限&#xff1a; <uses-permission android:name"android.permission.INTERNET"/> <uses-permission android:name"android.permission.CAMERA" /> <uses-permission android:name"android.per…

基于Springboot的冬奥会科普平台(有报告),Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的冬奥会科普平台&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

线性表之链式表

文章目录 主要内容一.单链表1.头插法建立单链表代码如下&#xff08;示例&#xff09;: 2.尾插法建立单链表代码如下&#xff08;示例&#xff09;: 3.按序号查找结点值代码如下&#xff08;示例&#xff09;: 4.按值查找表结点代码如下&#xff08;示例&#xff09;: 5.插入节…

ELK+kafka+filebeat企业内部日志分析系统

1、组件介绍 1、Elasticsearch&#xff1a; 是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasticsearch是用Java开发的&#xff0c;并作为Apache许可条款下的开放源码发布…

module ‘d2l.torch‘ has no attribute ‘train_ch3‘

解决方法&#xff1a; 方法1&#xff1a; 如果没有安装d2l&#xff0c;请安装 详细步骤见安装d2l 方法2&#xff1a; 先卸载旧的版本 pip uninstall d2l再下载新的版本&#xff0c;需要以管理员身份运行下载指令 pip install d2l0.17.5 --user完美解决&#xff01; ☺☺☺☺…

创新研报|企业如何在不确定时期突破至新高度?

报告下载地址&#xff1a; 创新研报&#xff5c;BCG 2023最创新企业研究-在不确定时期跃升新高度 创新从未如此重要&#xff0c;领先的企业创新者正在证明这一切。BCG&#xff08;于2005年首次发布年度创新报告&#xff0c;其中列出了全球创新高管最钦佩的50家企业&#xf…

2824. 统计和小于目标的下标对数目 --力扣 --JAVA

题目 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target &#xff0c;请你返回满足 0 < i < j < n 且 nums[i] nums[j] < target 的下标对 (i, j) 的数目。 解题思路 对数组进行排序&#xff0c;可以利用List自带的sort函数传递比较规则(代码中的…