一 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. windows 环境下的redis安装

    Redis安装 1.由于是练习,所以就在windows下安装的环境,并没有在LINUX服务器上装,但是知识点是一样的 安装流程: a.下载地址:https://github.com/MSOpenTec ...

  2. MVP模式(Android)

    以前在写项目的时候,没有过多考虑架构模式的问题,因为之前一直做J2EE开发,而J2EE都是采用MVC模式进行开发的,所以在搭建公司项目的时候,也是使用类似MVC的架构(严格来讲,之前的项目还算不上MV ...

  3. IIS部署站点相关经验总结

    IIS部署站点相关经验总结 1.IIS和.net4.0安装是有先后顺序的,应该先安装.net framework 4.0,再安装IIS.如果按相反顺序安装的话,IIS中看不到4.0相关的东西,那么只能 ...

  4. ES5基础之正则表达式02:范围类、预定义类和边界字符

    1.范围类 //元字符 /* * 正则表达式由两种基本字符类型组成 * 1.原义文本字符:例如123abc * 2.元字符:元字符是在正则表达式中有特殊含义的非字母字符 */ //常见特殊符号:. * ...

  5. Java连接Oracle database小结

    利用jdbc连接Oracle数据库,首先得选对jdbc的版本. jdk6需要ojdbc6.jar这个包.如果选错的话,调用isValid()这个方法时,有可能有这个异常: Exception in t ...

  6. Linux基本命令(一)

    Linux基本命令 编辑器 vim编译器 Gnu工具链-gcc调试器 GDB操作系统是用C来写的 系统编程 (核心骨架 80%) 文件I/O 文件系统 进程{ 进程控制原语.进程间通信.进程间关系 信 ...

  7. linux下ftp的配置

    最近公司要用到ftp,小菜鸡百度了一下教程,自己也总结一下 现在随便百度都是vsftpd的服务,所以这里我也是用vsftp 1.检测或安装vsftp 首先检查一下你的主机是否含有vsftp服务,关于r ...

  8. 鼠标的change事件

    原本想着在<input>输入输入框中添加change事件,来实现对输入内容的限定. 当人们在使用时跟多的会直接去点击完成.所以完成按钮的点击事件会和change事件产生 冲突,所以我把验证 ...

  9. jquery 将disabled的元素置为enabled的三种方法

    转--http://www.jb51.net/article/19342.htm 在jquery中可以通过jqueryObj.attr("disabled","disab ...

  10. java类的初始化块/执行顺序,实例化对象数据赋值

    java里初始化一个类的对象,通过初始化快或者构造方法进行数据赋值.与其相关的执行代码有这么几种: 静态初始化块 初始化块 构造方法 静态初始化块 静态初始化块只在类加载时执行一次,同时静态初始化块只 ...