git的命令操作

1、基本命令

目录

1、基本命令

创建 Git 存储库

添加文件/目录到索引

将更改提交到本地存储库

撤消上一次提交的更改

显示工作树状态

显示对工作树和索引的更改

显示提交日志

显示提交详细信息

重命名文件

从工作树和索引中移除文件

从工作树中移除未跟踪文件

将文件恢复到工作树

从索引中移除文件

仅将修改和删除的文件添加到索引

2、远程命令

复制存储库

添加远程存储库

显示远程存储库列表

从远程存储库签出分支

创建分支更改并将其推送到远程存储库

检查远程存储库中的分支更改

从远程存储库获取并合并最新的分支更改

从远程存储库删除分支

在远程存储库中创建标签

从远程存储库删除标签

修改远程存储库地址

 重命名远程存储库

3、git的分支命令

显示分支列表

创建分支

重命名分支

删除分支

切换分支

合并分支

4、提交历史记录

修改之前的提交和消息

修改并移动过去的提交和消息

退出变基

显示参考日志

显示分支提示的参考日志

移除以前的提交

重置变基

取消之前的重置

从另一个分支复制提交

搜索提交消息

5、Git 暂存命令

暂存当前的更改

显示暂存列表

从暂存中恢复更改

删除暂存

删除所有暂存

6、标签命令

显示标签列表

创建标签

创建带有信息的标签

删除标签

7、Git config 命令

设置用户名和电子邮件

彩色显示输出

为命令设置别名

从版本控制跟踪中删除文件

在版本控制下跟踪空目录

显示设置

设置与代理服务器的 HTTP 连接

建立到用户认证代理服务器的 HTTP 连接

8、故障排除

使用 SSH 连接到远程存储库时出现“Permission denied (publickey)”错误

无法通过其 HTTPS URL 克隆远程存储库

推送到远程存储库的更改没有反映在那里

9、Git 与 SVN 命令

        Git-Subversion 命令对照表


创建 Git 存储库

$ git init

添加文件/目录到索引

$ git add <filepattern>

-p选项,系统将提示您接受/拒绝已更改文件的特定部分。

-i选项,则可以交互式地暂存更改

将更改提交到本地存储库

$ git commit

-a选项就像一个快捷方式,可以检测更改的文件 (新添加的文件除外),将它们添加到索引, 并提交它们。

-m选项允许您同时提交和指定提交消息。如果您不指定-m,将打开一个文本编辑器,提示您输入提交消息。

撤消上一次提交的更改

$ git revert HEAD

Git revert 命令将一个提交作为参数,并创建一个新的提交来撤消该提交所做的更改。

显示工作树状态

$ git status

添加-s选项将只显示已更改的文件名。

添加-s选项,后面再接-b选项,将在输出中包含分支名称

显示对工作树和索引的更改

$ git diff

在默认情况下,diff 命令将会显示工作树和索引之间的差异。

如果添加--cached选项,将显示索引和 HEAD 之间的差异。

如果您指定提交哈希,将会显示工作树和当前的 HEAD/提交之间的差异

显示提交日志

$ git log

显示提交详细信息

$ git show <commit>

重命名文件

$ git mv <oldfilename> <newfilename>

从工作树和索引中移除文件

$ git rm <file>

从工作树中移除未跟踪文件

$ git clean

添加-n选项将只显示将要移除的文件。添加-f选项实际上会移除文件

将文件恢复到工作树

$ git checkout -- <file>

从索引中移除文件

$ git reset HEAD -- <file>

仅将修改和删除的文件添加到索引

$ git add -u

2、远程命令

复制存储库

$ git clone <url>

克隆命令将在本地计算机上创建现有远程存储库的副本。它还将配置本地存储库以自动跟踪远程存储库。

该配置允许您执行 Git push 命令或 Git fetch/pull 命令而不指定远程存储库名称

添加远程存储库

$ git remote add <name>

显示远程存储库列表

$ git remote

如果添加-v选项,您就可以查看远程存储库的详细信息

从远程存储库签出分支

$ git checkout <branch>

创建分支更改并将其推送到远程存储库

$ git push <repository> <refspec>

检查远程存储库中的分支更改

$ git fetch <repository> <refspec>

获取命令允许您从远程存储库检索最新数据,以检查更改的内容。但是,此命令不会自动将更改合并到您现有的任何工作中。

repositoryrefspec参数都是可选的。省略存储库名称将产生与推送命令相同的操作。省略refspec参数将确保获取可应用于该远程存储库中的所有分支

从远程存储库获取并合并最新的分支更改

$ git pull <repository> <refspec>

pull 命令将从远程存储库中检索最新更改的内容,并将其直接合并到您的本地存储库中。基本上,pull = fetch + merge

repositoryrefspec参数都是可选的。省略存储库名称将产生与推送命令相同的操作。省略refspec参数将确保拉取仅应用于当前分支。

从远程存储库删除分支

$ git push --delete <repository> <branchname>

删除远程存储库中的分支。

在推送命令中加入--delete选项,从远程存储库中删除指定的分支

在远程存储库中创建标签

$ git push <repository> <tagname>

如果添加--tags选项,则本地存储库中存在的所有标签都将被推送到远程存储库中,并与您指定的任何符号引用一起在远程存储库中创<tagname>

从远程存储库删除标签

$ git push --delete <repository> <tagname>

使用推送命令的--delete选项可以从远程存储库中删除指定的标签。

修改远程存储库地址

$ git remote set-url <name> <newurl>

 重命名远程存储库

$ git remote rename <old> <new>

3、git的分支命令

显示分支列表

$ git branch

添加-r选项还将列出远程跟踪分支。添加-a选项将同时显示远程和本地分支

创建分支

$ git branch <branchname>

重命名分支

$ git branch -m <oldbranch> <newbranch>

删除分支

$ git branch -d <branchname>

如果该分支还没有完全与上游分支合并,或者在 HEAD 中如果没有上游,Git 将不允许您删除该分支。但是,您可以指定-D以强制删除它,而不管其合并状态如何。

切换分支

$ git checkout <branch>

添加-b选项将创建一个新分支,并切换到它

合并分支

$ git merge <branch>

添加--no-ff选项将导致 git merge 命令都会是创建合并提交,而不是快进。这很有用,因为它允许您保留合并前分支的历史记录信息。

当您添加--squash选项时,Git 会创建一个代表合并更改的单个提交,而不是创建合并提交。 此提交包含来自合并分支的更改,但不包含任何与合并分支或合并过程本身相关的信息

4、提交历史记录

修改之前的提交和消息

$ git commit --amend

添加--amend选项来覆盖您正在处理的分支的最新提交。

当索引中没有文件时,您可以通过添加--amend选项重新提交之前的提交,系统将提示您编辑现有的提交消息。

修改并移动过去的提交和消息

$ git rebase -i <commit>

添加提交哈希,将列出直到最新提交的所有提交的列表。找到您要修改的提交,并将该行从pick更改为edit,然后保存并退出。

接下来,添加--amend选项来提交。将显示用于添加消息的界面。修改消息。

$ git commit --amend

最后,添加--continue选项来运行 rebase。

$ git rebase --continue

退出变基

$ git rebase --abort

通过添加--abort选项,您可以退出变基操作。

显示参考日志

$ git reflog

显示分支提示的参考日志

$ git reflog <ref>

移除以前的提交

$ git reset --hard HEAD~

重置变基

$ git reset --hard <commit>

取消之前的重置

$ git reset --hard ORIG_HEAD

ORIG_HEAD 指的是重置发生之前的提交。您可以使用 reset to ORIG_HEAD 恢复之前的重置

从另一个分支复制提交

$ git cherry-pick "<commit>"

搜索提交消息

$ git log --grep "<pattern>"

5、Git 暂存命令

暂存当前的更改

$ git stash save

显示暂存列表

$ git stash list

从暂存中恢复更改

$ git stash pop

删除暂存

$ git stash drop

删除所有暂存

$ git stash clear

6、标签命令

显示标签列表

$ git tag  

添加-n选项将显示每个标签上的注释

创建标签

$ git tag <tagname>

创建带有信息的标签

$ git tag -a <tagname>

删除标签

$ git tag -d <tagname>

7、Git config 命令

设置用户名和电子邮件

$ git config --global user.name <username>

$ git config --global user.email <mailaddress>

如果没有--global选项,此设置将仅应用于特定存储库。

彩色显示输出

$ git config --global color.ui auto

为命令设置别名

$ git config --global alias.<aliasname> <commandname>

从版本控制跟踪中删除文件

$ echo <filename> >> .gitignore

.gitignore文件下添加文件路径。Git 将不再管理这些文件。您必须提交.gitignore文件才能发挥作用

在版本控制下跟踪空目录

$ cd <dirname>

$ touch .gitkeep

Git 不会跟踪空目录。如果您想将其添加到版本控制中,则需要在该目录中放置一个文件。人们通常做的一个常见做法是在空目录中添加一个.gitkeep文件。

显示设置

$ git config --global --list

设置与代理服务器的 HTTP 连接

将以下设置添加到.gitconfig文件的 http 项。

[http] proxy = <address of the proxy server>:<port of the proxy server>

也可以使用以下 config 命令对其进行配置:

$ git config --global http.proxy <address of the proxy server>:<port of the proxy server>

建立到用户认证代理服务器的 HTTP 连接

将以下设置添加到.gitconfig文件的 http 项

[http] proxy = http://<username>:<password>@<address of the proxy server>:<port of the proxy server>

您也可以使用以下 config 命令对其进行配置:

$ git config --global http.proxy http://<username>:<password>@<address of the proxy server>:<port of the proxy server>

8、故障排除

使用 SSH 连接到远程存储库时出现“Permission denied (publickey)”错误

首先,您需要确保以下几点:

  • URL 是否正确?
  • 密钥是否在本地机器中正确配置?
  • 公钥是否在远程正确配置?

您可以通过运行以下命令,来验证与 Backlog 远程存储库对应的公钥/密钥配置:

$ ssh <space>@<space>.git.backlog.com

用您拥有的 Backlog 空间取代<space>。(例如,对于空间demo.backlog.com,它将是demo@demo.git.backlog.com)

如果设置正确,您将看到以下输出。如果您看到错误消息,请重复上述步骤并确保您做对了。

Hi yourname! You've successfully authenticated, but Backlog does not provide shell access. Connection to git.backlog.com closed.

无法通过其 HTTPS URL 克隆远程存储库

在旧版的 Git 上,您可能偶尔会在执行推送或拉取时遇到问题。建议您使用最新的 Git 版本或高于 v2 的版本。如果您使用的是 Source Tree 或 TortoiseGit 等 Git 客户端,请使用相应客户端附带的 Git 版本。

推送到远程存储库的更改没有反映在那里

执行推送时,您可能会遇到以下消息。当您从新的本地存储库推送时,通常会发生这种情况

$ git push

No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. Everything up-to-date

通过在执行推送时省略分支名称,Git 将默认假定您正在尝试将当前更改推送到与本地分支同名的远程分支。如果尚未在远程存储库中创建主分支,则会发生这种情况。(我们从本地主分支推送。)在这种情况下,我们将必须在执行推送时明确使用分支名称。

$ git push -u origin main

通过这样做,主分支将自动在远程存储库中创建。您下次运行推送时,可以省略分支名称。

9、Git 与 SVN 命令

Git-Subversion 命令对照表

CommandOperationSubversion
git clone复制存储库svn checkout
git commit记录对文件历史记录的更改svn commit
git show查看提交详细信息svn cat
git status查看状态svn status
git diff查看差异svn diff
git log查看日志svn log
git add添加svn add
git mv移动svn mv
git rm删除svn rm
git reset取消更改svn revert1
git branch创建分支svn copy2
git checkout切换分支svn switch
git merge合并svn merge
git tag创建标签svn copy2
git pull更新svn update
git fetch更新svn update
git push反映在远程的更改svn commit3
.gitignore忽略文件列表.svnignore
  1. SVN 中的 Revert 取消更改,但 Git 中的 Revert 否定更改。
  2. 分支和标签在 SVN 中相同,但在 Git 中不同。
  3. SVN 没有本地存储库与远程存储库的概念;因此,提交直接反映在远程中。

 

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

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

相关文章

lua-web-utils库

lua--导入所需的库local web_utilsrequire("lua-web-utils")--定义要下载的URLlocal url"https://jshk.com.cn/"--定义代理服务器的主机名和端口号local proxy_port8000--使用web_utils的download函数下载URLlocal file_pathweb_utils.download(url,proxy_…

2023最新C语言编程练习题大全(一)

目录 一、初识C语言1.1 第一个C语言程序1.2 一个完整的C语言程序1.3 输出名言1.4 计算正方形的周长 二、一个简单的C语言程序2.1 输出一个正方形2.2 输出直角三角形2.3 设计一个简单的求和程序2.4 求10!2.5 三个数由小到大排序2.6 猴子吃桃2.7 阳阳买苹果 一、初识C语言 1.1 第…

MATLAB 绘制 SISO 和 MIMO 线性系统的时间和频率响应图

系列文章目录 文章目录 系列文章目录前言一、时间响应二、频率响应三、极点/零点图和根节点四、响应特性五、分析 MIMO 系统六、系统比较七、修改时间轴或频率轴数值如果觉得内容不错&#xff0c;请点赞、收藏、关注 前言 本例演示如何绘制 SISO 和 MIMO 线性系统的时间和频率…

设计模式04———桥接模式 c#

桥接模式&#xff1a;将一个事物从多个维度抽象出来&#xff0c;采用 分离 和 组合 的方式 替代 原本类的继承 桥接模式&#xff08;Bridge Pattern&#xff09;是一种软件设计模式&#xff0c;属于结构型模式&#xff0c;它用于将抽象部分与具体实现部分分离&#xff0c;以便它…

Java实现对Html文本的处理

1.引入jsoup <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.8.3</version> </dependency> 2. html示例 示例代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1…

【Linux】 man命令使用

介绍 man命令是Linux下最核心的命令之一。而man命令也并不是英文单词“man”的意思&#xff0c;它是单词manual的缩写&#xff0c;即使用手册的意思。 man命令会列出一份完整的说明。 其内容包括命令语法、各选项的意义及相关命令 。更为强大的是&#xff0c;不仅可以查看Lin…

Kali Linux:网络与安全专家的终极武器

文章目录 一、Kali Linux 简介二、Kali Linux 的优势三、使用 Kali Linux 进行安全任务推荐阅读 ——《Kali Linux高级渗透测试》适读人群内容简介作者简介目录 Kali Linux&#xff1a;网络与安全专家的终极武器 Kali Linux&#xff0c;对于许多网络和安全专业人士来说&#x…

ElasticSearch索引操作

本文使用DSL操作ES&#xff0c;SpringBoot操作ES 更多ElasticSearch入门到实战教程&#xff1a;点击查看 2.1 索引操作 ES索引是存储数据的容器&#xff0c;类似于数据库。 2.1.1 创建索引 1. DSL语法 PUT indexname {"settings": {"number_of_shards"…

InetAddress.getLocalHost() 执行非常慢

昨天同事反馈网关的请求非常慢&#xff0c;一个获取的token的接口响应都超过了30s&#xff0c;还好只是测试环境。 经过验证&#xff0c;几乎所有接口响应都很慢&#xff0c;很多都响应超时。 排查步骤&#xff1a; 0. 本地启动项目测试&#xff0c;没有这个问题。而且生产环…

Python基础之列表、元组和字典

一文拿捏Python基本数据类型“列表、数组和字典” 引言 Python中的 列表(英文叫list) 、 元组(英文叫tuple)和字典&#xff08;dictionary&#xff09; 也是 序列 特性的&#xff0c;它们也是非常常用的数据类型。 1、列表&#xff08;List&#xff09; 01、概述 列表&#…

【Ubuntu】虚拟机安装系统与初始化配置

一、安装ubuntu系统 1、首先在虚拟机上安装一个虚拟机系统。 简单操作忽略&#xff0c;只贴出与安装linux不同的地方。 内存&#xff0c;处理器&#xff0c;磁盘等什么自己看着需要自己增加们这边不做过多说明。一直下一步&#xff0c;然后就安装好了。2、选择镜像位置然后启…

华为RS设备状态及接口配置命令

1、查看硬件信息 ①查看序列号 查看整机序列号 display esn display sn ②、查看功率 电源功率 display power 查看光模块功率 display transceiver interface gigabitethernet 1/0/0 verbose ③、查看风扇 display fan ④、查看温度 display temperature all ⑤、查看硬…

【MySQL】索引(下)

文章目录 1. 普通索引2. 索引操作创建主键索引查询索引删除索引唯一索引的创建删除唯一键索引普通索引的创建全文索引 1. 普通索引 MySQL除了会默认建立主键索引&#xff0c;也可能会按照其他列信息建立的索引&#xff0c;一般这种索引称为 普通索引 对于 储存引擎 myisam&…

伊朗网络间谍组织针对中东金融和政府部门

导语 近日&#xff0c;以色列网络安全公司Check Point与Sygnia发现了一起针对中东金融、政府、军事和电信部门的网络间谍活动。这一活动由伊朗国家情报和安全部门&#xff08;MOIS&#xff09;支持的威胁行为者发起&#xff0c;被称为"Scarred Manticore"。该组织被认…

在Linux上通过NTLM认证连接到AD服务器(未完结)

这篇文章目前还没有实现具体的功能&#xff0c;只实现了明文登录&#xff0c;因为我缺少一些数据&#xff0c;比如通过密码生成hash&#xff0c;以及通过challenge生成response&#xff0c;我不知道怎么实现&#xff0c;因此这篇文章也是一个交流的文章&#xff0c;希望大佬看见…

【实战Flask API项目指南】之一 概述

实战Flask API项目指南之 概述 本系列文章将带你深入探索实战Flask API项目指南&#xff0c;通过跟随小菜的学习之旅&#xff0c;你将逐步掌握Flask在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧&#xff01; 前言 小菜是一个Python编程爱好者&#xff0c;他目前…

蓝桥杯 (C++ 求和 等差数列 顺子日期 灌溉)

目录 1、求和 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 2、等差数列 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 3、顺子日期 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 4、灌溉 题目&#xff1a; 代码&#xff1a; 1、求和…

c#中使用METest单元测试

METest是一个用于测试C#代码的单元测试框架。单元测试是一种软件测试方法&#xff0c;用于验证代码的各个单元&#xff08;函数、方法、类等&#xff09;是否按照预期工作。METest提供了一种简单而强大的方式来编写和运行单元测试。 TestMethod&#xff1a;这是一个特性&#…

KaiwuDB 内核解析 - SQL 查询的生命周期

一、概述 KaiwuDB 内核解析系列共分上下两部分&#xff0c;本文是该系列的第一部分&#xff0c;主要涵盖了网络协议到 SQL 执行器&#xff0c;解释 KaiwuDB 如何执行 SQL 查询&#xff0c;包括系统各个组件的执行路径&#xff08;网络协议、SQL 会话管理、解析器、执行计划及优…

odoo 按钮打印pdf报表

odoo打印一般是在动作里面进行的 所以此方法可用自定义按钮进行打印 <template id"report_sale_line_packing_template"> xxx </template><template id"report_sale_line_packing"><t t-call"web.basic_layout"><t …