首页 > 代码库 > 通过实际操作学习git

通过实际操作学习git

基本操作

1. git init  -- 初始化仓库   使用git进行版本管理,必须先初始化仓库。步骤 建立一个目录,然后初始化仓库。

 1 $ mkdir git-tutorial
 2 $ cd git-tutorial/
 3 $ git init
 4 Initialized empty Git repository in C:/Users/LXY/git-tutorial/.git/
 5 
 6 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
 7 $ ls -al
 8 total 16
 9 drwxr-xr-x 1 LXY 197121 0 4月   9 11:30 ./
10 drwxr-xr-x 1 LXY 197121 0 4月   9 11:29 ../
11 drwxr-xr-x 1 LXY 197121 0 4月   9 11:30 .git/

.git目录里存储着管理当前的内容称为"附属于该仓库的工作树"。文件的操作在工作树中进行,然后记录到仓库中,以此管理文件的快照。

2. git status  --  查看仓库的状态

工作树和仓库在被操作的过程中,状态会不断的发生变化。git status命令查看当前状态。

1 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
2 $ git status
3 On branch master
4 
5 Initial commit
6 
7 nothing to commit (create/copy files and use "git add" to track)

结果显示我们处在master分支下。所谓提交(commit)是指“记录工作树中所有文件的当前状态”。尚没有可提交的内容,就是说当前我们建立的这个仓库中还没有记录任何文件的任何状态。

 1 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
 2 $ touch README.md
 3 
 4 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
 5 $ git status
 6 On branch master
 7 
 8 Initial commit
 9 
10 Untracked files:
11   (use "git add <file>..." to include in what will be committed)
12 
13         README.md
14 
15 nothing added to commit but untracked files present (use "git add" to track)

可以看到在Untracked files中显示了README.md文件。

git add  --  向暂存区中添加文件

如果只是用git仓库的工作树建立了文件,那么该文件并不会被计入git仓库的版本管理对象中。因此我们用git status命令查看README.md文件时,它会显示在Untracked files里。

要想让文件成为git仓库的管理对象,就需要用git add命令将其加入到暂存区中(Stage或Index)中。暂存区是提交之前的一个临时区域。

 1 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
 2 $ git add README.md
 3 
 4 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
 5 $ git status
 6 On branch master
 7 
 8 Initial commit
 9 
10 Changes to be committed:
11   (use "git rm --cached <file>..." to unstage)
12 
13         new file:   README.md

加入到暂存区之后,可以使用 git rm --cached README.md 来删除。(unstage)

 

git commit  --  保存仓库的历史记录

将当前暂存区中的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。

 1 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
 2 $ git commit -m "First commit"
 3 [master (root-commit) 4f81fc9] First commit
 4  1 file changed, 0 insertions(+), 0 deletions(-)
 5  create mode 100644 README.md
 6 
 7 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
 8 $ git status
 9 On branch master
10 nothing to commit, working tree clean

-m 参数后的 “First commit”称作提价信息,是对这个提交的概述。

当前工作树处于刚刚完成提交的最新状态,所以结果显示没有更改。

 

git log  --  查看提交日志

可以查看什么人,什么时间进行了提交和合并,以及操作前后由怎样的差别。

1 $ git log
2 commit 4f81fc9aa69cbf078f162566641d21cee687ea5d   提交的hash值 
3 Author: Rick Green <Rick@msc.com>    ~/.gitconfig中的 user.name  user.email
4 Date:   Sun Apr 9 11:48:03 2017 +0800
5 
6     First commit       -m 参数后的描述信息

只显示提交信息的第一行

1 $ git log --pretty=short
2 commit 4f81fc9aa69cbf078f162566641d21cee687ea5d
3 Author: Rick Green <Rick@msc.com>
4 
5     First commit

只显示指定目录、文件的日志

1 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
2 $ git log README.md
3 commit 4f81fc9aa69cbf078f162566641d21cee687ea5d
4 Author: Rick Green <Rick@msc.com>
5 Date:   Sun Apr 9 11:48:03 2017 +0800
6 
7     First commit

显示文件的改动

git log -p  或者  git log -p README.md

 

git diff  --  查看更改前后的差别

可以查看工作树、暂存区、最新提交之间的差别。

 1 LXY@LAPTOP-LGDLGGC3 MINGW64 ~/git-tutorial (master)
 2 $ git diff
 3 diff --git a/README.md b/README.md
 4 index e69de29..4e3dffe 100644
 5 --- a/README.md
 6 +++ b/README.md
 7 @@ -0,0 +1 @@
 8 +HELLO WORLD
 9 warning: LF will be replaced by CRLF in README.md.
10 The file will have its original line endings in your working directory.

 



 

通过实际操作学习git