2014年8月4日星期一

Git 分布式版本控制 实战

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
Git 分布式版本控制 实战  阅读原文»

用户名:lj-111 文章数:15 评论数:6
访问量:37053:637:348:3 注册日期:2008-12-04

Git 分布式版本控制 实战

Git 是一个免费开源的分布式版本控制工具,也是目前最流行的分布式版本控制系统,可以很好的减轻开发人员及开源项目对于管理分支代码的压力。本篇将贴出前期自己整理的笔记导图,也会在后面示例演练中说明每个操作的具体含义以及图解,方便大家及自我查阅, 有不正确的地方欢迎拍砖。

wKiom1PdjvrQNL3rAAdWNtnKzMc512.jpg

1. 基本概念及术语

  • 工作区: 表示当前的工作目录

  • 暂存区:存放到stage area(git add file/test.py)

  • 版本库:存在master代码库中(git commit )

wKioL1PdoQCCpwZXAACzcLp5r6U880.jpg

M的含义:

第一列的M表示"缓存区"有改动

第二列的M表示"工作区"有改动

2. Git 安装及环境准备

junluobj@junluobj:~$sudoinstallgit#安装git软件包
junluobj@junluobj:~$mkdirgit
junlubbj@junluobj:~$cdgit;mkdirproject#创建两个目录方便后面示例说明
junluobj@junluobj:~/git/project$ls-lh
-rw-rw-r--1junluobjjunluobj5Aug207:18README.txt
-rw-rw-r--1junluobjjunluobj99Aug207:21test.py

4. Git 全局配置

在项目或开发小组中都会有很多开发人员提交代码, 为了让代码日后查询以及知道是谁提交的,强烈建议在项目组中在自己的工作环境下配置自己的git全局配置,这样自己的代码提交了什么功能性的代码, 什么时候提交的,都可以从记录中查询, 也知道team成员提交的代码情况, 好了下见下面示例:

junluobj@junluobj:~/git/project$gitconfig--globaluser.nameRocky#配置用户名
junluobj@junluobj:~/git/project$gitconfig--globaluser.emailRocky@test.com#配置用户邮箱
junluobj@junluobj:~/git/project$gitconfig--globalcolor.uitrue#输出信息可颜色显示
junluobj@junluobj:~/git/project$gitconfig--list#列出所有的配置
user.name=Rocky
user.email=Rocky@cn.ibm.com

git 全局配置设置信息默认会保存在当前家目录的.gitconfig 文件中, 也可以直接的通过对此文件进行修改保存, 同时通过 git config --list 可以立即看到修改的信息。

junluobj@junluobj:~$cat.gitconfig
email=Rocky@test.com

5. 创建repository

创建repository 有两种方式, 一种是本地初始化,一种是从远程克隆,见示例(可从上导图查询)

#在本地创建一个空的repo,也将在project目录中创建一个.git目录
junluobj@junluobj:~/git/project$gitinit
InitializedemptyGitrepositoryin/home/junluobj/git/project/.git/
junluobj@junluobj:~/git/project$ls-A.git/
branchesconfigdescriptionHEADhooksinfoobjectsrefs
junluobj@junluobj:~/git$gitclonehttps://github.com/openstack-dev/devstack.git

6. 添加及提交文件

在project 有一个test.py 和 README.txt 文件,现在我对test.py 进行修改,然后通过git status 查看repository 状态; 红色标记部分表示还未提交或未通过git命令进行登记, 同时注意此处的状态。

wKioL1PdnMbwLt45AAEfaDwajuA400.jpg

#添加文件,这里也可以通过gitadd--all一次性添加文件
junluobj@junluobj:~/git/project$gitaddtest.py
junluobj@junluobj:~/git/project$gitaddREADME.txt
junluobj@junluobj:~/git/project$gitstatus
大话bashshell脚本编程  阅读原文»

用户名:成长的小虫
文章数:30 评论数:4
访问量:3250无忧币:195博客积分:440:3 注册日期:2014-05-29

大话bashshell脚本编程

程序的主要部件:

3、语句:如:ifforwhilecase

一、变量

变量是任何一门语言中的一个重要组成部分。定义变量就是在内存空间中开辟空间,使用该空间来存储程序运行中的中间数据的。

既然是存储数据的空间了,那么开辟的内存空间应该有二个特点:

1、在内存中开辟的空间的大小。

声明变量的类型,其实就决定了在内存中开辟的空间的大小了。

如:int var

这就决定了变量var,能够存储的数据长度为65535.在强类型的语言中,使用变量时必需要声明变量的类型,再使用。该变量只能存储指定的类型的数据。

如果该变量存储的数据大于开辟的内存空间的话,就会溢出。也就是造成数据的丢失。这是在定义变量的时候要注意的。

Bashshell是弱类型的语言,使用变量存储程序执行的中间数据不需要事先声明就可以直接使用了。默认变量是字符类型的。

如:

引用命令的执行结果,给变量:freeMem赋值。

[root@stu13~]#freeMem=$(free-m|awk'/^Mem/{print($4+$6+$7)/$2}')

查看变量freeMem的值

[root@stu13~]#echo$freeMem

输出变量freeMem加1的结果。

[root@stu13~]#echo"${freeMem}+1"

说明:

从结果中,可以看出只是做字符的连接。所以,Bashshell的变量默认是字符类型的。

2、在内存中开辟的空间的存活时长。

这就是所谓:"程序中变星的作用范围"。

全局变量(环境变量)使用【export】导出,任何shell都要以访问。
本地变量只对当前shell进程有效;对其它shell进程无效,
局部变量对shell脚本中某代码片断有效;使用【local】说明该变量变局部变量。

我们知道了,变量的作用范围之后,在程序的啥位置可以引用到该变量的值。当我们要使用到变量存储程序的执行的中间数据的时候:

如果需要在程序的不同位置(主程序中、函数中)引用变量的话,就要把变量定义为本地变量。如果,把该变量定义成局部变量的话,存储的数据就会丢失了。

如果我们在函数中使用到变量,且只在该函数体中引用该变量的话,就不必要把变量定义成本地变量了,应该把它变量设置为:局部变量。只在函数体中有效。当主程序调用该函数完成之后,该变量所占用的内存空间就被释放了。不竞内存是有限的。这也是程序优劣的一个体现。

localpidbase=user=nice=bg=pid_file=

既然,bashshell的变量默认是字符类型的。那么怎么对变量做运行算术运算呢?

做算术运算的条件:必需是数值型。

所以,在做算术运算之前要做变量类型的转换。

例:

[root@stu13~]#a=2
[root@stu13~]#b=3

做字符的连接

没有评论:

发表评论