git入门

Posted dsker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git入门相关的知识,希望对你有一定的参考价值。

Git是分布式版本控制系统

 

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

 

git init 命令把当前目录变成Git可以管理的仓库

 

当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

 

所有的版本控制系统,其实只能跟踪文本文件的改动。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化。

 

和把大象放到冰箱需要3步相比,把一个文件放到Git仓库只需要两步。

第一步,用命令git add告诉Git,把文件添加到仓库

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

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

可以多次add,然后一次commit多个文件

使用命令git add <file>,注意,可反复多次使用,添加多个文件;

使用命令git commit -m <message>,完成。

要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用git diff<file>可以查看修改内容。

 

每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。

git log 命令显示从最近到最远的提交日志 

其中 commit 显示的是版本号

在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

git reset --hard HEAD^

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是在移动HEAD指针

然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。

 Git提供了一个命令git reflog用来记录你的每一次命令 ,可以找到所有的commit id

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

 

工作区(Working Directory)

就是在电脑里能看到的目录

 

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

技术图片

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

 



以上是关于git入门的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

如何管理在每个 git 版本中添加私有代码片段?

使用 Git 来管理 Xcode 中的代码片段

markdown Git代码片段

《Git小书》笔记:1 前言

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段