2014年8月26日星期二

Git的简单使用 - cpacm

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
Git的简单使用 - cpacm  阅读原文»

我以前用的是SVN,但最近发现Git的功能比SVN好多了。于是想配置Git,但是每次下载到一半就会失败(可能是网络原因),最后我就把它扔到一边了。昨天再尝试了一次,竟然成功了,那么今天我就把它简单整理一下发到这里来了。

一、Git介绍

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 最近就迁移到 Git 上来了,很多 Freedesktop 的项目也迁移到了 Git 上。

保存点 : Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目额状态; 可以在该保存点将多人提交的源码合并, 也可以会退到某一个保存点上;

Git离线操作性 :Git可以离线进行代码提交, 因此它称得上是完全的分布式处理, Git所有的操作不需要在线进行; 这意味着Git的速度要比SVN等工具快得多, 因为SVN等工具需要在线时才能操作, 如果网络环境不好, 提交代码会变得非常缓慢;

Git基于快照 : SVN等老式版本控制工具是将提交点保存成补丁文件, Git提交是将提交点指向提交时的项目快照, 提交的东西包含一些元数据(作者, 日期, GPG等);

Git的分支和合并 : 分支模型是Git最显著的特点, 因为这改变了开发者的开发模式, SVN等版本控制工具将每个分支都要放在不同的目录中, Git可以在同一个目录中切换不同的分支;
分支即时性 : 创建和切换分支几乎是同时进行的, 用户可以上传一部分分支, 另外一部分分支可以隐藏在本地, 不必将所有的分支都上传到GitHub中去;

分支灵活性 : 用户可以随时 创建 合并 删除分支, 多人实现不同的功能, 可以创建多个分支进行开发, 之后进行分支合并, 这种方式使开发变得快速, 简单, 安全。

Git通用客户端官方下载地址:http://git-scm.com/

二、Git安装

安装的话可以一路默认,路径可以自己指定。有关安装时参数的详细介绍,大家可以去这里看看,里面做了详细的介绍 http://www.ihref.com/read-16377.html

安装完后到你的安装目录下,找到一个叫做 Git Bash.vbs文件。配置同步需要使用到这个文件。双击打开,我们会得到一个命令行控制台界面。接下来我们来配置Git吧。

  1. Git上有三种传输方式(如下图),我们现在来选择SSH方式传输。在控制台输入ssh-keygen -t rsa -C "XXXXX@163.com" 。
    GitHub邮箱 : 该命令后面的邮箱就是GitHub的注册邮箱(没有账号的请先在Github上申请);
    路径选择 : 使用该命令之后, 会出现提示选择ssh-key生成路径, 这里直接点回车默认即可, 生成的ssh-key在默认路径中;
    密码确认 : 自设的一个密码。这里我就不使用密码进行登录了。

  2. 将SSH配置到GitHub网站中。进入生成的ssh目录 : C:\Documents and Settings\Administrator\.ssh (或者 C:\Users\自己电脑用户名\.ssh)中, 使用记事本打开 id_rsa.pub 文件, 将该文件中的内容复制;
    进入GitHub网站 : 登录GitHub, 选择Setting 进行用户设置:


    在左边的列表下找到SSH Keys的选项:

    然后将SSH Key值复制进去

    验证是否配置成功 :

    ssh -T git@github.com

    验证时可能让你输入YES。

    成功提示 : 如果出现Hi cpacm! You’ve successfully authenticated, but GitHub does not provide shell access. 就说明配置成功, 可以连接上GitHub;

  3. 配置本地邮箱

    用户名邮箱作用 : 我们需要设置一个用户名 和 邮箱, 这是用来上传本地仓库到GitHub中, 在GitHub中显示代码上传者;
    使用命令 :

    git config --global user.name "cpacm" //设置用户名
    git config --global user.email "xxx@163.com" //设置邮箱,不要求是注册邮箱。

到此Git的安装基本上就可以了。

三、Git的使用

  1. 我们现在会发现右键菜单新出来了三个选项
    功能分别是将本地作为本地仓库,打开Git Gui,打开Git Bash命令控制台。
    首先我们选择一个文件夹作为本地仓库

    在目录中右键执行 git init here,就可以创建一个 Git 仓库了。
    查看有哪些文件,使用ls指令。比如,我们这个目录,里头有个test.tet文件,可以用如下:

    $ ls
    test.txt

    也可以用cd来指定地址,将其仓库化

    $ cd 路径
    $ git init

    Initialized empty Git repository in /opt/konnichiwa/.git/
    # 在 /opt/konnichiwa/.git 目录初始化空 Git 仓库完毕。

    现在你可以看到在你的项目目录中有个 .git 的子目录。 这就是你的 Git 仓库了,所有有关你的此项目的快照数据都存放在这里。
    简而言之,用 git init 来在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。  

  2. clone一个项目到本地

    如果你需要与他人合作一个项目,或者想要复制一个项目,看看代码,你就可以克隆那个项目。 执行 git clone , 为你想要复制的项目地址,就可以了。

    $ git clone git://github.com/schacon/simplegit.git
  3. 添加文件到缓存,并上传
    在本地建立仓库后,右键选项会产生变化

    第一项:添加所有文件到本地缓存;第二项:提交工具,若本地缓存有变化,则会显示变化
    【Python⑤】python序列---list和tuple - 网络爬虫_小正  阅读原文»

    sequence 序列

    sequence(序列)是一组有顺序的对象的集合。序列可以包含一个或多个元素,也可以没有任何元素。

    我们之前所说的基本数据类型,都可以作为序列的对象。对象还可以是另一个序列。序列有两种:list (表) 和 tuple(元组) 。

    list和tuple的主要区别在于,一旦建立,tuple的各个元素不可再变更,而list的各个元素可以再变更。

    List

    获得list元素的个数:

    >>> lst=['更新慢','python',5.44,False]
    >>> len(lst)
    4

    引用访问时索引是从0开始,注意不要越界:

    >>> lst[0]
    '更新慢'
    >>> lst[1]
    'python'
    >>> lst[2]
    5.44
    >>> lst[3]
    False
    >>> lst[4]
    Traceback (most recent call last):
    File
    "<pyshell#30>", line 1, in <module>
    lst[
    4]
    IndexError: list index out of range

    -1做索引,直接获取最后一个元素:

    >>> lst[-1]
    False
    >>> lst[-2]
    5.44
    >>> lst[-3]
    'python'
    >>> lst[-4]
    '更新慢'
    >>> lst[-5]
    Traceback (most recent call last):
    File
    "<pyshell#35>", line 1, in <module>
    lst[
    -5]
    IndexError: list index out of range

    因为list是一个可变的有序表,所以,可以往list末尾追加元素:

    >>> lst.append('加我一个')
    >>> lst
    [
    '更新慢', 'python', 5.44, False, '加我一个']

    一次追加多个元素:

    >>> lst.extend(['A','B','C'])
    >>> lst
    [
    '更新慢', 'python', 5.44, False, '加我一个', 'A', 'B', 'C']

    要删除list末尾的元素,用pop()方法:

    >>> lst.pop()
    'C'
    >>> lst
    [
    '更新慢', 'python', 5.44, False, '加我一个', 'A', 'B']

    删除指定位置的元素,用pop(i)方法,其中i是索引位置:

    >>> lst.pop(0)
    '更新慢'
    >>> lst
    [
    'python', 5.44, False, '加我一个', 'A']

    list元素替换,可以直接赋值给对应的索引位置:

    >>> lst[-1]='100'
    >>> lst
    [
    'python', 5.44, False, '加我一个', '100']

    list元素也可以是另一个list,插入的那个list只算一个元素:

    >>> lst.append(lst1)
    >>> lst
    [
    'python', 5.44, False, '加我一个', '100', ['666', 'QWER']]
    >>> len(lst)
    6

    Tuple

    Tuple一旦初始化就不能修改。字符串是一种特殊的元素,因此可以执行元组的相关操作。

    >>> str='该睡觉了,晚安!'
    >>> print (str[:7])
    该睡觉了,晚安

    不可变的tuple意义就在于因为不可变,所以代码更安全。如果可能,能用tuple就尽量用tuple

    阅读更多内容

没有评论:

发表评论