通过实际操作学习git
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过实际操作学习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 [email protected] 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 [email protected] 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 [email protected] MINGW64 ~/git-tutorial (master) 2 $ touch README.md 3 4 [email protected] 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 [email protected] MINGW64 ~/git-tutorial (master) 2 $ git add README.md 3 4 [email protected] 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 [email protected] 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 [email protected] 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 <[email protected]> ~/.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 <[email protected]> 4 5 First commit
只显示指定目录、文件的日志
1 [email protected] MINGW64 ~/git-tutorial (master) 2 $ git log README.md 3 commit 4f81fc9aa69cbf078f162566641d21cee687ea5d 4 Author: Rick Green <[email protected]> 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 [email protected] 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的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程