当前位置: 首页 > news >正文

git常见的命令,问题和处理方式

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

这只是一些参考,具体请移步官网:Git

git init - 初始化一个新的 Git 仓库。

git clone <仓库地址> - 克隆(下载)一个远程仓库到本地。

git add <文件名> - 将文件添加到暂存区。

git commit -m "<提交信息>" - 将暂存区的文件提交到本地仓库并附上提交信息。

git status - 显示工作目录和暂存区的状态。

git push <远程主机名> <分支名> - 将本地仓库的修改推送到远程仓库。

git pull <远程主机名> <分支名> - 从远程仓库拉取最新的修改并合并到本地仓库。

git branch - 显示当前仓库的所有分支。

git checkout <分支名> - 切换到指定的分支。

git merge <分支名> - 将指定分支的更改合并到当前分支。

git remote add <远程主机名> <仓库地址> - 添加远程仓库。

git log - 显示提交历史记录。

git diff - 显示工作目录和暂存区之间的差异。

git reset <文件名> - 取消将文件的更改添加到暂存区。

git rm <文件名> - 从版本控制中移除文件。

git remote -v - 显示远程仓库的详细信息,包括名称和地址。

git fetch <远程主机名> - 从远程仓库获取最新的修改,但不进行合并。

git branch -a - 显示本地和远程所有分支的列表。

git checkout -b <新分支名> - 创建一个新的分支并切换到该分支。

git merge --no-ff <分支名> - 执行非快速合并,保留分支历史记录。

git push -u <远程主机名> <分支名> - 将本地的分支推送到远程仓库,并设置为默认上游分支。

git stash save "<描述信息>" - 将当前的工作目录中的更改保存到堆栈中。

git stash list - 显示所有保存在堆栈中的变更列表。

git stash apply - 应用最近的堆栈中的更改,但不将其从堆栈中删除。

git cherry-pick <提交号> - 提取指定提交的更改,并将其应用到当前分支。

git rebase <目标分支名> - 将当前分支的提交移到目标分支的顶部。

git tag <标签名> - 在当前提交上创建一个标签。

git remote show <远程主机名> - 显示与指定远程主机相关的更多信息,如分支跟踪等。

git clean -n - 列出将被删除的未跟踪文件。

git config --global user.name "<用户名>" - 设置全局用户名。

git config --global user.email "<邮箱地址>" - 设置全局邮箱地址。

在使用 Git 进行代码管理时,可能会遇到一些常见的问题。以下是几个常见问题及其处理方式。

  1. 冲突(Conflict):当多个人同时修改同一文件的同一部分时,会导致冲突。处理方式如下:
    • 使用 git status 命令查看冲突文件。
    • 打开冲突文件,手动解决冲突。
    • 使用 git add <文件名> 将解决冲突后的文件标记为已解决。
    • 继续进行提交 git commit
  2. 错误的分支操作:可能会在错误的分支上进行了提交或合并操作。处理方式如下:
    • 使用 git log 命令查看提交历史,找到错误操作的提交。
    • 使用 git reset <commit> 将分支回退到正确的提交。
    • 如果错误的提交已经推送到远程仓库,需要使用 git push -f 强制推送来覆盖错误的提交。
  3. 误删除文件:有时候可能会意外删除了文件。处理方式如下:
    • 使用 git status 命令查看被删除的文件。
    • 使用 git checkout -- <文件名> 恢复被删除的文件。
  4. 误提交敏感信息:有时候可能会将敏感信息,如密码或机密密钥,提交到了代码仓库。处理方式如下:
    • 迅速撤销提交:使用 git revert <commit> 撤销最新的提交,避免敏感信息泄露。
    1. 修改敏感信息后提交:修改敏感信息,然后使用 git commit --amend 命令将修改后的内容追加到最新的提交中。
  5. 误删分支:有时候可能会意外删除了一个分支。处理方式如下:
    • 使用 git reflog 命令查看分支的操作日志,找到被删除的分支的最后一个提交的 SHA 值。
    • 使用 git branch <分支名> <SHA> 命令来重新创建被删除的分支。
  6.  找不到 Git 命令:如果在命令行中输入 Git 命令时出现 "command not found" 或类似的错误消息,可能是由于没有正确安装或配置 Git 导致的。解决方式是确保 Git 已正确安装并添加到系统的环境变量中。
  7. 未跟踪的文件(Untracked files):当使用 git status 命令时,会显示未跟踪的文件。解决方式如下:
    • 使用 git add <文件名> 将文件添加到暂存区,以便进行版本管理。
  8. 本地和远程分支不同步:当本地分支落后于远程分支时,无法推送或拉取更新。解决方式如下:
    • 使用 git pull 命令拉取远程分支的最新更改并合并到本地分支。
    • 如果有冲突,请解决冲突后再次提交。
  9. 远程主机不存在:当尝试与远程仓库交互时,可能会遇到 "remote 'origin' not found" 或类似的错误消息。解决方式如下:
    • 使用 git remote add <远程主机名> <仓库地址> 命令添加远程主机。
    • 确保远程仓库的地址正确且可访问。
  10. 无法推送到远程仓库:当尝试使用 git push 命令将本地更改推送到远程仓库时,可能会遇到错误,例如权限被拒绝。解决方式如下:
    • 确保你具有推送到远程仓库的权限。
    • 如果是第一次推送到该远程仓库,可以尝试使用 git push -u <远程主机名> <分支名> 命令建立追踪关系。
  11. 提交被拒绝(Rejected):当尝试推送提交时,可能会遇到 "rejected" 错误消息。这通常是由于远程仓库上的代码已经发生了变化,与本地分支产生了冲突。解决方式如下:
    • 使用 git pull 拉取远程更新,并合并到本地分支。
    • 解决冲突后,再次尝试推送提交。
  12. 分支未完全合并(Not fully merged):当尝试删除一个包含未合并更改的分支时,可能会遇到 "not fully merged" 错误消息。这表示该分支上的更改没有被合并到主分支或其他目标分支。解决方式如下:
    • 使用 git merge 命令将目标分支上的更改合并到当前分支。
    • 确保所有更改都已合并后,再尝试删除分支。
  13. 无法切换分支(Cannot switch branches):当尝试切换分支时,可能会遇到 "cannot switch branches" 错误消息。这通常是因为在当前分支上有未提交的更改,切换分支会导致冲突。解决方式如下:
    • 使用 git stash 命令将当前分支上的更改保存到堆栈中。
    • 切换到目标分支。
    • 使用 git stash pop 命令将之前保存的更改应用到目标分支上。
  14. 文件名过长(Filename too long):当 Git 在 Windows 系统上遇到过长的文件名时,可能会报错 "filename too long"。这是由于 Windows 对文件路径长度有限制导致的。解决方式如下:
    • 缩短文件名或文件路径。
    • 移动文件到较短路径下。
    • 使用 Git 的长路径支持(Git 2.15+ 版本),可以通过设置 git config --system core.longpaths true 来启用。

 


初见乍欢,久处仍怦然

相关文章:

git常见的命令,问题和处理方式

Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同&#xff0c;它采用了分布式版本库的方…...

Ubuntu环境下超好用的文件对比工具软件meld

Ubuntu环境下超好用的文件对比工具软件_ubuntu 代码比较工具_Calculation K的博客-CSDN博客...

Channel是什么?FileChannel类的常用方法

Channel 是一个接口对象,它类似于传统的流对象,但与传统的流对象又有些不同&#xff0c;具体表现如下: • Channel可以异步地执行I/O读写操作。 • Channel的读写操作是双向的,既可以从 Channel中读取数据,又可以写数据到Channel,而流的读写操作通常都是单向的。 • Channel…...

Python爬虫——scrapy_读书网数据入库和链接跟进

数据入库 先创建一个数据库 create table book(id int primary key auto_increment,name varchar(128),src varchar(128));settings.py DB_HOST 169.254.38.183 # 端口号是一个整数 DB_PORT 3306 DB_USER root DB_PASSWORD 123456 # 数据库名称 DB_NAME spider01 DB_CHA…...

前端常用linux命令

前端开发也需要掌握一些常用的linux命令&#xff0c;以便在linux系统上做一些操作如nginx代理配置&#xff0c;项目解压发布等 1、cd 切换目录 cd / //切换到根目录 cd directory_path //切换到directory_path目录 cd ../ //切换到上一级目录2、ls 列出目录内容 ls3…...

制作高质量SVG的最佳工具,这些编辑软件你需要知道!

作为前端开发者&#xff0c;想要学习更高级的可视化技术&#xff0c;SVG 编辑工具是必学的。与其他图像格式相比&#xff0c;SVG 图像可任意缩放而不损失质量&#xff0c;还可以实现交互动画效果&#xff0c;一个好的 SVG 编辑器能大大简化你的学习过程。下面就跟随小编一起看看…...

四、MySQL性能优化

1、SQL性能优化 1、如何分析SQL的性能&#xff1f; 我们可以使用EXPLAIN命令来分析SQL的执行计划 &#xff0c;执行计划是指一条SQL语句在经过MySQL查询优化器的选择后具体的执行方式 EXPLAIN并不会真的去执行相关的语句&#xff0c;而是通过查询优化器 对语句进行分析&…...

Oracle Database12c数据库官网下载和安装教程

文章目录 下载安装Oracle自带的客户端工具使用 下载 进入oracle官网 点击下载连接之后右上角会有一个下载 我们只需要数据库本体就够了 运行这个下载器 等待下好之后即可 出现 Complete 之后代表下载成功&#xff0c;然后我们解压即可 安装 双击 双击setup.exe 根据…...

spring依赖注入详解(下)

Autowired注解依赖注入过程 一、findAutowireCandidates()实现 找出BeanFactory中类型为type的所有的Bean的名字&#xff0c;注意是名字&#xff0c;而不是Bean对象&#xff0c;因为我们可以根据BeanDefinition就能判断和当前type是不是匹配&#xff0c;不用生成Bean对象把re…...

python的dataframe常用处理方法

import pandas as pdclass DataFrameProcessor:staticmethoddef sort_by_column(df, by_column, ascendingTrue):"""根据指定列对DataFrame进行排序。Parameters:df (pd.DataFrame): 要排序的DataFrame。by_column (str): 要排序的列名。ascending (bool): True…...

k8s 自身原理之高可用

说到高可用&#xff0c;咱们在使用主机环境的时候&#xff08;非 k8s&#xff09;&#xff0c;咱做高可用有使用过这样的方式&#xff1a; 服务器做主备部署&#xff0c;当主节点和备节点同时存活的时候&#xff0c;只有主节点对外提供服务&#xff0c;备节点就等着主节点挂了…...

游乐场vr设备虚拟游乐园vr项目沉浸体验馆

在景区建设一个VR游乐场项目可以为游客提供一种新颖、刺激和沉浸式的游乐体验。提高游客的体验类型&#xff0c;以及景区的类目&#xff0c;从而可以吸引更多的人来体验。 1、市场调研&#xff1a;在决定建设VR游乐场项目之前&#xff0c;需要进行市场调研&#xff0c;了解当地…...

window10安装并使用oracle

1、现在oracle19c或者21c&#xff0c;下载链接如下 Database Software Downloads | Oracle 中国 2、安装好之后&#xff0c; 2.1PL/SQL连接方式 命令窗口输入sqlplus conn as sysdba 2.2DBeaver连接 输入IP、 端口默认1521 数据库默认是ORCL 用户名是system 角色是N…...

[Mac软件]AutoCAD 2024 for Mac(cad2024) v2024.3.61.182中文版支持M1/M2/intel

下载地址&#xff1a;前往黑果魏叔官网 AutoCAD是一款计算机辅助设计&#xff08;CAD&#xff09;软件&#xff0c;目前已经成为全球最受欢迎的CAD软件之一。它可以在二维和三维空间中创建精确的技术绘图&#xff0c;并且可以应用于各种行业&#xff0c;如建筑、土木工程、机械…...

Oracle 主从库目录不一致(异路径)的n种处理方案及效果

最近遇到了复制数据&#xff08;DUPLICATE TARGET DATABASE TO xxx&#xff09;的时候 Oracle 源和目标库目录不一致的问题&#xff0c;比较初级但也踩到一些坑&#xff0c;整理记录一下。主从库搭建的时候注意事项其实也类似&#xff0c;而且更通用&#xff0c;所以标题写的是…...

创建型(一) - 简单工厂模式、工厂方法模式和抽象工厂模式

本文使用了王争老师设计模式课程中的例子&#xff0c;写的很清晰&#xff0c;而且中间穿插了代码优化。 由于设计模式就是解决问题的一种思路&#xff0c;所以每个设计模式会从问题出发&#xff0c;这样比较好理解设计模式出现的意义。 一、简单工厂模式 解决问题&#xff1a…...

LeetCode3.无重复字符的最长子串

虽然是一道中等题&#xff0c;但我5分钟就写完了&#xff0c;而且是看完题就知道怎么写&#xff0c;这一看就知道双指针&#xff0c;一个左一个右&#xff0c;右指针往后移如果没有重复的长度1&#xff1b;如果有重复的&#xff0c;左指针往右移&#xff0c;那如何判断重复呢&a…...

鲁图中大许少辉博士八一新书《乡村振兴战略下传统村落文化旅游设计》山东省图书馆典藏

鲁图中大许少辉博士八一新书《乡村振兴战略下传统村落文化旅游设计》山东省图书馆典藏...

如何发布自己的小程序

小程序的基础内容组件 text&#xff1a; 文本支持长按选中的效果 <text selectable>151535313511</text> rich-text: 把HTML字符串渲染为对应的UI <rich-text nodes"<h1 stylecolor:red;>123</h1>"></rich-text> 小程序的…...

【微服务】spring 条件注解从使用到源码分析详解

目录 一、前言 二、spring 条件注解概述 2.1 条件注解Conditional介绍 2.2 Conditional扩展注解 2.2.1 Conditional扩展注解汇总 三、spring 条件注解案例演示 3.1 ConditionalOnBean 3.2 ConditionalOnMissingBean 3.2.1 使用在类上 3.2.2 使用场景补充 3.3 Condit…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...

Python学习(8) ----- Python的类与对象

Python 中的类&#xff08;Class&#xff09;与对象&#xff08;Object&#xff09;是面向对象编程&#xff08;OOP&#xff09;的核心。我们可以通过“类是模板&#xff0c;对象是实例”来理解它们的关系。 &#x1f9f1; 一句话理解&#xff1a; 类就像“图纸”&#xff0c;对…...