Python学习

时间:2021-6-12 作者:qvyue

第二十四天

Git的使用(二)

1、简单回顾

1、设置用户名称和登录邮箱

git config --global user.name '用户名'
git config --global user.email '可用邮箱'

配置文件位于用户主目录下,以后所有的项目都会默认使用这里配置的用户信息;
如果要配置单个项目

git config user.name '用户名'
git config  user.email '可用邮箱'

配置信息保存在当前项目的 .git/config 文件里
2、生成密钥

ssh-keygen -t rsa -C '邮箱'

3、密钥配置Gitee、Github

2、Git基本使用

2.1、创建一个本地版本库

Git Bash或者CMD命令行执行,通过命令进入本地仓库目录,执行下述代码:

git init

#执行完毕,该目录出现.git的隐藏文件说明初始化成功,用来管理本地仓库。

2.2、资源添加到版本仓库

1、创建readme.txt文件,输入内容

Hello Git! -----first

2、命令git add将文件添加到仓库

$ git add readme.txt

3、命令git commit将文件提交到仓库

$ git commit -m '这是我第一次提交文件'
[master (root-commit) 8586287] 这是我第一次提交文件
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt

注意:
1、-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的;
2、git commit可以一次提交很多文件,所以你可以多次add不同的文件;

2.3、版本回退

1、对readme.txt文件添加新的内容,并提交

$ git add readme.txt
$ git commit -m '这是我第二次提交文件'

2、查看该文件的日志记录,git log命令显示从最近到最远的提交日志

commit 839ae6f5610b1349f393bf732d8fbe5133356391 (HEAD -> master)
Author: author 
Date:   Mon Apr 12 18:35:27 2021 +0800

    这是我第二次提交文件

commit 8586287398edb31aa9691c83a04b4b8e8446d576
Author: author 
Date:   Mon Apr 12 15:36:09 2021 +0800

    这是我第一次提交文件

3、时间回溯,返回指定版本
Git log 可以看到每个版本的提交编号

#Git log 可以看到每个版本的提交编号
$ git reset --hard 8586287
#可以回到指定的版本
#如果要回到上个版本
$ git reset --hard head^

4、继续时间回溯

#窗口关闭后,重新打开git log有些信息看不到
#这个时候就需要 git reflog
$ git reflog
839ae6f (HEAD -> master) HEAD@{0}: reset: moving to 839ae6f
8586287 HEAD@{1}: reset: moving to 8586287
839ae6f (HEAD -> master) HEAD@{2}: commit: 这是我第二次提交文件
8586287 HEAD@{3}: commit (initial): 这是我第一次提交文件

git reflog 可以查看所有分支的所有操作记录

2.4、工作区和暂存区

Python学习
工作区和暂存区

工作区:
工作区其实就是我们创建的目录,我们创建的python_db文件夹就是工作区;
版本库:
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库;
暂存区:版本库包含暂存区和Git帮助我们创建的一个master分支。由上图所示,当我们使用命令git add 其实就是将文件添加到暂存区;然后使用git commit命令将暂存区的内容提交到当前分支。
所以如果将数据提交必须经过上述两步。

2.5、管理修改

Git管理的是修改,而不是文件。
按照下述流程来验证:
第一次修改 -> git add -> 第二次修改 -> git commit
第一次修改并git add 加入暂存区

$ vi readme.txt
$ git add readme.txt

第二次修改 没有加入缓存区直接提交

$ vi readme.txt
$ git commit -m'提交 但是二次修改没有加入暂存区'
$ git status

所以Git是跟踪修改的,每次修改,如果不git add到暂存区,那就不会加入到commit中。

2.6、撤销修改

管理修改之后,如果要撤销修改,怎么做呢?
通过git status查看

On branch master
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
        modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

提示我们
方式1、通过git add 提交修改到暂存区
方式2、通过git restore — 文件名撤销第二次修改

$ git restore -- readme.txt
#再次通过git status验证
$ git status
On branch master
nothing to commit, working tree clean
#提示干净的工作区

2.7、文件对比

对比1、对比工作区和版本库中文件的区别
我们对readme.txt文件修改,不加入暂存区、不提交、对比和head的区别

$ vi readme.txt
$ git diff HEAD -- readme.txt
diff --git a/readme.txt b/readme.txt
index 9ccad82..02388d6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -3,3 +3,4 @@ Hello Git! ---second
 Hello Git! ---third
 Hello Git! ---fouth
 Hello Git! ---fifth
+Hello This is new Line!

—号代表的是HEAD版本,+++代表的是工作区的版本,如上所示 工作区版本比上一个版本多一行Hello This is new Line!
对比2、对比版本库中版本之间的区别

#丢弃修改
$ git restore -- readme.txt
#HEAD版本与HEAD上一个版本的区别
$ git diff HEAD HEAD^ -- readme.txt
diff --git a/readme.txt b/readme.txt
index 9ccad82..b9701fc 100644
--- a/readme.txt
+++ b/readme.txt
@@ -2,4 +2,3 @@ Hello Git! ---first
 Hello Git! ---second
 Hello Git! ---third
 Hello Git! ---fouth
-Hello Git! ---fifth

—代表的是HEAD版本,+++代表的是HEAD版本,如上HEAD版本比HEAD版本缺少Hello Git! —fifth。

2.8、文件删除

git删除文件,也是工作区的改动,我们可以创建一个新的文件,然后删除

#创建的新文件加入暂存区
$ git add test.txt
# 提交创建的test.txt文件
$ git commit -m 'text.txt首次提交 测试删除'
#删除工作区文件 直接rm就可以了
$ rm test.txt

删除工作区test.txt文件后,工作区和版本库就不一致了。

$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
        deleted:    test.txt

no changes added to commit (use "git add" and/or "git commit -a")

提示方案:
方案1、
使用命令git rm从版本库中删除该文件,并且git commit提交保持一致。

$ git rm test.txt
$ git commit -m '删除版本库测试文件'

方案2、
误删的文件恢复回来。

$ git restore -- test.txt
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。