git学习笔记--1(安装、创建版本库、修改、版本回退)

Git学习笔记 – 1

 

一.Git安装

 

1.下载

git官网下载link

按默认选项安装即可(可选D盘)
在这里插入图片描述

2.完成

下载完成后,单机右键

在这里插入图片描述

3.打开

安装完成后,在开始菜单里找到“Git”->“Git Bash

在这里插入图片描述

4.配置

还需要最后一步设置,在命令行输入:

admin@Lenovo-PC MINGW64 ~/Desktop/learngit
$ git config --global user.name "your namexxx"
admin@Lenovo-PC MINGW64 ~/Desktop/learngit
$ git config --global user.email "xxxxxxx@xxx.com"

 

 

二.创建版本库repository

 

1.创建

先创建一个空目录

admin@Lenovo-PC MINGW64 ~/Desktop
$ mkdir learngit          //make  directory 
admin@Lenovo-PC MINGW64 ~/Desktop
$ cd learngit            //change directory 
admin@Lenovo-PC MINGW64 ~/Desktop/learngit
$ pwd                   //print working directory
/c/Users/admin/Desktop/learngit    //自动显示Learngit所在目录

 

2.初始化

通过 ”git init“ 命令把这个目录变成Git可以管理的仓库:

admin@Lenovo-PC MINGW64 ~/Desktop/learngit
$ git init
Initialized empty Git repository in C:/Users/admin/Desktop/learngit/.git/
 ```
## 3.编写
**用notepad++编写一个readme.txt,并放到==learngit==目录下**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200727154429618.JPG)

## 4.添加提交
**第一步,用命令==git add==告诉Git,把文件==添加==到仓库:**
```c
admin@Lenovo-PC MINGW64 ~/Desktop/learngit (master)
$ git add readme.txt

第二步,用命令git commit告诉Git,把文件提交到仓库:

admin@Lenovo-PC MINGW64 ~/Desktop/learngit (master)
$ git commit -m "worte a readme.txt"  //-m后输入本次提交说明,方便找到改动记录。
[master (root-commit) ee23010] worte a readme.txt
 1 file changed, 2 insertions(+)    //1改动(新添加readme.txt);2插入(readme.txt有两行内容)
 create mode 100644 readme.txt

 
 
 

三.简单修改

 

1.基本概念

我们先来理解下Git 工作区、暂存区和版本库概念

工作区:就是你在电脑里能看到的目录。
暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

在这里插入图片描述
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
 

2.修改文件

修改readme.txt文件内容
在这里插入图片描述
运行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:   readme.txt   //readme.txt被修改过了

no changes added to commit (use "git add" and/or "git commit -a") //但还没有准备提交

git status命令可以让我们时刻掌握仓库(工作区)当前的状态。

git diff如果git status告诉你有文件被修改过,用git diff可以查看修改difference。

$ git diff readme.txt 
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
 Git is free software.

 

3.提交修改

提交修改和提交新文件是一样的两步,第一步是git add:

$ git add readme.txt

再运行git status看看当前仓库的状态:

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	modified:   readme.txt

下一步,就可以放心地提交了:

$ git commit -m "add distributed"
[master e475afc] add distributed
 1 file changed, 1 insertion(+), 1 deletion(-)

提交后,我们再用git status命令看看仓库的当前状态:

$ git status
On branch master
nothing to commit, working tree clean  //当前没有需要提交的修改,工作目录是干净的

 
 
 

四.版本回退

1.创建多个版本

对readme.txt文件进行以下修改,这样一共有三个版本被提交到Git仓库里了:
版本1:wrote a readme file

Git is a version control system.
Git is free software.

版本2:add distributed

Git is a distributed version control system.
Git is free software.

版本3:append GPL

Git is a distributed version control system.
Git is free software distributed under the GPL.

 

2.查看版本号

在Git中,我们用git log命令查看:

$ git log
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:06:15 2018 +0800

    append GPL

commit e475afc93c209a690c39c13a46716e8fa000c366
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:03:36 2018 +0800

    add distributed

commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 20:59:18 2018 +0800

    wrote a readme file

如果嫌输出信息太多,看得眼花缭乱的,可以试试git log --pretty=oneline参数:

$ git log --pretty=oneline
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPL   
e475afc93c209a690c39c13a46716e8fa000c366 add distributed    //数字字母为版本号
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file

 

3.后向回退

现在,我们要把当前版本append GPL回退到上一个版本add distributed,就可以使用git reset命令:

$ git reset --hard HEAD^
HEAD is now at e475afc add distributed

利用cat查看readme.txt的内容是不是版本add distributed:

$ cat readme.txt
Git is a distributed version control system.
Git is free software.

再用git log再看看现在版本库的状态:

$ git log
commit e475afc93c209a690c39c13a46716e8fa000c366 (HEAD -> master)
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:03:36 2018 +0800

    add distributed

commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 20:59:18 2018 +0800

    wrote a readme file

最新的那个版本append GPL已经看不到了!
 

4.前向回退

git提供了一个命令git reflog用来记录你的每一次命令:

$ git reflog
e475afc HEAD@{1}: reset: moving to HEAD^
1094adb (HEAD -> master) HEAD@{2}: commit: append GPL
e475afc HEAD@{3}: commit: add distributed
eaadf4e HEAD@{4}: commit (initial): wrote a readme file

再找到那个append GPL的commit id是1094adb…,利用git reset --hard回到想要的版本

$ git reset --hard 1094a
HEAD is now at 83b0afe append GPL

 

 

五.修改

 

1.管理修改

操作过程:第一次修改 -> git add -> 第二次修改 -> git commit
Git管理的是修改,当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。
提交后,用git diff HEAD – readme.txt命令可以查看工作区和版本库里面最新版本的区别:

$ git diff HEAD -- readme.txt 
diff --git a/readme.txt b/readme.txt
index 76d770f..a9c5755 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,4 +1,4 @@
 Git is a distributed version control system.
 Git is free software distributed under the GPL.
 Git has a mutable index called stage.
-Git tracks changes.
+Git tracks changes of files.

可见,第二次修改确实没有被提交。所以Git是跟踪修改的,每次修改,如果不用git add到暂存区,那就不会加入到commit中。
 

2.撤销修改

git status查看一下,修改是到了哪个区:
场景1:只修改了工作区,想直接丢弃工作区的修改时,用命令git checkout – file
场景2:不但改了工作区内容,还git add到暂存区但未commit。想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
场景3:已经commit了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
 

3.修改文件

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:(只在工作区删除)`

$ rm test.txt

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

$ git rm test.txt
rm 'test.txt'

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt

二是删错了,因为版本库里还有呢,所以可以用命令==git checkout --==把误删的文件恢复到最新版本:

$ git checkout -- test.txt

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

Git教程|廖雪峰

Git教程|runoob.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值