• ubuntu GIT 安装与使用


    1.安装程序

    $sudo apt-get install git
    $sudo apt-get install git-core

    2.那通过命令更新版本库

    git clone git://git.kernel.org/pub/scm/git/git.git

    3.创建一个新版本库

    $mkdir gittutorch
    $cd gitturtorch
    $git init

    这样,一个空的版本库就创建好了,并在当前目录中创建一个叫 .git 的子目录。你可以用 ls -a 查看一下,并请注意其中的三项内容:
    一个叫 HEAD 的文件,我们现在来查看一下它的内容:

    $ cat .git/HEAD

    现在 HEAD 的内容应该是这样:
    ref: refs/heads/master
    我们可以看到,HEAD 文件中的内容其实只是包含了一个索引信息,并且,这个索引将总是指向你的项目中的当前开发分支。
    一个叫 objects 的子目录,它包含了你的项目中的所有对象,我们不必直接地了解到这些对象内容,我们应该关心是存放在这些对象中的项目的数据。
    一个叫 refs 的子目录,它用来保存指向对象的索引。
    具体地说,子目录 refs 包含着两个子目录叫 heads 和 tags,就像他们的名字所表达的意味一样:他们存放了不同的开发分支的头的索引, 或者是你用来标定版本的标签的索引。
    请注意:master 是默认的分支,这也是为什么 .git/HEAD 创建的时候就指向 master 的原因,尽管目前它其实并不存在。 git 将假设你会在 master 上开始并展开你以后的工作,除非你自己创建你自己的分支。
    另外,这只是一个约定俗成的习惯而已,实际上你可以将你的工作分支叫任何名字,而不必在版本库中一定要有一个叫 master 的分支,尽管很多 git 工具都认为 master 分支是存在的。
    现在已经创建好了一个 git 版本库,但是它是空的,还不能做任何事情,下一步就是怎么向版本库植入数据了。

    4.植入内容跟踪信息:git add:

    为了简明起见,我们创建两个文件作为练习:

    $ echo "Hello world" > hello
    $ echo "Silly example" > example

    我们再用 git add 命令将这两个文件加入到版本库文件索引当中:

    $ git add hello example


    git-add 实际上是个脚本命令,它是对 git 内核命令 git update-index 的调用。因此上面的命令和下面的命令其实是等价的:

    $ git add hello example

    如果你要将某个文件从 git 的目录跟踪系统中清除出去,同样可以用 git rm 命令。例如:

    $ git rm foo.c

    git add 可以将某个目录下的所有内容全都纳入内容跟踪之下,例如: git add ./path/to/your/wanted 。但是在这样做之前,应该注意先将一些我们不希望跟踪的文件清理掉,例如,gcc 编译出来的 *.o 文件,vim 的交换文件 .*.swp 之类。
    应该建立一个清晰的概念就是,git add 只是刷新了 git 的跟踪信息,hello 和 example 这两个文件中的内容并没有提交到 git 的内容跟踪范畴之内。

    5.提交内容到版本库:git commit

      既然我们刷新了 Git 的跟踪信息,现在我们看看版本库的状态:

    $ git status

    我们能看到 git 的状态提示:

    #
    # Initial commit
    #
    #
    # Updated but not checked in:
    # (will commit)
    #
    # new file: example
    # new file: hello
    #


    提示信息告诉我们版本库中加入了两个新的文件,并且 git 提示我们提交这些文件,我们可以通过 git-commit 命令来提交:

    $ git-commit -m "Initial commit of gittutor reposistory"

    6.查看当前的工作:git diff

    gitdiff 命令将比较当前的工作目录和版本库数据库中的差异。现在我们编辑一些文件来体验一下 git 的跟踪功能。

    $ echo "It's a new day for git" >> hello

    我们再来比较一下,当前的工作目录和版本库中的数据的差别。

    $ git diff

    差异将以典型的 patch 方式表示出来:

    diff --git a/hello b/hello
    index 802992c..8fdaa4e 100644
    --- a/hello
    +++ b/hello
    @@ -1 +1,2 @@
    Hello world
    +It's a new day for git

    此时,我们可以再次使用组合命令 git-update-index 和 git-commit 将我们的工作提交到版本库中。

    $ git add hello
    $ git commit -m "new day for git"

    实际上,如果要提交的文件都是已经纳入 git 版本库的文件,那么不必为这些文件都应用 git-update-index 命令之后再进行提交,下面的命令更简捷并且和上面的命令是等价的。

    $ git commit -a -m "new day for git"

    一些命令:

    初始化git数据库

    $ git init

    添加文件

    $ git add hello.c

    查看修改、提交记录

    $ git log

    创建分支

    $ git branch roredu

    查看分支

    $ git-branch
    * master
      roredu

    切换工作分支

    $ git-checkout roredu
    Switched to branch "roredu"
    $ git-branch
    master
    * roredu

    提交到当前工作分支并书写标记。

    $ git commit

    创建xux分支对于master的补丁文件。

    $ git format-patch master roredu

    配置开发者自己的签名和email。

    $ git config --global user.name "ming"
    $ git config --global user.email "ming@gmail.com"

    修改文件名

    $ git mv roredu.c helight.c

    删除文件

    $ git rm roredu.c

    协同工作,下载项目:

    git clone ssh@wtb:192.168.0.21/home/wtb/NetBeansProjects/project1

    这里wtb是用户名, 192.168.0.21是项目所在机器的IP 后面跟着的是项目目录和名称

    放弃对file.cpp文件的修改,返回上次提交的代码。

    $git checkout -- file.cpp
  • 相关阅读:
    httpVueLoader.js props传递参数
    iview自定义图标,render方式自定义图标
    C# MVC API WebSocket的聊天室案例
    CSS/HTML实现Switch开关按钮
    AndroidStudio打包Jar包给Unity使用的期间遇到的错误
    AndroidStudio4.0.1 打包 Jar包
    解决SVN异常 cleanup failed
    c++ sizeof的实现
    c++ 函数指针简单实例
    C++ socket 网络编程 简单聊天室
  • 原文地址:https://www.cnblogs.com/Mingxx/p/1950676.html
Copyright © 2020-2023  润新知