前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git教程1(安装及基本操作)

Git教程1(安装及基本操作)

作者头像
用户4919348
发布2019-04-02 11:27:54
6000
发布2019-04-02 11:27:54
举报
文章被收录于专栏:波波烤鸭

Git简介

  Git(全局信息追踪器)。   Git是一个分布式版本控制工具,Git的使用中仓仓库不是必须的,用户本地就是一个完整的版本仓库,代码的前进、回退、删除等等操作都可以直接在本地进行,不需要中央仓库。但是,在实际操作中,为了能够和其他同事快速沟通以及合并代码,一般还是会搭建一个中央仓库。Git对分支的管理非常友好,可以快速创建或者合并分支。   Svn集中式的版本控制工具,Svn中,必须要有中央仓库,所有的版本信息都保存在中央仓库中,代码的前进、回退、删除等等操作都需要在中央仓库中进行,用户本地保存的只是版本仓库的一个副本,Svn中的分支非常臃肿。

Git安装

  git在Linux上安装非常简单,本文主要讲解在windows下的安装

1.官网下载

https://gitforwindows.org/

安装

  双击直接安装,一直默认安装即可。

安装成功

  安装后在开始中会出来git相关的菜单

  同时鼠标右键也有git相关的菜单选项

配置个人信息

  安装成功我们还要完成最后一步设置。设置个人的信息

输入如下命令:

代码语言:javascript
复制
 git config --global user.name "bobo"     
 git config --global user.email "dengpbs@163.com"

创建版本库

  版本库也就是我们平常说的仓库,repository。其实也就是个文件夹,只是这个文件夹被git管理,该文件夹中的文件的创建、修改、删除都能够被追踪。

创建文件夹

初始化操作

  通过git init命令把这个目录变成Git可以管理的仓库,创建成功后在该文件夹下会多出一个.git的文件夹。

代码语言:javascript
复制
git init

  Git目录是用来来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

基本操作

添加文件到版本库

注意:在window系统中,编辑文件不要使用记事本操作,因为在操作中文的时候会有问题,推荐用Notpad++,但是编码方式得设置下。

创建一个普通文件

执行git add 命令添加到仓库

代码语言:javascript
复制
git add read.txt

  执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功

执行 git commit 命令提交

代码语言:javascript
复制
$ git commit -m "first commit"
[master (root-commit) 9d37174] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 read.txt

   commit -m的-m后面跟的是本次操作的备注说明信息。最好是有意义的,也就是下次看到这个说明就清楚提交了什么内容。

  为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件

代码语言:javascript
复制
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add files"

status和diff命令

命令

说明

git status

查看当前库的状态

git diff

是difference的简写是用来查看文件的变化的 (工作区和版本库)

正常状态下执行两个命令

对read.txt文件进行修改

代码语言:javascript
复制
hello git
hello git 2

执行status命令

注意: 没有执行git add命令

代码语言:javascript
复制
$ git status read.txt
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:   read.txt

状态信息告诉我们read.txt文件被修改了,但是还没有被提交。

执行diff命令查看不同

代码语言:javascript
复制
$ git diff read.txt
warning: LF will be replaced by CRLF in read.txt.
The file will have its original line endings in your working directory
diff --git a/read.txt b/read.txt
index 8d0e412..a11a392 100644
--- a/read.txt
+++ b/read.txt
@@ -1 +1,2 @@
 hello git
+hello git 2

  通过此命令我们能够看到增加的是 hello git 2这行信息,知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步

add命令

代码语言:javascript
复制
$ git status read.txt
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   read.txt

  git status告诉我们,将要被提交的修改包括readme.txt,下一步,就可以放心地提交了

commit操作

代码语言:javascript
复制
$ git commit -m 'first update file'
[master 27492ed] first update file
 1 file changed, 1 insertion(+)

提交后再执行 git commit 命令

代码语言:javascript
复制
$ git status read.txt
On branch master
nothing to commit, working tree clean

  Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working tree clean)的

小结

命令

说明

git status

查看当前库的状态,add之前和commit之前都可以查看状态

git diff 文件名

查看文件修改前后的变化,在add命令之前执行

版本回退

log命令

  刚刚我们对read.txt文件执行两次操作,我们还能记得住我们做了什么操作,但是当我们操作了一段时间后,修改的越来越多,那么我们就会忘记很多以前的操作。这时我们可以通过log命令来查看历史信息

代码语言:javascript
复制
$ git log read.txt
commit 27492ed2ca522c05a9293a0c48e876a81e795522 (HEAD -> master)
Author: dpb <dengpbs@163.com>
Date:   Wed Jan 30 20:51:44 2019 +0800

    first update file

commit cfe85b8a01fb09583f29f093915c9bb5b788123f
Author: dpb <dengpbs@163.com>
Date:   Wed Jan 30 20:46:54 2019 +0800

    first add file

  git log命令显示从最近到最远的提交日志,每条日志信息占了五行记录,如果日志比较多的情况下。我们可以在命令后添加 –pretty=oneline单行来显示日志信息

代码语言:javascript
复制
$ git log --pretty=oneline  read.txt
27492ed2ca522c05a9293a0c48e876a81e795522 (HEAD -> master) first update file
cfe85b8a01fb09583f29f093915c9bb5b788123f first add file

提示‘27492ed2ca…’这一长串的信息既是版本号

版本回退

  为了便于演示又对文件修改了一次,log有了三次记录

代码语言:javascript
复制
$ git log read.txt
commit a1d1909f554a531acdec30d96ac67db9047599f8 (HEAD -> master)
Author: dpb <dengpbs@163.com>
Date:   Wed Jan 30 21:08:42 2019 +0800

    third update file

commit 27492ed2ca522c05a9293a0c48e876a81e795522
Author: dpb <dengpbs@163.com>
Date:   Wed Jan 30 20:51:44 2019 +0800

    first update file

commit cfe85b8a01fb09583f29f093915c9bb5b788123f
Author: dpb <dengpbs@163.com>
Date:   Wed Jan 30 20:46:54 2019 +0800

    first add file

  现在我们有三个版本即 ‘third update file’,‘first update file’,‘first add file’ 查看当前文件内容:

代码语言:javascript
复制
$ cat read.txt
hello git
hello git 2
hello git 3
回退到上一个版本
代码语言:javascript
复制
$ git reset --hard HEAD^
HEAD is now at 27492ed first update file

dengp@DESKTOP-2F8A7PB MINGW64 /c/tools/GitResource/gitRepository1 (master)
$ cat read.txt
hello git
hello git 2

dengp@DESKTOP-2F8A7PB MINGW64 /c/tools/GitResource/gitRepository1 (master)
$ git log read.txt
commit 27492ed2ca522c05a9293a0c48e876a81e795522 (HEAD -> master)
Author: dpb <dengpbs@163.com>
Date:   Wed Jan 30 20:51:44 2019 +0800

   first update file

commit cfe85b8a01fb09583f29f093915c9bb5b788123f
Author: dpb <dengpbs@163.com>
Date:   Wed Jan 30 20:46:54 2019 +0800

   first add file

  执行以上命令我们发现文件内容回退到了上一个版本,log中也看不到’third update file’中的信息了,好像这个版本从来没有出现过一样。

回到之前最新版本
代码语言:javascript
复制
$ git reset --hard a1d1909f5
HEAD is now at a1d1909 third update file

dengp@DESKTOP-2F8A7PB MINGW64 /c/tools/GitResource/gitRepository1 (master)
$ cat read.txt
hello git
hello git 2
hello git 3

  首先我们发现信息被我们找回来了,其次‘a1d1909f5’是最新版本的版本号,虽然不全,但是前几位要正确,git会自动匹配   Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向first update file

回退后

  版本回退其实就是指针的改变。有时候我们想要回退到以前的最新版本,这时候log命令查看不到对应的版本号,在次场景下我们可以通过git reflog来查看

小结: HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。 切换前,用git log可以查看提交历史,以便确定要回退到哪个版本。 要切换未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年01月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Git简介
  • Git安装
    • 1.官网下载
      • 安装
        • 安装成功
          • 配置个人信息
          • 创建版本库
            • 创建文件夹
              • 初始化操作
              • 基本操作
                • 添加文件到版本库
                  • 创建一个普通文件
                    • 执行git add 命令添加到仓库
                      • 执行 git commit 命令提交
                        • status和diff命令
                          • 正常状态下执行两个命令
                          • 对read.txt文件进行修改
                          • 执行status命令
                          • 执行diff命令查看不同
                          • add命令
                          • commit操作
                          • 提交后再执行 git commit 命令
                        • 版本回退
                          • log命令
                          • 版本回退
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档