【Git】常用命令汇总

目录

一.安装及配置

1.在 Windows 上安装

2.用户信息

3.差异分析工具

二.基础

1.创建仓库

2.提交与修改

三.分支管理

1.创建分支

2.合并分支

四.远程操作

1.管理 Git 仓库中的远程仓库

2.数据的获取与推送

五.标签

1.创建轻量标签和附注标签

2.查看标签和标签信息

3.推送标签到远程仓库

4.删除标签 

一.安装及配置

1.在 Windows 上安装

msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:

http://msysgit.github.com/

2.用户信息

配置个人的用户名称和电子邮件地址。

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

如果用 --global 选项,更改的是位于用户主目录下的配置文件,以后所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

•查看配置信息

要检查已有的配置信息,可以使用 git config --list 命令:

$ git config --list
user.name=Scott Chacon
user.email=schacon@gmail.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...

也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可。

$ git config user.name
Scott Chacon

3.差异分析工具

在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:

$ git config --global merge.tool vimdiff

二.基础

1.创建仓库

第1种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库。第2种是从已有的 Git 仓库克隆出一个新的镜像仓库来。

在工作目录中初始化新仓库

$ git init
$ git add *.c
$ git add README
$ git commit -m 'initial project version'

•从现有仓库克隆

在当前目录下创建一个名为grit的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果进入这个新建的 grit 目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。

$ git clone git://github.com/schacon/grit.git

如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:

$ git clone git://github.com/schacon/grit.git mygrit

要克隆Git仓库的指定分支

git clone -b <branch_name> --single-branch <repository_url>

2.提交与修改

•git status:查看仓库当前的状态,显示有变更的文件。

$ git status
On branch master
nothing to commit, working directory clean

•忽略某些文件

可以创建1个名为 .gitignore 的文件,列出要忽略的文件模式。来看一个实际的例子:

$ cat .gitignore
*.[oa]
*~

第1行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。

第2行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。

文件 .gitignore 的格式规范如下:

1. 所有空行或者以注释符号  开头的行都会被 Git 忽略

2.可以使用标准的 glob 模式匹配
3.匹配模式最后跟反斜杠(/)说明要忽略的是目录
4.要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反

再看一个 .gitignore 文件的例子:

# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# ignore all .txt files in the doc/ directory
doc/**/*.txt

•git add . :添加文件到暂存区。

git add .gitignore

•git diff:比较文件的不同,即暂存区和工作区的差异。

•git commit:提交更新。

git commit -m [message]

[message] 可以是一些备注信息。

•git rm :删除文件。

#从暂存区和工作区中删除 1.txt 文件
git rm 1.txt 
#强制删除选项 -f
git rm -f 1.txt 

•git mv :移动或重命名一个文件、目录或软连接。

git mv [file] [newfile]

3.查看提交历史

•git log :查看历史提交记录。

git log [选项] [分支名/提交哈希]

常用的选项包括:

-p显示提交的补丁(具体更改内容)
--since=<时间>只显示指定时间之后的提交
--until=<时间>只显示指定时间之前的提交
--author=<作者>只显示特定作者的提交
--grep=<模式>只显示包含指定模式的提交消息

•git blame <file> :以列表形式查看指定文件的历史修改记录。

git blame [选项] <文件路径>

常用的选项包括:

-L <起始行号>,<结束行号>只显示指定行号范围内的代码注释
-C对于重命名或拷贝的代码行,也进行代码行溯源
-M

对于移动的代码行,也进行代码行溯源

--show-stats显示包含每个作者的行数统计信息

三.分支管理

1.创建分支

•创建新分支并切换到该分支

git checkout -b <branchname>

•切换分支命令

git checkout (branchname)

•查看分支

#查看所有分支
git branch
#查看远程分支
git branch -r
#查看所有本地和远程分支
git branch -a

2.合并分支

•将其他分支合并到当前分支。

git merge <branchname>

•解决合并冲突

当合并过程中出现冲突时,Git 会标记冲突文件,你需要手动解决冲突。

打开冲突文件,按照标记解决冲突。

标记冲突解决完成:

git add <conflict-file>
#提交合并结果
git commit

•删除分支

#删除本地分支
git branch -d <branchname>
#强制删除未合并的分支
git branch -D <branchname>
#删除远程分支
git push origin --delete <branchname>

四.远程操作

1.管理 Git 仓库中的远程仓库

•git remote :提供一些用于查看、添加、重命名和删除远程仓库的功能。

git remote列出当前仓库中已配置的远程仓库
git remote add <remote_name> <remote_url>

添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。

git remote rename <old_name> <new_name>将已配置的远程仓库重命名
git remote remove <remote_name>从当前仓库中删除指定的远程仓库
git remote set-url <remote_name> <new_url>修改指定远程仓库的 URL
git remote show <remote_name>显示指定远程仓库的详细信息,包括 URL 和跟踪分支
git remote -v列出当前仓库中已配置的远程仓库,并显示它们的 URL

2.数据的获取与推送

•git fetch :命令用于从远程获取代码库。

#想要提取更新的数据
git fetch [alias]
#将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支
git merge [alias]/[branch]

•git pull 命令用于从远程获取代码并合并本地的版本。其实就是 git fetch 和 git merge 的简写,先从远程仓库获取最新的提交记录,然后将这些提交记录合并到你当前的分支中。

#将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并
git pull origin master:brantest
#如果远程分支是与当前分支合并,则冒号后面的部分可以省略
git pull origin master

•git push: 命令用于从将本地的分支版本上传到远程并合并。

git push <远程主机名> <本地分支名>:<远程分支名>

五.标签

下面是1个综合示例,演示如何创建、查看、推送和删除标签。

1.创建轻量标签和附注标签

git tag v1.0
git tag -a v1.1 -m "runoob.com标签"

2.查看标签和标签信息

git tag
git show v1.1

3.推送标签到远程仓库

git push origin v1.0
git push origin v1.1
git push origin --tags  # 推送所有标签

4.删除标签

#本地删除
git tag -d v1.0
#远程删除
git push origin --delete v1.0

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

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

相关文章

PIMPL模式和D指针

目录 一、PIMPL模式概念&#xff1a; 1.1 pImpl手法的优势和目的 1.1.1屏蔽实现细节 1.2 .2加速编译 1.2.3 更好的二进制兼容性 1.2.4 惰性分配 二、PIMPL模式项目中应用&#xff1a; 2.1 项目背景 2.2 对外接口代码&#xff1a; 2.2.1 对外库接口头文件 2.2.2 对外…

Android显示系统(01)- 架构分析

一、前言&#xff1a; Android是基于Linux的&#xff0c;而显示设备的驱动也都是和Linux普通设备一样去管理&#xff0c;也就是说归根结底还是要按照Linux的方式组织数据送给LCD&#xff0c;因此&#xff0c;我们理解Android设计的这一套复杂的显示系统时候&#xff0c;一定要…

15分钟做完一个小程序,腾讯这个工具有点东西

我记得很久之前&#xff0c;我们都在讲什么低代码/无代码平台&#xff0c;这个概念很久了&#xff0c;但是&#xff0c;一直没有很好的落地&#xff0c;整体的效果也不算好。 自从去年 ChatGPT 这类大模型大火以来&#xff0c;各大科技公司也都推出了很多 AI 代码助手&#xff…

跨标签通信的几种方式

以前面试被问到过&#xff0c;就了解了一下。还有其他方式&#xff0c;但是实际开发中&#xff0c;使用第一个就可以了 目录 1. 使用BroadcastChannel 2. 使用SharedWorker 3. 使用webSocket 1. 使用BroadcastChannel 它允许同源&#xff08;协议、域名、端口都相同&#x…

深度神经网络模型压缩学习笔记二:离线量化算法和工具、实现原理和细节

文章目录 一、离线量化基础概念1&#xff09;离线量化定义2&#xff09;离线量化优缺点3&#xff09;如何生产一个硬件能跑的量化模型&#xff1f;4&#xff09;离线量化的类型5&#xff09;如何计算scale&#xff0c;zero_point?6&#xff09;离线量化概念7&#xff09;PTQ与…

HTML详解(1)

1.HTML定义 HTML&#xff1a;超文本标记语言。超文本&#xff1a;通过链接可以把多个网页链接到一起标记&#xff1a;标签&#xff0c;带括号的文本后缀&#xff1a;.html 标签语法&#xff1a;<strong>需加粗文字</strong> 成对出现&#xff0c;中间包裹内容&l…

【21-30期】Java技术深度剖析:从分库分表到微服务的核心问题解析

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Java &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 文章题目&#xff1a;Java技术深度剖析&#xff1a;从分库分表到微服务的核心问题解析 摘要&#xff1a; 本…

Jmeter中的配置原件

2&#xff09;配置原件 1--CSV Data Set Config 用途 参数化测试&#xff1a;从CSV文件中读取数据&#xff0c;为每个请求提供不同的参数值。数据驱动测试&#xff1a;使用外部数据文件来驱动测试&#xff0c;使测试更加灵活和可扩展。 配置步骤 准备CSV文件 创建一个CSV文…

Redis持久化、主从及哨兵架构详解

Redis持久化 RDB快照&#xff08;snapshot&#xff09; 在默认情况下&#xff0c;Redis将内存数据库快照保存在名字为dump.rdb的二进制文件中。 你可以对Redis进行设置&#xff0c;让它在“N秒内数据集至少有M个改动”这一条件被满足时&#xff0c;自动保存一次数据集。 比…

双向链表、循环链表、栈

双向循环链表 class Node:#显性定义出构造函数def __init__(self,data):self.data data #普通节点的数据域self.next None #保存下一个节点的链接域self.prior None #保存前一个节点饿链接域 class DoubleLinkLoop:def __init__(self, node Node):self.head nodeself.siz…

【青牛科技】D1671 75Ω 带4级低通滤波的单通道视频放大电 路芯片介绍

概 述 &#xff1a; D1671是 一 块 带 4级 低 通 滤 波 的 单 通 道 视 频 放 大 电 路 &#xff0c; 可 在3V或5V的 低 电 压 下 工 作 。 该 电 路 用 在 有 TV影 象 输 出 功 能 的 产 品 上 面&#xff0c;比如 机 顶 盒 &#xff0c;监 控 摄 象 头 &#xff0c;DVD&#…

Linux服务器生成SSH 密钥对与 GitLab 仓库进行交互

目录 生成 SSH 密钥对 将公钥添加到 GitLab 测试 SSH 连接 生成 SSH 密钥对 在执行脚本的机器上打开终端&#xff0c;执行以下命令&#xff08;假设使用默认的 RSA 算法&#xff0c;一路回车使用默认设置即可&#xff0c;也可以根据需要指定其他算法和参数&#xff09;&…

关于SpringBoot集成Kafka

关于Kafka Apache Kafka 是一个分布式流处理平台&#xff0c;广泛用于构建实时数据管道和流应用。它能够处理大量的数据流&#xff0c;具有高吞吐量、可持久化存储、容错性和扩展性等特性。 Kafka一般用作实时数据流处理、消息队列、事件架构驱动等 Kafka的整体架构 ZooKeeper:…

在Unity中实现物体动画的完整流程

在Unity中&#xff0c;动画是游戏开发中不可或缺的一部分。无论是2D还是3D游戏&#xff0c;动画都能为游戏增添生动的视觉效果。本文将详细介绍如何在Unity中为物体添加动画&#xff0c;包括资源的准备、播放组件的添加、动画控制器的创建以及动画片段的制作与调度。 1. 准备动…

自定义协议

1. 问题引入 问题&#xff1a;TCP是面向字节流的&#xff08;TCP不关心发送的数据是消息、文件还是其他任何类型的数据。它简单地将所有数据视为一个字节序列&#xff0c;即字节流。这意味着TCP不会对发送的数据进行任何特定的边界划分&#xff0c;它只是确保数据的顺序和完整…

Spring Boot 3.4.0 发行:革新与突破的里程碑

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

android 11添加切换分屏功能

引言 自Android 7开始官方就支持分屏显示,但没有切换分屏的功能,即交换上下屏幕。直到Android 13开始才支持切换分屏,操作方式是:分屏模式下双击中间分割线就会交换上下屏位置。本文的目的就是在Android 11上实现切换分屏的功能。 下图是Android13切换分屏演示 切换分屏…

PyTorch基础05_模型的保存和加载

目录 一、模型定义组件——重构线性回归 二、模型的加载和保存 2、序列化保存对象和加载 3、保存模型参数 一、模型定义组件——重构线性回归 回顾之前的手动构建线性回归案例&#xff1a; 1.构建数据集&#xff1b;2.加载数据集(数据集转换为迭代器)&#xff1b;3.参数初…

JavaScript核心语法(3)

前两篇文章大概把JavaScript的基础语法讲了一下&#xff0c;这篇文章主要讲讲ES6的核心语法。ES6的核心语法说实话其实有点多&#xff0c;我重点挑一些经常在项目中用到的来讲&#xff0c;其他一些我没怎么见过的就不讲了。 目录 1.变量和常量 变量&#xff08;let 和 var&a…

爬虫开发(5)如何写一个CSDN热门榜爬虫小程序

笔者 綦枫Maple 的其他作品&#xff0c;欢迎点击查阅哦~&#xff1a; &#x1f4da;Jmeter性能测试大全&#xff1a;Jmeter性能测试大全系列教程&#xff01;持续更新中&#xff01; &#x1f4da;UI自动化测试系列&#xff1a; SeleniumJava自动化测试系列教程❤ &#x1f4da…