Linux项目流程 + 用git将本地代码上传到gitee

news2024/11/6 19:19:39

目录

前言 

一个"进度条"项目

git上传代码

首次上传代码 

安装git 

 克隆仓库连接

 将文件传入路径目录

文件上传三板斧

后续提交更新

git实用用法补充


前言 

本文将介绍如何使用makefile编写项目并将其上传到git远程仓库。Makefile是一种用于自动化构建、编译和测试软件项目的工具,它可以帮助我们管理项目中的多个文件和依赖关系,并通过一些简单的命令来完成一些繁琐的任务。

在使用Makefile之前,我们需要先创建一个Git仓库,并将本地代码推送到远程仓库。然后我们可以使用Makefile来编译和构建项目,并将生成的文件推送到远程仓库记录。

在本文中,我们将介绍如何使用Makefile来编译C++项目,并将生成的文件推送到Git远程仓库


我们拿一个简单的模拟倒计时程序举例

运行代码: 

#include <stdio.h>
#include <unistd.h>
 
int main(void) {
  int cnt = 9;
  while (cnt) {
    printf("%d\r", cnt--);
    fflush(stdout);
    sleep(1);
  }
 
  return 0;
}

 此时就会在一个地方开始进行计数,从9到0

 

  • \r 表示回到当前行的首位置。
  • 在屏幕上这一行每打印出一个字符后,屏幕上的光标就会又回到首位置。
  • 利用fflush立刻刷新缓冲区数据输出数字,原本首位置的字符就会被新的字符覆盖,在等待1s以后,就会进入下个循环

利用回车符号和缓冲区的原理,我们就可以写出一个进度条的项目。

一个"进度条"项目

 程序完整代码

#include <stdio.h>
#include <string.h>
#include <unistd.h>

#define NUM 101
#define STYLE '#'

void process()
{
    char bar[NUM];
    memset(bar, '\0', sizeof(bar));

    const char *lable = "|/-\\";

    int cnt = 0;
    while(cnt <= 100)
    {
        printf("[%-100s] [%d%%] ... %c\r", bar, cnt, lable[cnt % 4]);  // 改成\r
        fflush(stdout);
        bar[cnt++] = STYLE;
        //bar[cnt] = '>';
        usleep(20000);
    }
    printf("\n");
}

int main()
{
    process();

    return 0;
}

注意:运行时必须全屏,否则会有显示bug

分为三段式项目格式 

 下面是test.cpp文件和进度条的头文件的代码。

#include "process.h"   //test.cpp
int main()
{
	Process0n();
	return 0;
}


#include <stdio.h>  //process.h
#include <string.h>
#include <unistd.h>
#define TIMES 100
#define NUM TIMES+1


extern void Process0n();

最重要的是如下process.cpp中的代码。



#include "process.h"   //process.cpp
void process() {
  char bar[NUM];
  memset(bar, '\0', sizeof(bar));  // 将所有缓冲区空间设置为\0
/* 不断旋转的光标:   | / - \   */
  const char* lable = "|/-\\";

  int cnt = 0;
  while (cnt <= NUM-1) {
    printf("[%-100s] [%d%%] ... %c\r", bar, cnt, lable[cnt % 4]);  
    fflush(stdout);         // 将数据立马显示出来

    bar[cnt++] = '#';   // 填充#作为进度图例

    usleep(20000);      // 休眠0.02s  
  }

  printf("\n");    // 跑完再让他换个行
}

int main(void) {
  process();
  return 0;
}
  • 在循环中,将数组中的元素打印出来,并且每次打印后都在数组中增加一个元素。
  • 因为打印的时候使用了回车\r,所以每次数组中的内容都会覆盖屏幕上原来的内容。
  • 通过fflush立刻刷新缓冲区中的数据到屏幕上
  • 使用usleep延时0.02s,这样整个进度条就可以在2s内打印完。

再看makefile文件中的内容:

Process0n:test.cpp
        g++  test.cpp process.cpp -o Process0n
.PHONY:clean
clean:
        rm -rf Process0n

make制作Process0n可执行程序,运行大功告成! 

git上传代码

首次上传代码 

安装git 

 我们的Linux系统中可能没有预装git,需要安装

yum install -y git

 克隆仓库连接

将云端的数据拷贝到当前机器上

格式:git clone+仓库的https链接

注意:名字是这个仓库的所属用户的名字

完成克隆后,生成了该仓库的 路径目录small-project-testing

进入该路径目录,用 pwd 查看该目录绝对路径

 将文件传入路径目录

  将我们需要上传的文件都放入同一个目录中,我把准备上传的文件放在f1目录中

拷贝文件到指定目录  cp 文件 指定目录路径

拷贝目录到指定目录  cp -r 目录 指定目录路径

 在路径目录里面开始上传

文件上传三板斧

三板斧第一招:git add .

  • 用法:git add [文件名]
  • 将文件放在创建好的本地仓库中

这里使用的文件名是一个点,git会自动判断,将当前目录下,并且在本地仓库中没有的文件放进本地仓库中

三板斧第二招:git commit -m ''

  • 用法:git commit -m ‘提交日志’
  • 功能:将文件中的改动提交到本地仓库,会自动更新已经放在本地仓库中的内容。
  • 注意:-m后的单引号中的提交日志一定不要乱写。

 当git第一次上传提交时出现了一个问题,如下:

Commit failed - exit code 128 received, with output: '*** Please tell me who you are.


Run


  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"


to set your account's default identity.
Omit --global to set the identity only in this repository.


fatal: empty ident name (for <>) not allowed'

翻译过来就是:请告诉我你是谁。
就是说这里git无法识别你是谁,你需要告诉 git 你的身份。

输入如下两条指令,即可完成

git config --global user.email "(邮箱)"
git config --global user.name "(名称)"

注意:git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。pei 

配置完成后,输入指令完成文件提交 

三板斧第三招:git push 

  • 用法:git push
  • 功能:将本地仓库中的内容和gitee上远端仓库的内容保持一致。

第一次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)

警告: push.default 未设置; 它的隐式值在 Git 2.0中从“匹配”改为“简单”。要压制这条消息并在默认更改后保持当前行为,请使用: git config —— global push.default match 要压制这条消息并立即采用新行为,请使用: git config —— global push.default simple 查看“ git help config”并搜索“ push.default”以获得更多信息。(‘ simple’模式是在 Git1.7.11中引入的。如果你有时使用旧版本的 Git,可以使用类似的“ current”模式而不是“ simple”模式)

 警告解决方案:(根据提示,修改git push的行为)

git config --global push.default matching

成功提交!!

后续提交更新

三板斧之一:add

格式:git add+文件

三板斧之二:commit

格式:git commit -m "内容"

三板斧之三:push

格式:git push

 

添加成功!!

git实用用法补充

查看提交记录:git log:

  • 用法:git log
  • 功能:显示向远端仓库的提交记录,并且是按照时间顺序倒着显示。

将远端仓库内容拉到本地仓库:git pull

  • 用法:git pull
  • 功能:将远端仓库中的内容拉到本地仓库,并且将不同的内容自动更新。

删除,重命名:git rm/mv 文件名:

  • 用法:git rm 文件名
  • 功能:删除仓库中的文件

 

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

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

相关文章

Python爬虫:从后端分析为什么你爬虫爬取不到数据

仅仅是小编总结的三点而已&#xff0c;可能不是很全面&#xff0c;如果之后小编了解到新的知识点&#xff0c;可能还会增加的哈&#xff01; 1. 最简单的爬虫代码 也就是各位最常使用的&#xff0c;直接利用requests模块访问当前网站链接&#xff0c;利用相关解析模块从而获取…

第三届陕西省大学生网络安全技能大赛wp

文章目录 第三届陕西省大学生网络安全技能大赛wpwebezpoptestezrceunserializeEsc4pe_T0_Mong0 misc管道可是雪啊飘进双眼 第三届陕西省大学生网络安全技能大赛wp web ezpop 在源码找到base64 解码&#xff1a; /pop3ZTgMw.php&#xff0c;访问获得源码&#xff1a; <?…

通过帮助中心提高客户满意度,帮助中心的最佳实践方式

随着技术的不断发展和产品的不断更新&#xff0c;消费者对产品的需求也越来越高。在这个竞争激烈的市场中&#xff0c;企业必须建立一个完善的帮助中心&#xff0c;来提供及时、准确的技术支持和解决方案&#xff0c;以满足客户的各种需求。这样能够有效地提高客户满意度&#…

java+springboot8高校教职工教师档案管理系统

系统设计遵循界面层、业务逻辑层和数据访问层的Web开发三层架构。采用B/S结构,使得系统更加容易维护。系统的设计与实现主要实现角色有管理员和用户,管理员在后台管理用户表模块、token表模块、公告信息模块、教职工模块、工资信息模块、调动离职模块、配置文件模块、出勤信息模…

好用工具第3期:全平台免费音乐LxMusic

LxMusic 1. 概要 LxMusic 是一个跨平台的开源的音乐播放器。支持本地音乐文件播放以及各大平台的音乐搜索播放和下载所有歌曲。 LxMusic 是一个开源项目, 项目地址是: 桌面端 https://github.com/lyswhut/lx-music-desktop 移动端 https://github.com/lyswhut/lx-music-mobi…

Ficus 第二弹,突破限制器的 Markdown 编辑管理软件!

大家好&#xff0c;我们是 ggG 团队&#xff0c;我们开发的 markdown 笔记管理软件 Ficus Beta 版本正式发布了。详情可以见我们官网&#xff0c;也可以来我们仓库查看。 相对于 Alpha 版本&#xff08;可以在我们之前的博客中查看&#xff09;&#xff0c;主要有 3 点明显的提…

【网络】协议定制+序列化/反序列化

为什么要序列化&#xff1f; 如果光看定义很难理解序列化的意义&#xff0c;那么我们可以从另一个角度来推导出什么是序列化, 那么究竟序列化的目的是什么&#xff1f; 其实序列化最终的目的是为了对象可以跨平台存储&#xff0c;和进行网络传输。而我们进行跨平台存储和网络…

[第一章 web入门]常见的搜集

首先就利用御剑或者dirsearch扫描一下网站后台&#xff0c;可以得到以下三个路径返回正常 robots.txt index.php~ .index.php.swp 其实我没扫描出来&#xff0c;这些都是看的别人的wp才做出来的&#xff0c;一开始我其实意识到御剑其实就是有一个字典&#xff0c;然后按照字典的…

【蓝桥杯算法题】用java遍写税收计算

【蓝桥杯算法题】用java遍写税收计算 题目&#xff1a;劳务报酬税收计算&#xff1a;输入 m &#xff0c;输出税后收入。如果 m <800&#xff0c;不扣税&#xff0c; 如果800< m <4000&#xff0e;则 m 减去800后的金额扣除20&#xff05;所得税。如果 m >4000&…

SpringBoot项目使用CXF框架开发Soap通信接口

SpringBoot项目使用CXF框架开发Soap通信接口 物料准备&#xff1a; 1.引入cxf官方提供的SpringBootStarter依赖 2.定义需要暴雷给外部调用的java接口以及接口的实现类 3.配置CxfConfig类&#xff0c;把你定义的java接口注册为webservice的Endpoint 引入cxf-spring-boot-st…

Solidwoks PDM Add-ins (C#) 创建菜单命令

演示如何创建 C# Add-ins :将菜单命令添加到库视图的上下文相关菜单的。 注意&#xff1a;由于 SOLIDWORKS PDM Professional 无法强制重新加载add-ins&#xff0c;因此必须重新启动所有客户端计算机以确保使用最新版本的add-ins。 启动VS。新建项目&#xff0c;选择类库。在“…

数据结构——队列

数据结构——队列 文章目录 数据结构——队列前言队列基本概念队列的基本操作队列的顺序存储结构创建顺序队列代码入队操作代码出队操作代码顺序队列的关键语句 队列的链式存储结构链式队列初始化链式队列判断空链式队列的入队操作链式队列的出队操作 循环队列循环队列基本思想…

「Tech初见」Linux驱动之chrdev

目录 免责声明I. MotivationII. SolutionS1 - 主次设备号S2 - 设备驱动程序S3 - 字符设备驱动程序 III. Result 免责声明 「Tech初见」系列的文章&#xff0c;是本人第一次接触的话题 对所谓真理的理解暂时可能还不到位&#xff0c;避免不了会出现令人嗤鼻的谬论 所以&#…

Oracle中改变表的Owner和tablespace

初用Oracle&#xff0c;很多的不熟悉&#xff0c;建完库&#xff0c;没有建用户&#xff0c;也没创建表空间&#xff0c;就直接system用户建表添加数据&#xff0c;几个月过去&#xff0c;表建了近百个&#xff0c;数据添加了几万条&#xff0c;才越来越觉得这种方式缺点太多&a…

docker对cpu资源做限制

系列文章目录 文章目录 系列文章目录一、cgroup1.groups四大功能2.CPU 资源控制 二、1.限制可用的 swap 大小&#xff0c; --memory-swap2.对磁盘IO配额控制&#xff08;blkio&#xff09;的限制 总结 一、cgroup 1.groups四大功能 资源限制&#xff1a;可以对任务使用的资源…

华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

一、题目描述 相对开音节构成的结构为辅音元音&#xff08;aeiou&#xff09;辅音(r除外)e&#xff0c;常见的单词有life,time,woke,coke,joke,note,nose,communicate&#xff0c;use&#xff0c;gate&#xff0c;same&#xff0c;late等。 给定一个字符串&#xff0c;以空格…

递归算法在编程中的重要应用

递归算法在编程中的重要应用 引言一、引言1.1、什么是递归算法&#xff1f;1.2、递归算法的特点和优缺点 二、树和图的遍历2.1、深度优先搜索&#xff08;DFS&#xff09;和广度优先搜索&#xff08;BFS&#xff09;2.2、二叉树遍历、树的深度、节点个数等问题2.2.1、二叉树遍历…

关于对【oracle索引】的理解与简述

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/131094864 出自【进步*于辰的博客】 无论使用的是oracle、mysql&#xff0c;亦或者其他数据库&a…

如何吃透一个Java项目?

现在Austin的文档我觉得还是比较全的&#xff0c;但到了看代码的时候&#xff0c;可能有的同学就不知道应该怎么看&#xff0c;有想知道模块之间的调用链路&#xff0c;有想一点一点把细节给全看了。这时候就很可能在项目里犯迷糊了&#xff0c;绕不出不来了。 Java开源项目消息…