一 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. UNIX系统基本结构

    UNIX系统的基本结构如图所示.整个UNIX系统可分为五层:最底层是裸机,即硬件部分:第二层是UNIX的核心,它直接建立在裸机的上面,实现了操作系统重要的功能,如进程管理.存储管理.设备管理.文件管理 ...

  2. TestFlight

    链接: 如何使用TestFlight进行Beta测试 [转]TestFlight APP测试(IOS如何让上架前给其他人测试) 转]TestFlight APP测试(IOS如何让上架前给其他人测试) ...

  3. iOS Webview 实现修改javascript confirm 和 alert

    贴代码: @interface UIWebView (JavaScriptAlert) -(void) webView:(UIWebView *)sender runJavaScriptAlertPa ...

  4. [技术分享] centos如何挂载Windows共享文件

    http://www.iyunv.com/thread-294209-1-1.html 最为linux的初学者,自我感觉都会使用Windows中的文件.在Windows与linux之间互传文件是一个问 ...

  5. LeetCode:Subsets I II

    求集合的所有子集问题 LeetCode:Subsets Given a set of distinct integers, S, return all possible subsets. Note: ...

  6. ElasticSearch第一步-环境配置

    ElasticSearch第一步-环境配置 ElasticSearch第二步-CRUD之Sense ElasticSearch第三步-中文分词 ElasticSearch第四步-查询详解 Elasti ...

  7. 【JavaScript】[bind,call,apply] (function cal(){}());声明函数立即执行

    ---恢复内容开始--- 1.js 里函数调用有 4 种模式:方法调用.正常函数调用.构造器函数调用.apply/call 调用.同时,无论哪种函数调用除了你声明时定义的形参外,还会自动添加 2 个形 ...

  8. ScrollView中嵌套recycleView 出现的不显示,显示不全,终极解决方案

    最近公司项目中用到了ScrollView去嵌套recycleView, 最开始我天真的把recycleView直接放入scrollView中,结果可想而知,什么都不显示,瞬间懵逼,我心想应该是和嵌套L ...

  9. Sunny-ngrok 解决外网访问内网问题

       该博文已过时    请参考官网        http://www.ngrok.cc/ 一  .进入 网址 往下拉找到: 下载不同的版本. 二. 平台登陆地址:http://www.ngrok. ...

  10. LocalBroadcastManager 的实现原理,Handler还是 Binder?

    原文: http://www.trinea.cn/android/localbroadcastmanager-impl/ 对 LocalBroadcastManager 大家应该都不陌生,相对 Bro ...