Linux 开发与 Git 入门实践:从进度条小程序到代码托管
目录
一、Linux 进度条小程序
1. 行缓冲区概念
2. 进度条代码实现
二、使用 Git 进行版本控制
1. 安装 Git
2. 在 GitHub 创建项目
提交代码改动
在软件开发的旅程中,Linux 环境下的编程以及版本控制工具 Git 的使用是极为重要的技能。本文将带你一步步从创建一个简单的 Linux 进度条小程序,到使用 Git 进行代码管理并推送到 GitHub 上。
一、Linux 进度条小程序
1. 行缓冲区概念
在深入进度条代码之前,先了解下行缓冲区的概念。在 C 语言中,标准输出(stdout)存在行缓冲区机制。例如以下代码:
c
#include
#include
int main() {
printf("hello Makefile
");
sleep(3);
return 0;
}
这里 printf 输出后会立即显示在终端,因为
会触发行缓冲区刷新。但如果代码是:
c
#include
#include
int main() {
printf("hello Makefile");
sleep(3);
return 0;
}
此时输出不会立即显示,而是在程序结束或者缓冲区满等情况才会显示。要强制立即显示,可以使用 fflush(stdout) 函数,如下:
c
#include
#include
int main() {
printf("hello Makefile");
fflush(stdout);
sleep(3);
return 0;
}
2. 进度条代码实现
下面是一个简单的进度条 C 语言代码实现:
c
#include
#include
#include
int main() {
int i = 0;
char bar[102];
memset(bar, 0, sizeof(bar));
const char* lable="|/-\";
while(i <= 100 ) {
printf("[%-100s][%d%%][%c]
", bar, i, lable[i%4]);
fflush(stdout);
bar[i++] = '#';
usleep(50000);
}
printf("
");
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
Date: Mon May 1 12:00:00 2025 +0800
Add progress bar code
commit 123456789abcdef0123456789abcdef0123456789a
Author: Your Name
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
| | Date: Mon May 1 12:00:00 2025 +0800
| |
| | Merge branch'some_branch' into'main'
| |
| * commit 9876543210987654321098765432109876543210
| | Author: Another Name
| | Date: Sun Apr 30 20:00:00 2025 +0800
| |
| | Update some code in some_branch
| |
* | commit 123456789abcdef0123456789abcdef0123456789a
|/ Author: Your Name
| Date: Sun Apr 30 18:00:00 2025 +0800
|
| Initialize project structure
通过使用 git log 及其相关选项,我们可以方便地回顾项目的开发历史,了解每次代码改动的情况,在排查问题、追溯功能添加等场景中非常有用。
git status 用于显示 Git 工作目录和暂存区状态:
- 追踪文件状态:能告知文件是修改、新增(未跟踪)还是已暂存状态。
- 辅助代码管理:在多人协作时可察觉冲突隐患;帮助梳理工作流,确保提交准确;还能与 git log 配合,辅助理解代码库历史与现状联系。
通过以上步骤,我们不仅完成了一个简单 Linux 进度条小程序的编写,还学会了如何使用 Git 进行版本控制并将代码托管到 GitHub 上,同时掌握了查看提交历史的实用方法。希望这篇博客能对你在 Linux 开发和代码管理方面有所帮助。