Linux 开发与 Git 入门实践:从进度条小程序到代码托管

目录

一、Linux 进度条小程序 

1. 行缓冲区概念 

  2. 进度条代码实现 

二、使用 Git 进行版本控制 

1. 安装 Git

2. 在 GitHub 创建项目 

提交代码改动 


在软件开发的旅程中,Linux 环境下的编程以及版本控制工具 Git 的使用是极为重要的技能。本文将带你一步步从创建一个简单的 Linux 进度条小程序,到使用 Git 进行代码管理并推送到 GitHub 上。
 

一、Linux 进度条小程序
 


1. 行缓冲区概念
 


在深入进度条代码之前,先了解下行缓冲区的概念。在 C 语言中,标准输出(stdout)存在行缓冲区机制。例如以下代码:
 

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

int main() {
    printf("hello Makefile\n");
    sleep(3);
    return 0;
}


 
 这里  printf  输出后会立即显示在终端,因为  \n  会触发行缓冲区刷新。但如果代码是:
 

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

int main() {
    printf("hello Makefile");
    sleep(3);
    return 0;
}


 
 此时输出不会立即显示,而是在程序结束或者缓冲区满等情况才会显示。要强制立即显示,可以使用  fflush(stdout)  函数,如下:
 

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

int main() {
    printf("hello Makefile");
    fflush(stdout);
    sleep(3);
    return 0;
}


 
 
2. 进度条代码实现
 

下面是一个简单的进度条 C 语言代码实现:
 

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

int main() {
    int i = 0;
    char bar[102];
    memset(bar, 0, sizeof(bar));
    const char* lable="|/-\\\\";
    while(i <= 100 ) {
        printf("[%-100s][%d%%][%c]\r", bar, i, lable[i%4]);
        fflush(stdout);
        bar[i++] = '#';
        usleep(50000);
    }
    printf("\n");
    return 0;
}
 


 运行结果:

调试需求makefile(创作中心-CSDN创作中心-CSDN)

代码解释:
 
- 首先定义了一个字符数组  bar  用来存储进度条的显示内容,并用  memset  初始化为 0 。
 
-  while  循环中,每次循环根据当前进度  i  格式化输出进度条信息,包括已完成部分(用  #  表示)、百分比以及旋转的符号(从  lable  中选取)。
 
-  fflush(stdout)  用于强制刷新缓冲区,保证输出即时显示。
 
-  usleep(50000)  让程序暂停一段时间,模拟进度推进的过程。
 


二、使用 Git 进行版本控制
 


1. 安装 Git

 
在 Linux 系统(以 CentOS 为例)中,使用以下命令安装 Git:
 
 (root环境下)

(普通用户集权)
 
对于其他系统,比如 Ubuntu 可以使用  apt-get install git  命令安装。
 


2. 在 GitHub 创建项目
 


注册账号
 


访问 GitHub 官网,按照提示进行注册,过程中需要进行邮箱校验。
 


创建项目
 


1. 登录成功后,进入个人主页,点击左下方的  New repository  按钮新建项目。
 
2. 在新页面中输入项目名称(注意名称不能重复,系统会自动校验),可选择填写项目描述,设置项目为公开(Public)或私有(Private),还可以选择是否初始化  README  文件等。设置完成后,点击  Create repository  按钮确认创建。
 
3. 在创建好的项目页面中复制项目的链接,链接有  HTTPS  和  SSH  两种形式,可按需复制,以备接下来进行下载。
 
3. 使用 Git 命令行管理代码
 

下载项目到本地
 


创建好一个放置代码的目录,然后在终端中使用以下命令克隆项目到本地:
   
git clone [url]
 
 


这里的  url  就是刚刚在 GitHub 上创建好的项目的链接。
 克隆完成后目录中的仓库文件包含以下内容

对于.git及远端仓库,.git ignore为默认不提交文件后缀

可以进行增删,若想不添加p后缀的test.p,只需要在文件中加*.p

提交代码改动
 


1. 将代码放到下载好的目录中:把编写好的进度条代码文件(比如  processBar.c  等)移动到克隆下来的项目目录中。
 
2. 告知 Git 需要管理的文件:使用  git add  命令,语法如下:
 
 

git add [文件名]/.


 如果要添加所有文件,可以使用  git add.  。


3. 提交改动到本地:使用  git commit  命令,语法如下:
 

git commit -m "提交日志描述"

 
这里的  -m  选项后面跟着提交日志,用来描述本次改动的详细内容。
4. 同步到远端服务器(GitHub):使用  git push  命令,首次使用可能需要输入 GitHub 的用户名和密码。如果不想每次都输入密码,

可以参考 配置免密码提交
git config --global user.name 'name' 
git config --global user.email 'email@com'

git push


 4. 使用 git log 查看提交历史
 


在使用 Git 进行版本控制的过程中, git log  是一个非常实用的命令,用于查看提交历史记录。
 
基本用法
 
在项目的 Git 仓库目录下,直接运行  git log  命令,就可以看到从最近到最远的提交记录,每条记录包含以下信息:
 
- 提交哈希值:一个唯一标识该次提交的字符串,用于精确指向某次提交。
 
- 作者:提交代码的作者信息。
 
- 日期:提交的时间。
 
- 提交日志:在  git commit  时使用  -m  选项填写的描述信息。
 
例如:
 
  

commit 65a89f30123456789abcdef0123456789abcdef01
Author: Your Name <your_email@example.com>
Date:   Mon May 1 12:00:00 2025 +0800

    Add progress bar code

commit 123456789abcdef0123456789abcdef0123456789a
Author: Your Name <your_email@example.com>
Date:   Sun Apr 30 18:00:00 2025 +0800

    Initialize project structure


 
 常用选项
 
-  --pretty=oneline :以单行形式展示提交记录,只显示提交哈希值和提交日志,适合快速浏览提交历史。
 
  
git log --pretty=oneline
 
 
示例输出:
 
  

65a89f30123456789abcdef0123456789abcdef01 Add progress bar code
123456789abcdef0123456789abcdef0123456789a Initialize project structure


 
 
-  --graph :以图形化的方式展示提交历史,能清晰看出分支合并等情况。
 
 

git log --graph


 
 
示例输出(假设存在分支合并情况):
 

*   commit 65a89f30123456789abcdef0123456789abcdef01
|\  Merge: 1234567 9876543
| | Author: Your Name <your_email@example.com>
| | Date:   Mon May 1 12:00:00 2025 +0800
| |
| |     Merge branch'some_branch' into'main'
| |
| * commit 9876543210987654321098765432109876543210
| | Author: Another Name <another_email@example.com>
| | Date:   Sun Apr 30 20:00:00 2025 +0800
| |
| |     Update some code in some_branch
| |
* | commit 123456789abcdef0123456789abcdef0123456789a
|/  Author: Your Name <your_email@example.com>
|   Date:   Sun Apr 30 18:00:00 2025 +0800
|
|       Initialize project structure


 
通过使用  git log  及其相关选项,我们可以方便地回顾项目的开发历史,了解每次代码改动的情况,在排查问题、追溯功能添加等场景中非常有用。

git status  用于显示 Git 工作目录和暂存区状态:
 
- 追踪文件状态:能告知文件是修改、新增(未跟踪)还是已暂存状态。
 
- 辅助代码管理:在多人协作时可察觉冲突隐患;帮助梳理工作流,确保提交准确;还能与  git log  配合,辅助理解代码库历史与现状联系。


 
通过以上步骤,我们不仅完成了一个简单 Linux 进度条小程序的编写,还学会了如何使用 Git 进行版本控制并将代码托管到 GitHub 上,同时掌握了查看提交历史的实用方法。希望这篇博客能对你在 Linux 开发和代码管理方面有所帮助。

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值