美文网首页Git使用GitGit
Git创建仓库与修改提交

Git创建仓库与修改提交

作者: 程序员丶星霖 | 来源:发表于2018-10-20 20:08 被阅读1次

    一、创建Git仓库

    版本控制就是为了管理代码,代码就要放在仓库(Repo)中。
    在Git中创建仓库有如下两种方式:

    • 自己创建一个仓库;
    • 创建另一个仓库的clone。

    1.1、Git init

    通过git init指令,可以把一个目录快速设置成Git的代码仓库

    $ cd F:/GitTest
    
    huangxiaolei@huangxiaolei MINGW64 /f/GitTest
    $ git init
    Initialized empty Git repository in F:/GitTest/.git/
    
    huangxiaolei@huangxiaolei MINGW64 /f/GitTest (master)
    

    通过上面的指令就把一个普通的文件目录创建成了一个Git代码仓库。在创建成功后,该目录下回生成一个.git隐藏文件夹。而在终端中,文件夹路径名的后面会识别出文件夹的Git分支名。

    1.2、Git clone

    Git clone用于clone一个远程仓库到本地。

    二、 提交修改

    创建好代码仓库后就可以进行版本控制了。每开发完一定的功能后,就需要把完成的代码提交到代码仓库中,进行版本的一次提交。

    2.1、add&&commit

    创建一个README文件,并通过git status指令查看代码仓库的状态变化。

    $ git status
    On branch master
    
    No commits yet
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
    
            README
    
    nothing added to commit but untracked files present (use "git add" to track)
    

    使用git add <file>添加版本控制

    $ git add README
    

    将add后的文件通过git commit指令提交到代码仓库,完成一次版本的记录。(-m参数指定了提交的注释)

    $ git commit -m "添加README"
    [master (root-commit) 4269b25] 添加README
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 README
    

    Git还提供了一个git shortlog的指令,这条指令可以根据提交者的名字进行分组,显示每个开发者的所有提交commit记录。

    $ git shortlog
    huangxiaolei (1):
          添加README
    

    2.2、追加修改

    当提交了一个commit后,如果发现该commit有错,可以随时对这个commit进行修改。

    huangxiaolei@huangxiaolei MINGW64 /f/GitTest (master)
    $ touch test                  (创建test文件)
    
    huangxiaolei@huangxiaolei MINGW64 /f/GitTest (master)
    $ git add test                (添加版本控制)
    
    huangxiaolei@huangxiaolei MINGW64 /f/GitTest (master)
    $ git commit -m "test1"        (提交)
    [master 426d1c0] test1
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 test
    
    huangxiaolei@huangxiaolei MINGW64 /f/GitTest (master)
    $ subl test                   (修改文件)
    bash: subl: command not found
    
    huangxiaolei@huangxiaolei MINGW64 /f/GitTest (master)
    $ git add test                (添加版本控制)
    
    huangxiaolei@huangxiaolei MINGW64 /f/GitTest (master)
    $ git commit --amend -m "add test2" (追加修改)
    [master 4822a34] add test2
     Date: Fri Oct 19 10:39:56 2018 +0800
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 test
    

    通过这种方式可以修改commit,而不是通过新的commit来修正前一个错误的commit。

    2.3、查看代码仓库状态

    使用git status指令查看当前代码仓库的版本修改,代码如下所示。

    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
            modified:   test
    
    no changes added to commit (use "git add" and/or "git commit -a")
    

    通过git diff指令查看发生变化文件的具体变化

    $ git diff test
    diff --git a/test b/test
    index e69de29..665e610 100644
    --- a/test
    +++ b/test
    @@ -0,0 +1,2 @@
    +this is a readme
    +
    

    Git显示出了指定文件的具体修改,提示新的文件增加了一行修改。

    git diff指令除了比较指定文件的差异,还可以比较提交节点间的差异

    2.4、追溯版本历史

    在项目中一个仓库通常会有非常多次的add、commit过程,这些过程都会被记录下来作为追溯的证据。

    $ git log
    commit 4822a34ce85ad150379344f706a4ad2779adde14 (HEAD -> master)
    Author: huangxiaolei <18200399036@163.com>
    Date:   Fri Oct 19 10:39:56 2018 +0800
    
        add test2
    
    commit 4269b258b582e49cc82b5512bc87e70d6b925616
    Author: huangxiaolei <18200399036@163.com>
    Date:   Fri Oct 19 10:32:41 2018 +0800
    
        添加README
    

    每条记录都对应一个commit id。这个id是一个40位的16进制的SHA-1 hash code用来唯一标记一个commit。

    通过git blame指定追溯一个指定文件的历史修改记录。

    $ git blame test
    00000000 (Not Committed Yet 2018-10-19 10:58:12 +0800 1) this is a readme
    00000000 (Not Committed Yet 2018-10-19 10:58:12 +0800 2)
    

    学海无涯苦作舟

    Android成长录.jpg

    相关文章

      网友评论

        本文标题:Git创建仓库与修改提交

        本文链接:https://www.haomeiwen.com/subject/lblyzftx.html