git入门

git入门

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

  • 代码回溯
  • 版本切换
  • 多人协作
  • 远程备份

Git是什么

Git是目前世界上最先进的分布式版本控制系统。

工作原理 / 流程:

img

Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库

SVN和Git的区别

SVN是集中式版本控制系统。

Git是分布式版本控制系统

img

Git的基本操作

img
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
mkdir:         XX (创建一个空目录 XX指目录名)

pwd: 显示当前目录的路径。

git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

git add XX 把xx文件添加到暂存区去。

git commit –m “XX” 提交文件 –m 后面的是注释。

git status 查看仓库状态

git diff XX 查看XX文件修改了那些内容

git log 查看历史记录

git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本

(如果想回退到100个版本,使用git reset –hard HEAD~100 )

cat XX 查看XX文件内容

git reflog 查看历史记录的版本号id

git checkout -- XX 把XX文件在工作区的修改全部撤销。

git rm XX 删除XX文件

git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库

git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

git clone https://github.com/tugenhua0707/testgit 从远程库中克隆

git checkout –b dev 创建dev分支 并切换到dev分支上

git branch 查看当前所有的分支

git checkout master 切换回master分支

git merge dev 在当前的分支上合并dev分支

git branch –d dev 删除dev分支

git branch name 创建分支

git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

git stash list 查看所有被隐藏的文件列表

git stash apply 恢复被隐藏的文件,但是内容不删除

git stash drop 删除文件

git stash pop 恢复文件的同时 也删除文件

git remote 查看远程库的信息

git remote –v 查看远程库的详细信息

git push origin master Git会把master分支推送到远程库对应的远程分支上

常用命令速查:https://www.cnblogs.com/upstudy/p/15868898.html

创建版本库

什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。

通过命令 git init 把这个目录变成git可以管理的仓库,如下:

把文件添加到版本库中

首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。

  1. 使用命令 git add readme.txt添加到暂存区里面去。如下:

img

  1. 用命令 git commit告诉Git,把文件提交到仓库。

img

  1. 使用git status来查看下结果,如下:

img

  1. 现在继续来改下readme.txt内容,继续使用git status来查看下结果,如下:

preview

  1. 接下来我想看下readme.txt文件到底改了什么内容,如何查看呢?可以使用如下命令:git diff readme.txt

preview

版本回退

  1. 我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 演示如下所示:

image-20220722175304508

现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,要使用什么命令呢?可以使用如下2种命令,第一种是:git reset –hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset –hard HEAD~100 即可。

  1. 如果想回退到上一个版本的命令如下操作:git reset --hard HEAD^

image-20220722175453340

但是现在我想回退到最新的版本,如:有333333的内容要如何恢复呢?我们可以通过版本号回退,使用命令方法如下:

git reset –hard 版本号

  1. 可以通过如下命令即可获取到版本号:git reflog 演示如下:

image-20220722175615565

  1. 通过上面的显示我们可以知道,增加内容3333的版本号是 6fcfc89.我们现在可以命令 git reset –hard 6fcfc89来恢复了。演示如下:

image-20220722175709071

可以看到 目前已经是最新的版本了。

理解工作区与暂存区的区别

工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

撤销修改和删除文件操作

  1. 使用git status检查工作区中文件的状态

image-20220722183614546

  1. 使用git restore readme.txt来丢弃工作区的修改

image-20220722183727041

完结

img

这张图实在太全了,好像没啥问题了,看看这个链接里的指令的说明。Ok了,以后有问题再回来补充。

作者

Dicemy

发布于

2022-01-07

更新于

2022-07-22

许可协议

评论