一 git的安装测试

在Ubuntu系统下的bash中输入git,如果提示没有安装的话,用命令 sudo apt-get install git 安装git,安装完成之后通过 git –version 来验证是否安装成功,安装成功会有如下显示。

二 创建文件夹

在ubuntu系统中一个显示文件夹以及文件的功能叫tree,我觉得这个功能很好,像是一个思维导图一样,把文件的所属关系列举的很清楚。通过 sudo apt-get install tree 命令安装tree。

安装完成之后,首先建一个文件夹把所有的程序都放进去,命名为***rocedu;每学一门课程就在这个文件夹下建一个该课程的文件夹并用该课程的名字命名。

在该课程的文件夹下分别创建下列文件夹,。

src:存放源代码文件;

include: 存放头文件;

bin:存放编译后的目标文件、可执行文件等;

lib:存放项目所需的静态库、动态(共享)库;

res: 存放项目所需的图标、声音、图片等资源;

docs: 存放项目相关的参考资料、帮助文档;

dist:存放打包,发布以后的代码。

之后通过 touch README Makefile 命令新建README 和Makefile两个文件。

README 是对项目的简要介绍:licence、功能、编译环境等,详细的要在docs下有帮助文档

Makefile: 实现项目编译自动化

建这些文件夹的目的就是为了方便程序的管理,方便上传和查找修改。不同的文件放在不同的文件夹下,之前用过VS和eclipse的应该会发现这些文件夹就是在你新建项目的时候都会自动生成这些文件夹,分别来放其他的东西,要养成良好的习惯,方便以后使用。

输入命令tree就会出现以下显示:

三 在Ubuntu系统下进行编程并进行git

1 在vim中写程序

在src文件夹下放程序的源码,按章节分别建文件夹,例如第一章的hello world程序就放在src/01intro下,在src下新建01intro文件夹,使用 vim src/01intro/hello.c 命令进入vim写C代码。

写完之后通过: wq回车保存hello.c并退出,然后用命令 gcc src/01intro/hello.c –o bin/hello 来进行编译。上一条命令中“src/01intro/hello.c”是要编译的程序的路径,“bin/hello”是生成可执行程序并放在bin目录下,命名为“hello”,然后可以用.bin/hello命令来执行hello程序。上述就是用vim写程序并且编译的过程。

之后,通过git config对git进行简单配置,显示自己的个人信息。

2 git cheatsheet进行项目管理

git cheatsheet中有常用的配置项:

我们可以通过命令git init把项目纳入git管理,以后就是常用的 git add ; git commit 了,使用git commit时一定要注意解释刚才做了什么。

例如:

git commit -m "initiate csapp2e project with hello world program" 说明“我们用hello world程序初始化了CSAPP2E这个项目”。"initiate csapp2e project with hello world program"就是解释做了什么工作。

在git cheatsheet中常用的git查看命令是 git log ,会显示出所有的历史记录。

3 用shell脚本简化编译运行程序

项目目录结构建立之后方便了程序的存放查找,但是文件目录太多,编译是相对路径太长,不方便记忆。例如: gcc src/01intro/hello.c -o bin/hello 。因此可以通过shell脚本简化编译运行程序。

用命令 vi compile.sh 进入compile.sh中编写脚本文件,“compile”是该文件的命名。

脚本是编译,运行程序的命令,一个脚本中可以写多个程序,每次运行脚本的时候脚本中的程序都会运行。shell脚本中第一行是固定写法,#后面是注释。

脚本写完之后,在用命令 ./compile.sh 就可以运行hello程序了。

源代码产生的中间文件不需要纳入git管理,比如bin。因此可以使用 .gitignore文件把不纳入git管理的文件、文件夹。

# 号后边是注释说明,“bin/”指明不把bin/纳入git管理。

跟之前一样,每次完成一个小任务之后,都要进行 git add . 和 git commit 一下,注释一下自己做了什么事,养成良好习惯。

初学者在ubuntu下安装使用git(上)的更多相关文章

  1. 初学者在ubuntu下安装使用git(下)

    4.将代码传到oschina上去 之前已经将git配置完成了,现在通过ssh的方式访问资源库,先要用命令 ssh-keygen –C '你的邮箱' –t rsa .这样就会在ssh文件夹下建一相应的密 ...

  2. Ubuntu下安装mod_python报错(GIT错误)

    Ubuntu下安装mod_python3.4.1版本报出如下错误: writing byte-compilation script '/tmp/tmpE91VXZ.py' /usr/bin/pytho ...

  3. ubuntu下安装git,sublime,nodejs

    用的是VMware10.0版本的虚拟机,很早之前下载的今天就直接用了,安装挺简单记得需要一个序列号.在这里:http://mirrors.163.com/ubuntu-releases/15.04/u ...

  4. 来杯Caffe——在ubuntu下安装Caffe框架并测试

    Caffe是一种深度学习框架...blablabla...... Caffe要在ubuntu下安装 1. 安装依赖 sudo apt-get install libatlas-base-dev sud ...

  5. Ubuntu下安装open-falcon-v0.2.1

    在Ubuntu下安装open-falcon和Centos下安装的方法有点区别,因为Ubuntu使用的包管理器是apt-get,而Centos下使用的是Yum,建议不要再Ubuntu下使用yum 建议自 ...

  6. CAFFE(一):Ubuntu 下安装CUDA(安装:NVIDIA-384+CUDA9.0+cuDNN7.1)

    (安装:NVIDIA-384+CUDA9.0+cuDNN7.1) 显卡(GPU)驱动:NVIDIA-384 CUDA:CUDA9.0 cuDNN:cuDNN7.1 Ubuntu 下安装CUDA需要装N ...

  7. 在Ubuntu下安装ovs-dpdk

    在Ubuntu下安装ovs-dpdk 参考资料:https://software.intel.com/zh-cn/articles/using-open-vswitch-with-dpdk-on-ub ...

  8. TODO:Ubuntu下安装Node

    TODO:Ubuntu下安装Node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高 ...

  9. Ubuntu 下安装 Mysql

    这里讲用Ubuntu下安装MySql ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server   2. apt-get ...

随机推荐

  1. Struts2 JQuery UI常用插件

    一.什么是插件 ①是遵循一定接口规范编写的程序 ②是原有系统平台功能的扩展和补充 ③只能运行在规定的系统平台下,而不能单独运行 注:由于jQuery插件是基于jQuery脚本库的扩展,所以所有jQue ...

  2. 2016第二届陕西省网络空间安全大赛WriteUp

    2016年5月28号(正式比赛) 有选择题和实践题,俩队员在弄选择题时,我去拿了web1的一血. 0x01 web 是一道代码审计题,发包,返回了源代码: <?php if (isset($_G ...

  3. 【ASP.NET实战教程】ASP.NET实战教程大集合,各种项目实战集合

    [ASP.NET实战教程]ASP.NET实战教程大集合,各种项目实战集合,希望大家可以好好学习教程中,有的比较老了,但是一直很经典!!!!论坛中很多小伙伴说.net没有实战教程学习,所以小编连夜搜集整 ...

  4. jquery富文本在线编辑器UEditor

    UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. UEditor的功能非常强大,官方 ...

  5. 微信快速开发框架(九)-- V3.0发布,代码已更新至Github 新增微店功能

    版本内容 1.修正了缺少对Event.View的支持 2.增加了用户UnionID 3.新增微信小店功能 4.多客服功能 5.单元测试 什么是UnionID 我们知道,每个用户针对一个微信公众账号都有 ...

  6. 87 resize2fs-增大或者收缩未加载的“ext2/ext3”文件系统的大小

    resize2fs命令被用来增大或者收缩未加载的"ext2/ext3"文件系统的大小.如果文件系统是处于mount状态下,那么它只能做到扩容,前提条件是内核支持在线resize., ...

  7. 自定义ViewGroup初步探究

    由于项目需要,实现类似于地图控件,能够让一张图标自由缩放并且在其上固定位置,标记一些地点,所以在这里,我考虑了一下,决定使用自定义ViewGroup来实现.

  8. logging 模块误用导致的内存泄露

    首先介绍下怎么发现的吧, 线上的项目日志是通过 logging 模块打到 syslog 里, 跑了一段时间后发现 syslog 的 UDP 连接超过了 8W, 没错是 8 W. 主要是 logging ...

  9. Eclipse+maven创建webapp项目<二>(转)

    原文地址:http://www.cnblogs.com/candle806/p/3439469.html 1.开启eclipse,右键new-->other,如下图找到maven project ...

  10. Redis集群(三):主从配置一

    一.本文目的          Redis的主从配置分为两篇文章,第一篇主要介绍了Redis主从配置的搭建过程及使用,第二篇主要说明各种情况下Redis主从状态,如Master挂掉,Slaver挂掉, ...