git学习笔记

git工作原理

图源某CSDN@小蓝稳住
在这里插入图片描述

git的工作原理可以分成三个模块:

workspace(工作区)、Repository(版本库)、Remote(远程仓库)

Workspace 工作区

workspace 可以理解为本地计算机中的实际工作目录,增删改文件是会在workspace里直接体现的

Repository 版本库

Repository 虽然说是版本库,其实是一个.git隐藏文件(如下图)

在这里插入图片描述

Repository 会记录我们使用git的每一次add,每一次commit,以及我们使用的历史命令等版本信息

下面是WorkspaceRepository 的关系(图源廖雪峰官网)

git-repo

**Repository **里面会有一个 stage(暂存区)和仓库的若干分支(当我们创建仓库的时候会默认创建一个master分支)

当我们使用命令 $ git add <fileName> git版本库中就会将文件的修改情况更新到 stage

当使用命令 $ git commit -m [message] 版本库暂存区中所有文件修改都会更新到 master分支 上去

可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改

**HEAD **可以理解为一个指针,指向当前分支的最近一次提交

Remote 远程仓库

Remote 是远程仓库,其实 个人电脑的版本控制在有Repository的情况下是足够的

Remote的作用就是,提供了一个远程备份,这样做有两个好处:

  • 计算机数据损失后仍然可以通过远程仓库备份恢复数据
  • 其他人可以从远程仓库拉取备份,从而实现多人合作

所以commit以后可以通过$ git push 把最近提交推送至远程仓库进行备份

我们也可以通过 $ git clone 去克隆一份别人仓库的备份到自己电脑上

在多人协作的时候,

A本地的更新如果想被团队中其他人所获取,需要通过$ git push 推送到远程仓库

同样,A更新并推送修改至远程仓库后,B可以 $ git pull 拉取A修改后的版本

git基本使用流程

创建工作区文件夹

$ mkdir mydir 
# 进入工作区文件夹
$ cd mydir
# 显示工作区文件夹路径
$ pwd  

初始化仓库

$ cd mydir
$ git init

该操作会在工作区文件夹内生成一个 .git文件,.git文件就是版本库

将工作区文件添加到版本库缓存区

假如我在 mydir 工作目录里面添加了一个test1.txt文件,现在要将其同步到版本库中去

$ git add <filename>
# 或者添加所有修改文件
$ git add.

现在版本库的缓存区内已经有了 test1.txt 的信息了

此时又在工作目录里新建了一个文件 Readme.md 同理

$ git add <filename>

将缓存区文件提交到git仓库

$ git commit -m "I commit two new files: test1.txt and Readme.md"

-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

状态查询

查看当前仓库状态
$ git status
查看某个文件与最近一次提交的差别
$ git diff <filename>
查看提交日志
$ git log
查看历史命令
$ git  relog

版本跳跃

提交后回退到上一个版本
$ git reset --hard HEAD^
回退到指定版本
$ git reset --hard <commit_id>
# commit_id 可以通过 git reflog 查看

撤销修改

文件修改在工作区,未add,撤销工作区修改
# 让文件回到最近一次 git commit 或 git add 时的状态
$ git checkout -- <filename>
文件已add,未commit , 回退暂存区
# 该操作会回到上面那种情景
$ git reset HEAD <file>
文件已commit, 则进行版本回退(参考版本跳跃部分)

文件删除

文件删除会多一个操作

当 从工作目录里删除一个文件的时候,git知道我们删除了

使用$ git status 可以看到git给我们的提示

此时 我们需要进行以下操作来让git真的删除这个文件

$ git rm <filename>
$ git commit -m "delete file ......"

远程仓库

如何添加远程仓库以及从远程仓库克隆

廖雪峰官网:

添加远程库 - 廖雪峰的官方网站 (liaoxuefeng.com)

从远程库克隆 - 廖雪峰的官方网站 (liaoxuefeng.com)

分支管理

比较复杂,详见廖雪峰官网

分支管理 - 廖雪峰的官方网站 (liaoxuefeng.com)

比较基本的用法是:

将本地改动推送到远程仓库
$ git push origin master
将远程仓库的最新改动更新到本地仓库
$ git pull
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值