【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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jvm核心组件介绍

1. 类加载器&#xff08;ClassLoader&#xff09;&#xff1a; • 想象它是一个快递员&#xff0c;负责把Java类&#xff08;.class文件&#xff09;这个“包裹”从磁盘这个“发货地”送到JVM内部这个“目的地”。类加载器确保每个类只被加载一次&#xff0c;并维护一个类的层级…

【Docker】常用命令汇总

Docker 是1个开源的应用容器引擎&#xff0c;基于Go 语言并遵从 Apache2.0 协议开源。 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 容器是完全使用沙箱机制&#xff0c;相…

ChatGPT如何辅助academic writing?

今天想和大家分享一篇来自《Nature》杂志的文章《Three ways ChatGPT helps me in my academic writing》&#xff0c;如果您的日常涉及到学术论文的写作&#xff08;writing&#xff09;、编辑&#xff08;editing&#xff09;或者审稿&#xff08; peer review&#xff09;&a…

对比C++,Rust在内存安全上做的努力

简介 近年来&#xff0c;越来越多的组织表示&#xff0c;如果新项目在技术选型时需要使用系统级开发语言&#xff0c;那么不要选择使用C/C这种内存不安全的系统语言&#xff0c;推荐使用内存安全的Rust作为替代。 谷歌也声称&#xff0c;Android 的安全漏洞&#xff0c;从 20…

【网络安全设备系列】12、态势感知

0x00 定义&#xff1a; 态势感知&#xff08;Situation Awareness&#xff0c;SA&#xff09;能够检测出超过20大类的云上安全风险&#xff0c;包括DDoS攻击、暴力破解、Web攻击、后门木马、僵尸主机、异常行为、漏洞攻击、命令与控制等。利用大数据分析技术&#xff0c;态势感…

UE5 slate BlankProgram独立程序系列

源码版Engine\Source\Programs\中copy BlankProgram文件夹&#xff0c;重命名为ASlateLearning&#xff0c;修改所有文件命名及内部名称。 ASlateLearning.Target.cs // Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool; using System.Collections.Ge…

铲屎官进,2024年宠物空气净化器十大排行,看看哪款吸毛最佳?

不知道最近换毛季&#xff0c;铲屎官们还承受的住吗&#xff1f;我家猫咪每天都在表演“天女散花”&#xff0c;家里没有一块干净的地方&#xff0c;空气中也都是堆积的浮毛&#xff0c;幸好有宠物空气净化器这种清理好物。宠物空气净化器针对宠物浮毛设计&#xff0c;可以有效…

VOLO实战:使用VOLO实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

AI加持,华为全屋智能品牌升级为“鸿蒙智家”

1.传统智能家居的困境&#xff1a;从便利到繁琐 近年来&#xff0c;智能家居因其便捷性和科技感受到消费者的青睐。然而&#xff0c;随着用户需求的多样化&#xff0c;传统智能家居的弊端逐渐显现&#xff1a; 设备连接复杂&#xff0c;品牌间兼容性不足&#xff0c;用户不得不…

.NET9 - Swagger平替Scalar详解(四)

书接上回&#xff0c;上一章介绍了Swagger代替品Scalar&#xff0c;在使用中遇到不少问题&#xff0c;今天单独分享一下之前Swagger中常用的功能如何在Scalar中使用。 下面我们将围绕文档版本说明、接口分类、接口描述、参数描述、枚举类型、文件上传、JWT认证等方面详细讲解。…

Qt界面篇:QMessageBox高级用法

1、演示效果 2、用法注意 2.1 设置图标 用于显示实际图标的pixmap取决于当前的GUI样式。也可以通过设置icon pixmap属性为图标设置自定义pixmap。 QMessageBox::Icon icon(

【第二讲】Spring Boot 3.4.0 新特性详解:新的依赖管理功能

Spring Boot 3.4.0 版本引入了一些显著的改进&#xff0c;其中之一就是新的依赖管理功能。这些改进不仅提升了依赖管理的便利性和一致性&#xff0c;还增强了项目的可维护性和可扩展性。本文将详细介绍 Spring Boot 3.4.0 中新的依赖管理功能&#xff0c;提供具体的使用示例和场…

阿里发布 EchoMimicV2 :从数字脸扩展到数字人 可以通过图片+音频生成半身动画视频

EchoMimicV2 是由阿里蚂蚁集团推出的开源数字人项目&#xff0c;旨在生成高质量的数字人半身动画视频。以下是该项目的简介&#xff1a; 主要功能&#xff1a; 音频驱动的动画生成&#xff1a;EchoMimicV2 能够使用音频剪辑驱动人物的面部表情和身体动作&#xff0c;实现音频与…

STM32C011开发(3)----Flash操作

STM32C011开发----3.Flash操作 概述硬件准备视频教学样品申请源码下载参考程序生成STM32CUBEMX串口配置堆栈设置串口重定向FLASH数据初始化FLASH 读写演示 概述 STM32C011 系列微控制器内置 Flash 存储器&#xff0c;支持程序存储与数据保存&#xff0c;具备页面擦除、双字写入…

银河麒麟桌面系统——桌面鼠标变成x,窗口无关闭按钮的解决办法

银河麒麟桌面系统——桌面鼠标变成x&#xff0c;窗口无关闭按钮的解决办法 1、支持环境2、详细操作说明步骤1&#xff1a;用root账户登录电脑步骤2&#xff1a;导航到kylin-wm-chooser目录步骤3&#xff1a;编辑default.conf文件步骤4&#xff1a;重启电脑 3、结语 &#x1f49…

【自动化Selenium】Python 网页自动化测试脚本(上)

目录 1、Selenium介绍 2、Selenium环境安装 3、创建浏览器、设置、打开 4、打开网页、关闭网页、浏览器 5、浏览器最大化、最小化 6、浏览器的打开位置、尺寸 7、浏览器截图、网页刷新 8、元素定位 9、元素交互操作 10、元素定位 &#xff08;1&#xff09;ID定位 &…

【PTA】【数据库】【SQL命令】编程题2

数据库SQL命令测试题2 测试题目录 10-1 查询“李琳”老师所授课程的课程名称10-2 查询成绩比所有课程的平均成绩高的学生的学号及成绩10-3 创建带表达式的视图StuView10-4 从视图PerView中查询数据10-5 查询工资高于在“HR”部门工作的所有员工的工资的员工信息10-6 查询选修的…

深入浅出摸透AIGC文生图产品SD(Stable Diffusion)

hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…

蓝桥杯c++算法秒杀【6】之动态规划【下】(数字三角形、砝码称重(背包问题)、括号序列、异或三角:::非常典型的必刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01;! ! ! ! &#xff01; 关注博主&#xff0c;更多蓝桥杯nice题目静待更新:) 动态规划 三、括号序列 【问题描述】 给定一个括号序列&#xff0c;要求尽可能少地添加若干括号使得括号序列变得合…

24.100ASK_T113-PRO 驱动摄像头(V4L2)

1.在buildroot 中使能 V4L库 使用make menuconfig命令之后弹出编译菜单选项&#xff1a; 2.按下 / 输入 "libv4l 后回车进行搜索&#xff0c;有2个搜索结果&#xff0c; 3.按下 1 进行跳转 4.按下 / 输入 fswebcam 后回车进行搜索&#xff0c;有1个搜索结果&#xff0c; …