linux系统git常规操作

Git命令常规操作

      • 常用命令说明
        • 常用操作示意图
        • 文件的状态变化周期
      • 添加文件跟踪
        • 文件会添加到.git的隐藏目录
        • 由工作区提交到本地仓库
        • 查看git的状态
        • 提交后的git目录状态
      • 删除文件
      • 重命名暂存区数据
      • 查看历史记录
      • 还原历史数据
      • 还原未来数据
      • 标签使用
      • 对比数据

常用命令说明

命令命令说明
add添加文件内容至索引,暂存区
bisect通过二分法查找定位引入 bug 的变更。二分法:每次截取总数的一半寻找bug
branch列出、创建或删除分支
checkout检出一个分支或路径到工作区,-b 切换分支,分支不存在就创建
clone克隆一个版本库到一个新目录
commit暂存区上传到本地仓库
diff显示提交之间、提交和工作区之间等的差异,对比本地仓库和远程仓库差异
fetch从另外一个版本库下载对象和引用
grep输出和模式匹配的行,查找内容
init创建一个空的仓库
log显示提交日志,reflog
merge合并两个或更多开发历史
mv移动或重命名一个文件、目录或符号链接
pull获取并合并另外的版本库或一个本地分支,本地仓库拉去远程仓库代码
push更新远程引用和相关的对象
rebase本地提交转移至更新后的上游分支中
reset重置当前HEAD到指定状态 ,git reset --hard commit的值
rm从工作区和索引中删除文件,–cached 只从索引区删除,-f 删除暂存区和本地文件
show显示各种类型的对象
status显示工作区状态
tag创建、列出、删除或校验一个GPG签名的 tag 对象
常用操作示意图

1190037-20171130170959948-2117269594.png

文件的状态变化周期

1190037-20171130171009651-1964332055.png

添加文件跟踪

git add .git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#    新文件:    README
#
---
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   README
#
文件会添加到.git的隐藏目录
[root@gitlab git_data]# tree  .git/
.git/
├── branches
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-push.sample
│   ├── pre-rebase.sample
│   └── update.sample
├── index
├── info
│   └── exclude
├── objects
│   ├── e6
│   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│   ├── info
│   └── pack
└── refs├── heads└── tags
由工作区提交到本地仓库
[root@gitlab git_data]# git commit  -m 'first commit'  
[master(根提交) bb963eb] first commit1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 README
查看git的状态
[root@gitlab git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区# On branch master
nothing to commit, working directory clean
提交后的git目录状态
[root@gitlab git_data]# tree  .git/
.git/
├── branches
├── COMMIT_EDITMSG
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-push.sample
│   ├── pre-rebase.sample
│   └── update.sample
├── index
├── info
│   └── exclude
├── logs
│   ├── HEAD
│   └── refs
│       └── heads
│           └── master
├── objects
│   ├── 54
│   │   └── 3b9bebdc6bd5c4b22136034a95dd097a57d3dd
│   ├── bb
│   │   └── 963eb32ad93a72d9ce93e4bb55105087f1227d
│   ├── e6
│   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│   ├── info
│   └── pack
└── refs├── heads│   └── master└── tags

删除文件

git rm --cached 文件名   //只从索引区删除git rm -f 文件名     //删除暂存区和本地文件

重命名暂存区数据

没有添加到暂存区的数据直接mv/rename改名即可。

已经添加到暂存区数据

git mv 原名 新名字

查看历史记录

git log   #→查看提交历史记录git log -2   #→查看最近几条记录git log -p -1  #→-p显示每次提交的内容差异,例如仅查看最近一次差异git log --stat -2 #→--stat简要显示数据增改行数,这样能够看到提交中修改过的内容,对文件添加或移动的行数,并在最后列出所有增减行的概要信息git log --pretty=oneline #→--pretty根据不同的格式展示提交的历史信息git log --pretty=fuller -2 #→以更详细的模式输出提交的历史记录git log --pretty=fomat:"%h %cn"  #→查看当前所有提交记录的简短SHA-1哈希字串与提交着的姓名。

使用format参数来指定具体的输出格式

格式说明
%s提交说明。
%cd提交日期。
%an作者的名字。
%cn提交者的姓名。
%ce提交者的电子邮件。
%H提交对象的完整SHA-1哈希字串。
%h提交对象的简短SHA-1哈希字串。
%T树对象的完整SHA-1哈希字串。
%t树对象的简短SHA-1哈希字串。
%P父对象的完整SHA-1哈希字串。
%p父对象的简短SHA-1哈希字串。
%ad作者的修订时间。

还原历史数据

Git服务程序中有一个叫做HEAD的版本指针,当用户申请还原数据时,其实就是将HEAD指针指向到某个特定的提交版本,但是因为Git是分布式版本控制系统,为了避免历史记录冲突,故使用了SHA-1计算出十六进制的哈希字串来区分每个提交版本,另外默认的HEAD版本指针会指向到最近的一次提交版本记录,而上一个提交版本会叫HEAD,上一个版本则会叫做HEAD,当然一般会用HEAD~5来表示往上数第五个提交版本。
git log        //查看历史提交数据的commit数值git reset --hard commit数值

还原未来数据

git reflog    //查看未来历史更新点
git reset --hard commit数值

标签使用

在git push 之前打标签即可
git tag v1.0      //当前提交内容打一个标签(方便快速回滚),每次提交都可以打个tag。git tag           //查看当前所有的标签git show v1.0     //查看当前1.0版本的详细信息git tag v1.2 -m "version 1.2 release is test"  //创建带有说明的标签,-a指定标签名字,-m指定说明文字git tag -d v1.0    //我们为同一个提交版本设置了两次标签,删除之前的v1.0
git reset --hard HEAD^ //回滚到上一个版本git reset --hard HEAD^^  //回滚到上两个版本git reset --hard HEAD~5   //回滚到五个版本之前git reset --hard e9ed8b38a    //使用commit值回滚git reset --hard V1.0    //使用标签回滚

对比数据

git diff可以对比当前文件与仓库已保存文件的区别,知道了对README作了什么修改后,再把它提交到仓库就放⼼多了。
git diff README
git diff --name-only HEAD HEAD^
git diff --name-only head_id head_id2

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

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

相关文章

C++ //练习 8.9 使用你为8.1.2节(第281页)第一个练习所编写的函数打印一个istringstream对象的内容。

C Primer&#xff08;第5版&#xff09; 练习 8.9 练习 8.9 使用你为8.1.2节&#xff08;第281页&#xff09;第一个练习所编写的函数打印一个istringstream对象的内容。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*****…

8.网络游戏逆向分析与漏洞攻防-游戏网络架构逆向分析-游戏底层功能对接类GameProc的实现

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;通过逆向分析确定游戏明文接收数据过程 码云地址&#xff08;master 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/titan 码云版本号&#xff1a;bcf7559184863febdcad819e48aaa…

C语言中的函数设计与调用优化

大家好&#xff0c;今天给大家介绍C语言中的函数设计与调用优化&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 一、引言 在C语言中&#xff0c;函数是代码组织的基本单元&…

面向企业 SaaS 应用程序的应用程序性能管理

企业应用程序需要高度的可扩展性来满足庞大的最终用户群&#xff0c;这些组织中的 IT 团队面临的首要问题是监控正常运行时间并确保其业务应用程序的良好性能&#xff0c;为了解决这些问题&#xff0c;企业需要对端到端应用程序性能管理工具进行战略投资&#xff0c;使 IT 运营…

wcf 简单实践 数据绑定 数据更新ui

1.概要 2.代码 2.1 xaml <Window x:Class"WpfApp3.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expr…

Python入门必学:reverse()和reversed()的区别

Python入门必学&#xff1a;reverse()和reversed()的区别 &#x1f4c5;2024年02月25日 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程…

Python爬虫进阶:爬取在线电视剧信息与高级检索

简介&#xff1a; 本文将向你展示如何使用Python创建一个能够爬取在线电视剧信息的爬虫&#xff0c;并介绍如何实现更高级的检索功能。我们将使用requests和BeautifulSoup库来爬取数据&#xff0c;并使用pandas库来处理和存储检索结果。 目录 一、爬取在线电视剧信息 …

容器镜像详解

1. 镜像组成 一个标准的OCI容器镜像由index, manifest, config, image layers这几个部分组成。 以docker镜像为例&#xff0c;下载的镜像文件保存在/var/lib/docker/目录下面 image/overlay2子目录下面保存着镜像相关的一些元数据 在下面的介绍主要以nginx:latest镜像为例子…

Stable Diffusion 3重磅发布

刚不久&#xff0c;Stability AI发布了Stable Diffusion 3.0&#xff0c;这一版本采用了与备受瞩目的爆火Sora相同的DiT架构。通过这一更新&#xff0c;画面质量、文字渲染以及对复杂对象的理解能力都得到了显著提升。由于这些改进&#xff0c;先前的技术Midjourney和DALL-E 3在…

基础数据结构和算法《》

递归 1.递归应该一种比较常见的实现一些特殊代码逻辑时需要做的&#xff0c;但常常也是最绕的一种方式&#xff0c;在解释递归 之前&#xff0c;我们用循环和递归来做个比较1.1.如果你打开一扇门后&#xff0c;同样发现前方也有一扇们&#xff0c;紧接着你又打开下一扇门...直…

5 buuctf解题

命令执行 [BJDCTF2020]EasySearch1 打开题目 尝试弱口令&#xff0c;发现没有用 扫描一下后台&#xff0c;最后用御剑扫描到了index.php.swp 访问一下得到源码 源码如下 <?phpob_start();function get_hash(){$chars ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstu…

【Java程序设计】【C00319】基于Springboot的志愿服务管理系统(有论文)

基于Springboot的志愿服务管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的志愿服务管理系统设计与实现&#xff0c;本系统有管理员以及用户二种角色权限 管理员&#xff1a;首页、个人中心、管理员管理、…