git命令详解

article/2025/9/15 18:44:56

一、简介

git作为应用广泛的一种分布式版本控制系统,其与svn比较最大的差别就是一个是分布式,一个是集中式,git在每个开发者的本地有一个完整的版本库,当在本地处理工作时,无需联网便可修改提交,当需要与其它开发者交互时,只需要提交自己的修改给对方,无需担心集中服务器数据丢失导致所有数据丢失的问题。

git主要分为工作区、暂存区、本地版本库以及远程版本库,我们平时需要做的也就是将修改更新内容从工作区提交至本地版本库或者推送到远程版本库。

二、常用命令

git init (创建目录后初始化当前仓库)

git clone (将远程仓库克隆至本地,克隆的仓库无需init初始化仓库)

git add (将修改从本地工作区添加至暂存区)

git add .(提交所有修改至暂存区,但不包括删除的文件)

git add --all (提交所有修改至暂存区,包括删除的文件)

git add <filename> (提交某一个文件的修改至暂存区)

git commit(将修改从暂存区提交至本地版本库)

git commit -m (-m后加注释,注释此次提交内容)

git commit --amend (提交了得注释内容需要修改时,此参数可以修改提交的注释内容)

git push (将本地版本库推送至远程仓库) 

git pull (拉取远程仓库中内容至本地版本库) 

git reset(回退至某个版本)

git reset --hard <commit-id> (根据commit-id回退至某个特定版本,每次提交都会生成一个commit-id,可通过git log命令查看)

git reset --hard HEAD^(回退至上一个版本)

git reset --hard HEAD^^(回退至上两个版本)

git reset --hard HEAD~100(回退至前100个版本)

git checkout -- filename (回退某个文件的修改,checkout命令一般用来切换分支,后面跟-- filename用来回退某个文件的修改) 

git branch(创建分支,默认有master主分支)

git checkout (切换分支)

git checkout -b (创建并切换至新建的分支下,该命令=git branch + git checkout) 

git branch -a (查看所有分支)

git branch -D (删除分支)

git branch -m oldbranchname newbranchname (修改分支名字)

git merge <branch name> (合并某个分支,譬如合并test分支至master分支,需要先切换至master分支下,然后执行git merge test,将test分支合并至master,不能在将被合并的分支下执行该合并命令)

git stash (保存修改,当有另外的任务需要处理,而正在进行的任务未完成时,可以使用此命令保存修改,会自动创建一个缓存的list集合,方便管理)

git stash list (查看缓存的修改l内容list集合)

git stash pop(将缓存的修改内容释放出来)

git stash apply (将缓存的修改内容释放出来)

git stash apply与git stash pop功能类似,两者的区别是:git stash apply将修改的内容从缓存list中释放出来后,list记录仍然存在,而git stash pop释放缓存内容后,list记录被删除。git stash pop = git stash apply+git stash drop

git log (查看提交修改日志)

git reflog (查看提交修改的日志)

git log与git reflog最大的区别就是能否查看到删除或reset的操作记录,reflog可以看到,而log不行

git diff (查看比较某文件修改内容,不同之处) 

git status (查看当前仓库状态,是否有未提交的修改) 

 git rebase(对最近某一阶段的提交历史进行编辑、删除、复制、粘贴、合并等)

1、当连续多次提交后(git commit提交至本地版本库的操作),譬如提交1、提交2、提交3、提交4,但是你发现其中提交2出现错误需要删除,而又想保留提交3和提交4的内容,这时候就没办法通过reset来回退,这时候就需要用到git rebase;又或者你需要将多次提交合并为一次提交,也需要用到git rebase

git rebase -i HEAD~n (合并前n次的提交记录,并做处理)

上述命令输入后进入编辑界面,参数介绍如下:

pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:丢弃该commit(缩写:d)


http://chatgpt.dhexx.cn/article/JJH9V6Xa.shtml

相关文章

关于Git这一篇就够了

目录 前言 发展过程 集中式与分布式的区别 Debian/Linux安装Git 配置git环境&#xff1a;git config --global 创建本地空仓库&#xff1a;git init 新建文件添加到本地仓库&#xff1a;git add、git commit -m 改写提交&#xff1a;git commit --amend 查看历史提交日…

【信号与系统】—知识点:自由响应、强迫响应、暂态响应、稳态响应、零输入响应、零状态响应如何区分!

自由响应、强迫响应、暂态响应、稳态响应、零输入响应、零状态响应如何区分&#xff01; 一、系统的响应划分 二、自由响应、强迫响应 自由响应和强迫响应是从数学上来分解的&#xff0c;没有什么物理意义&#xff0c;自由响应是齐次解&#xff0c;因为它的形式和激励无关&am…

一阶电路的零状态响应

零状态响应就是电路在零初始状态下(动态元件初始储能为零)由外施激励引起的响应。 RC电路的零状态响应 在t0时刻&#xff0c;开关S闭合&#xff0c;电路接入直流电压源US。根据KVL&#xff0c;有 uRuCUS (KVL ∑u0 指定回路的绕行方向是顺时针的&#xff0c;R、C的电压参考方向…

MATLAB:零状态响应(lsim(连续);filter(离散))、冲激响应(impulse或impz)和阶跃响应(step)、卷积(conv)

例1&#xff1a;求系统y(t)2y(t)100y(t)10x(t)的零状态响应&#xff0c;已知x(t)sin(2pt)u(t)。【连续时间系统零状态响应】 例2&#xff1a;求系统y(t)2y(t)100y(t)10x(t)的零状态响应&#xff0c;已知x(t)d(t)。&#xff08;ts0;te5;dt0.01&#xff09;【连续时间系统冲激响应…

连续系统的时域分析(一)LTI连续系统微分方程解法3——零状态响应的求解方法

(一)零状态响应的定义 零状态响应是系统在初始状态为零时&#xff0c;仅有输入信号 f ( t ) f(t) f(t)引起的响应。用 y z s ( t ) y_{zs}(t) yzs​(t)表示 &#xff08;二&#xff09;解题步骤 &#xff08;1&#xff09;当微分方程右端不含冲击函数 δ ( t ) \delta(t) δ…

《信号与系统》连续时间系统零状态响应的 MATLAB 实现

3.5.1 连续时间系统零状态响应的 MATLAB 实现 参考书籍 《信号与系统》 Matlab 库函数中的 **lsim()**能对微分方程描述的 LTI 连续时间系统的响应进行仿真。 lsim(b,a,x,t) 该调用格式中&#xff0c;a 和 b 是由描述系统的微分方程左边和右边系数构成的两个行向量&#xff…

Matlab计算信号和的卷积,求解微分方程的阶跃响应、冲激响应和零状态响应

参考资料&#xff1a; 连续时间系统的时域分析涉及到的Matlab函数&#xff1a; step&#xff1a;用于计算连续时间系统的单位阶跃响应。 impulse&#xff1a;用于计算连续时间系统的单位冲激响应。 lsim&#xff1a;用于计算连续系统在任意输入作用下的响应。 dsolve&…

实验二 信号与系统Matlab 求系统的冲激响应、阶跃响应、零状态响应

** 实验二 ** 实验内容 题目一&#xff1a; clear all; ts0;te5;dt0.01; num[0 3 2]; den[1 5 6]; systf(num,den); tts:dt:te; yimpulse(sys,t); plot(t,y);grid;xlabel(time(sec));ylabel(h(t))题目二&#xff1a; clear all; ts0;te5;dt0.01; num[0 0 1]; den[2 1 8];%…

二阶电路的零状态响应

二阶电路零状态响应公式推导 下图所示电路在 时电容和电感上储能都为零&#xff0c;即 &#xff0c; &#xff0c; t0 时开关闭合&#xff0c;电压源 Us 开始对电路供电。现讨论 时响应的变化规律。 电路的 KVL 方程为换路后电路的初始状态为 0 &#xff0c;即&#xff0c; …

【Matlab】系统的响应分析

前言 一个信号系统课程中使用Matlab对系统的零状态响应、零输入响应、完全响应、冲激响应、阶跃响应求解、波形生成以及分析的实验。 一、内容 设系统的微分方程为&#xff1a; 激励为&#xff1a; 起始状态条件为&#xff1a; 、 可求得 零输入响应&#xff1a; 零状…

一阶电路零输入和零状态响应

零状态响应 以RC电路为例 目的&#xff1a;求响应。也就是Uc 步骤&#xff1a; 列KVL。因为含有动态元件&#xff0c;所以是微分方程。 解微分方程就能得到Uc。*是一阶线性&#xff0c;套公式就能得到通解。 特解&#xff08;强制分量&#xff09;&#xff1a;与输入激励的变化…

信号与系统:拉式变换(s域)求解电路的零输入、零状态响应

信号与系统&#xff1a;拉式变换&#xff08;s域&#xff09;求解电路的零输入、零状态响应讲解及例题 用拉氏变换求解电路, 本质上与拉氏变换解微分方程是一回事. 在时域求解电路问题, 可转化为求微分方程的初值问题, 而用s域模型求解电路,可以把复杂的微分方程转化为代数方程…

MATLAB——求系统的零状态响应

题目&#xff1a; 已知系统的微分方程为&#xff1a; d 2 y ( t ) d t 2 2 d y ( t ) d t 100 y ( t ) f ( t ) \dfrac{d^2y(t)}{dt^2}2\dfrac{dy(t)}{dt}100y(t)f(t) dt2d2y(t)​2dtdy(t)​100y(t)f(t) 系统的输入信号为&#xff1a; f ( t ) 10 s i n ( 2 π t ) f(t)10…

连续时间系统的冲激响应和零状态响应

实验原理 线性时不变系统用微分方程描述&#xff1a; y(n)(t)an-1y(n-1)(t)…a1y(1)(t)a0y(t)bmf(m)(t)bm-1f(m-1)(t)…b1f(1)(t)b0f(t) (2-1) &#xff08;1&#xff09;系统的零状态响应可通过求解初始状态为零的微分方程得到。 在MATLAB中&#xff0c;用lsim函数求解LTI的…

信号与系统——零输入与零状态响应之间的比较

引言 在学习零输入与零状态响应之前&#xff0c;我们应该知道什么是全响应。全响应(complete response)是零输入响应和零状态响应叠加的结果&#xff0c;也体现了线性电路的叠加性。 即&#xff1a;全响应 零输入响应 零状态响应 零输入响应 没有外加激励信号的作用&am…

信号与系统 - 零输入响应和零状态响应

概念 完全响应零输入响应yzi(t) 零状态响应 yzs(t) 举例

概念:微分方程的解、瞬态响应、稳态响应、自由响应、强迫响应、零输入响应、零状态响应

要理解这几个概念&#xff0c;首先要从“微分方程的解“的结构说起&#xff0c; 参考&#xff1a;《常系数线性微分方程的解法》 &#xff08;1&#xff09; &#xff08;2&#xff09; 我们对物理系统进行建模时&#xff0c;列出的微分方程多为”非齐次、线性“&#xff0c…

零输入响应,零状态响应和完全响应

动态电路分析 实际上就是有电容和电感的电路。由于他们能贮存能量&#xff0c;并独立作为电压源和电流源&#xff0c;从以下三种情况分析&#xff08;均为一阶电路&#xff09; 零输入响应 无信号作用&#xff0c;由初始时刻的储能所产生的响应。即没有独立电源接入&#xf…

零输入响应与零状态响应响应

零输入响应与零状态响应 零输入响应与零状态响应1、 零输入响应2、零状态响应3、两种响应的区别4、两种响应的判断方法5、两种响应的求解方法6、两种响应之间的联系 零输入响应与零状态响应 这两个响应在大学的电路中&#xff0c;是有详细介绍的&#xff0c;学习的目的是为了&…

连续系统的零状态响应与零输入响应

写在前面&#xff1a;本文仅浅略介绍连续系统零状态响应与零输入响应的概念及其求解方法&#xff0c;本文参考书籍为《信号与线性系统分析》第五版以及百度。 目录 1.什么是连续系统&#xff1f;以及连续系统的求解。 2.连续系统的零输入响应 3.连续系统的零状态响应 1.什…