Git创建仓库与修改提交

综合技术 2018-12-06 阅读原文

一、创建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

简书

责编内容by:简书阅读原文】。感谢您的支持!

您可能感兴趣的

下载cBioPortal中的文章相关数据 之前一直以为cBioPortal是用于可视化分析癌症基因组(TCGA, ICGC)等数据的网站,后来才发现其还收录了不少研究论文的原始上传数据 整合进cBioPortal的基因组数据类型包括体细胞突变,DNA copy-num...
Using Git and Visual Studio 2015 to Extract&co... I've been having trouble using Github and Visual Studio 2015 together. It has been hard finding tutorials that show you ...
安卓开发—常用开源项目 开源app 项目名:Android-AlarmManagerClock git地址: https://github.com/loonggg/Android-AlarmManagerClock 项目名...
Peter Hutterer: libinput 1.8 switching to git-like... I just released the first release candidate for libinput 1.8 . Aside from the build system switch to meson one of...
Markdown打造高逼格博客 这里首先假设读者你已经掌握了Markdown与GitHub的基本用法 如果不会, 请先自行百度或Google, 我目前还没写Markdown与GitHub的教程 看云只是一个推荐, 可以认为协助生成格式化Markdowns, ...