【Linux系统编程】初步运用git工具

介绍:

        使用git之前首先要先认识gitee/github,gitee/github是一个远程仓库网站。git是平台专门开发的一个操控工具,是一个开源的分布式版本控制系统,我们使用git工具来与gitee/github来取得联系。

git的推送使用:

        git既然是一个工具,我们首先要查看系统下是否安装了它:

[zhu@zhujunhao ~]$ which git
/usr/bin/git   //出现此路径表示已经安装了git工具

        若没有安装,要使用yum进行安装。安装命令如下,这里我们普通用户使用sudo提权操作

[zhu@zhujunhao ~]$ sudo yum install -y git

        下面,我们要先登入gitee/github网站创建仓库,这里我们使用gitee网站。在创建仓库时,注意要初始化仓库语言的选择和 .gitignore 文件的选择。语言的选择是根据自己用什么语言写的程序来进行选择,而 .gitignore 文件是专门用来进行过滤掉不想添加文件的后缀名,它会过滤掉里面写的特定文件后缀名。比如我们只想添加C++的源文件,只需选择此模板下的c++即可。其它的操作若不是用于多人开发大项目或工程的研发系统等使用只需按照以下的勾选即可。

        仓库创建好之后,要先将仓库克隆到本地机器下,这里要克隆远程仓库中 HTTPS 的链接

        然后在命令行中使用 git 指令进行克隆,指令为 git clone [HTTPS仓库链接],如下:

[zhu@zhujunhao git]$ git clone https://gitee.com/zhujunhaochengxuyuan/c-application-55.git

//出现下面类似的内容表示克隆成功
Cloning into 'c-application-55'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), done.

        克隆远端仓库后,将会在当前目录下出现一个仓库目录,此目录就是远端仓库。上面我们克隆的远端仓库为 c-application-55,里面有许多git和仓库必要的使用文件和工具,这里先不做重点介绍。

[zhu@zhujunhao git]$ ll
total 4
drwxrwxr-x 3 zhu zhu 4096 Dec 10 08:38 c-application-55 

[zhu@zhujunhao git]$ cd c-application-55
[zhu@zhujunhao c-application-55]$ ll -a
total 24
drwxrwxr-x 3 zhu zhu 4096 Dec 10 08:38 .
drwxrwxr-x 3 zhu zhu 4096 Dec 10 08:38 ..
drwxrwxr-x 8 zhu zhu 4096 Dec 10 08:38 .git
-rw-rw-r-- 1 zhu zhu  270 Dec 10 08:38 .gitignore
-rw-rw-r-- 1 zhu zhu  819 Dec 10 08:38 README.en.md
-rw-rw-r-- 1 zhu zhu  908 Dec 10 08:38 README.md

        下面我们使用git工具来把工程推送到远端仓库。

        推送工程目录必要使用的三个方法:add、commit、push。首先,要用add将工程目录增添到仓库中的暂存区进行临时保存,这里还没有真正意义上放到仓库中,然后,使用commit提交到本地仓库,这里才算把工程目录放入到本地仓库中,但这里只是存入到本地仓库,并没有放入到远程仓库中,也就是说gitee网站中还没有此目录,最后push将其推送到远端网站,这时才算正真意义上的结束。

        首先,我们把工程目录放入到本地仓库中,然后,使用三个必要方法进行推送。这里需注意的是在推送过程中,当用户第一次使用git工具时会出现以下信息。

        这里的意思是让你输入个人注册的邮箱和用户名,如同第一次使用时的注册。这时只需要输入上面红色区域中的对应指令的个人邮件和姓名即可。如下:

[zhu@zhujunhao c-application-55]$ git config --global user.email "个人注册时的邮箱"
[zhu@zhujunhao c-application-55]$ git config --global user.name "个人注册的姓名"

        下面,我们正式开始推送,其中具体的使用和注意事项如下:

//首先把目录process放入到本地仓库c-application-55中

[zhu@zhujunhao c-application-55]$ cp ../../process . -r  
[zhu@zhujunhao c-application-55]$ ll
total 12
drwxrwxr-x 2 zhu zhu 4096 Dec 10 08:59 process
-rw-rw-r-- 1 zhu zhu  819 Dec 10 08:38 README.en.md
-rw-rw-r-- 1 zhu zhu  908 Dec 10 08:38 README.md

//add增添到当前目录仓库中的暂存区中

[zhu@zhujunhao c-application-55]$ git add . //add当前目录下所有内容,这里可指定文件

//commit推送本地,这里我们说明标题为"Linux第一次提交进度条改版,测试通过"
[zhu@zhujunhao c-application-55]$ git commit -m "Linux第一次提交进度条改版,测试通过"

[master 3c8e71a] Linux第一次提交进度条改版,测试通过
 4 files changed, 102 insertions(+)
 create mode 100644 process/main.cpp
 create mode 100644 process/makefile
 create mode 100644 process/process.cpp
 create mode 100644 process/process.h

//最后push推送远端仓库
[zhu@zhujunhao c-application-55]$ git push

warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Username for 'https://gitee.com':   //这里要让你输入在gitee注册的账号
Password for 'https://19836143735@gitee.com':   //这里要让你输入注册的密码

//若输入错误,将会出现类似于下面的信息,表示错误

fatal: Authentication failed for 'https://gitee.com/zhujunhaochengxuyuan/c-application-55.git/'

//输入成功后将会出现有关下面类似的信息,表示成功推送

Counting objects: 8, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 1.61 KiB | 0 bytes/s, done.
Total 7 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/zhujunhaochengxuyuan/c-application-55.git
   249e5a3..3c8e71a  master -> master

git的指令运用:

        当我们提交远端仓库后,可在仓库目录下使用git log查看历史提交记录,注意,这里只能在本地仓库目录下才可以使用 git log 查看,在其它目录下使用统统失败。

[zhu@zhujunhao c-application-55]$ git log
commit 3c8e71aad65802c4b8b5c749874ae23a31b6259f
Author: /*.......这里显示的是作者信息....*/
Date:   Sun Dec 10 09:08:16 2023 +0800

    Linux第一次提交进度条改版,测试通过

commit 249e5a32f815dec545799255be464e382ac53cca
Author: /*.......这里显示的是作者信息....*/
Date:   Sun Dec 10 00:37:36 2023 +0000

    Initial commit

        下面要说明一点,当我们在本地仓库目录下对仓库目录进行操作修改时,不会影响远程仓库的内容,也就是说本地仓库和远程仓库之间虽然存在某些关联,但是没有必要联系。这时,若想修改远程仓库内容,就要重新执行 add、commit、push 重新推送。当多人一起开发时,有时可能会出现提交冲突等,此时需使用 git pull 指令获取最新的代码更新,并将其合并到本地仓库中,以确保本地代码与远程仓库保持同步。

[zhu@zhujunhao c-application-55]$ git pull

//已经同步
Already up-to-date.   

       git指令中 git status 命令可查看当前Git仓库的状态,即显示哪些文件被修改、哪些文件被暂存、哪些文件未被跟踪等信息。通过使用git status,开发者可以随时了解项目的最新变动,避免因不同分支的代码冲突而引发的问题。

[zhu@zhujunhao c-application-55]$ git status

//此时的仓库状态没有任何变动
# On branch master
nothing to commit, working directory clean

        上面还说到,当我们使用add只是将特定的目录或文件进行暂存,若想将暂存文件或目录全部去除,直接使用 git reset 指令。若只想将某个特定的暂存文件或目录移回工作区,可以使用 git reset [要移除的文件或目录]                       

[zhu@zhujunhao c-application-55]$ git add test     //add文件test

[zhu@zhujunhao c-application-55]$ git status  

//可发现当前仓库状态已经add推送
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   test
#
[zhu@zhujunhao c-application-55]$ git reset test   //移除test文件
[zhu@zhujunhao c-application-55]$ git status 

//发现移除成功
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    test
nothing added to commit but untracked files present (use "git add" to track)

.gitignore文件的使用:

        在 .gitignore 文件中,我们也可自己进行控制过滤掉不需要的文件。当自己需要传送某些后缀名的文件时,只需在.gitignore 文件中找到对应文件后缀名语句 “ *.[指定后缀名] ” 将其删除即可。若不想增添特定后缀名的文件,在.gitignore文件中输入 “ *.[指定后缀名] ” 即可。

[zhu@zhujunhao c-application-55]$ vim .gitignore
[zhu@zhujunhao c-application-55]$ cat .gitignore
*.phh  //增添的内容,过滤掉以.phh为后缀名的文件,当删除此语时,将正常推送 

...........

        这里要注意的是,不要忽略要过滤文件前面的通配符符号' * ',若忽略了通配符过滤功能将不会生效。

        最后,要说明的是,Linux中的git指令在我们Windows系统下其实也可以运用起来,只需在对应的仓库文件夹中打开窗口或打开相关指令界面进行输入指令操作即可。

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

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

相关文章

商城免费搭建之java鸿鹄云商 java电子商务商城 Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

鸿鹄云商 SAAS云产品概述 1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、My…

光纤的连接

光纤在工程布线中&#xff0c;难免会遇到线不够长或者磨损折断的情况&#xff0c;要怎么处理呢&#xff1f; 首先看看光纤的结构&#xff1a; 纤芯&#xff1a;中心部分&#xff0c;光波在纤芯中传输。 包层&#xff1a;环绕纤芯&#xff0c;折射率低于纤芯&#xff0c;作用是…

Talk | UCSB博士生王丹青: 大语言模型的协作学习以及个性化生成评估

本期为TechBeat人工智能社区第555期线上Talk。 北京时间12月13日(周三)20:00&#xff0c;加州大学圣塔芭芭拉分校博士生—王丹青的Talk已准时在TechBeat人工智能社区开播&#xff01; 她与大家分享的主题是: “大语言模型的协作学习以及个性化生成评估”&#xff0c;介绍了她的…

基于JAVAEE技术校园车辆管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本校园车辆管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

互联网加竞赛 python 机器视觉 车牌识别 - opencv 深度学习 机器学习

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于python 机器视觉 的车牌识别系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 &#x1f9ff; 更多资…

2023年最佳推荐 | 值得收藏的 5大 SaaS 知识库

随着数字化时代的到来&#xff0c;SaaS&#xff08;软件即服务&#xff09;已经成为企业和个人日常工作中的重要工具。在众多的SaaS应用中&#xff0c;知识库是不可或缺的一部分&#xff0c;它可以帮助我们更好地管理和利用知识&#xff0c;提高工作效率和创新能力。接下来就跟…

冲压模具市场调研:2023年该行业发展现状及前景分析

汽车冲压件模具是汽车车身生产的重要工艺装备&#xff0c;是汽车换型的主要制约因素。汽车冲压件模具具有尺寸大、型面复杂、精度要求高等特点&#xff0c;属于技术密集型产品。 汽车冲压模具能快速精密地把材料直接加工成零件或半成品并通过焊接、铆接、拼装等工艺装配成零部件…

CRM是怎样帮助企业从激烈竞争中脱颖而出的?

有限的市场机会与资源推动了市场竞争。市场竞争是在所难免的&#xff0c;但企业可以借助CRM管理系统调整其业务策略&#xff0c;在市场上很多竞争者中突围。CRM系统怎样帮助企业赢得市场竞争&#xff1f; 以下五个功能点是关键&#xff1a;数据分析、客户管理、合作伙伴、营销自…

谷达冠楠科技:现在开抖音小店卖什么产品好

随着科技的发展和互联网的普及&#xff0c;越来越多的人开始尝试通过电商平台进行创业。抖音作为目前最受欢迎的短视频平台之一&#xff0c;也吸引了大量的商家入驻。那么&#xff0c;现在开抖音小店卖什么产品好呢? 首先&#xff0c;我们要明确一点&#xff0c;选择什么样的产…

[C/C++]——内存管理

学习C/C的内存管理 前言&#xff1a;一、C/C的内存分布二、C语言中动态内存管理方式三、C中动态内存管理方式3.1、new/delete操作符3.1.2、new/delete操作内置类型3.1.3、new/delete操作自定义类型 3.2、认识operator new和operator delete函数3.3、了解new和delete的实现原理3…

verilog基本语法-case语句-译码电路,编码电路,选择器电路

概述&#xff1a; 本节主要讲解LUT构造的组合逻辑电路中的译码电路&#xff0c;编码电路&#xff0c;选择器电路。这些基本电路是使用的最广泛的电路&#xff0c;但是一般情况下很容易忽略这些电路。其中译码电路是构成RAM中写地址的电路&#xff0c;而选择电路是构成RAM中数据…

视频数据卡设计方案:120-基于PCIe的视频数据卡

一、产品概述 基于PCIe的一款视频数据收发卡&#xff0c;并通过PCIe传输到存储计算服务器&#xff0c;实现信号的采集、分析、模拟输出&#xff0c;存储。 产品固化FPGA逻辑&#xff0c;实现PCIe的连续采集&#xff0c;单次采集容量2GB&#xff0c;开源的PCIe QT客…

11.仿简道云公式函数实战-逻辑函数-TRUE

1. TRUE函数 TRUE 函数可直接返回逻辑值 true。 2. 函数用法 TRUE() 3. 函数示例 TRUE 函数一般不会作为函数单独使用&#xff0c;可与其他函数一起使用&#xff0c;或作为判断逻辑的结果。如&#xff0c;判断字段值是否为空时&#xff0c;设置公式为IF(ISEMPTY(方案选择)…

【PostgreSQL】从零开始:(三)PgAdmin4下载与安装

【PostgreSQL】从零开始:&#xff08;三&#xff09;PgAdmin4下载与安装 pgAdmin简介liunx下部署通过yum部署pgAdmin4&#xff08;6.21&#xff09;1.安装依赖包2.永久停止防火墙3.配置pgadmin4项目源4.下载并安装pgAdmin45.执行初始化命令6.访问我们的网站 liunx下通过python方…

Linux install manual 1Panel

前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。1Panel 的功能和优势包括: 快速建站:深度集成 Wordpress 和 Halo,域名绑定、SSL 证书配置等一键搞定;高效管理:通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等;安全可…

利用机器学习实现客户细分的实战

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天来学习一下机器学习实战中的案例&#xff1a;创建客户细分&#xff0c;在此过程中也会补充很多重要的知识点&#xff0c;欢迎大家一起前来探讨学习~ 一、导入数据 在此项目中&#xff0c;我们使用 UCI 机器学习代码库…

如何创建逼真的3D模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 1、如何创建逼真的3D模型 通过调整默认的表面贴图&#xff0c;可以为…

DNSLog漏洞探测(七)之SQL注入漏洞实战

DNSLog漏洞探测(七)之SQL注入漏洞实战 在前面的文章之中&#xff0c;我们已经学习了XSS、RCE、XXE、SSRF漏洞中有关于DNSLog平台的使用。这些漏洞本身在执行时就有解析URL地址&#xff0c;发起网络请求的操作&#xff0c;所以只要我们把DNSLog平台获取的子域名地址发送到存在漏…

电脑监控软件丨你能接受在电脑上安装吗

很多人说自己是不能接受老板在电脑上安装电脑监控软件的&#xff0c;怎么说呢&#xff0c;我自己本身是没有任何意见的。 我是可以接受的。 先来说说我的理由&#xff1a; 我是站在企业管理者的角度上&#xff0c;来思考这个问题的。老板花钱雇佣员工不是来公司来上网聊天打游…

docker-harbor私有仓库

docker 三大组件 镜像 容器 仓库 仓库&#xff1a;保存镜像 私有&#xff0c;自定义用户的形式登录仓库&#xff0c;拉去或者上传镜像&#xff08;内部管理的用户&#xff09; harbor&#xff1a;是由VMware公司开发的&#xff0c;开源的企业级的docker registry 项目 。 帮…