git 基础知识分享

使用 git 作为版本控制系统,首先要理解什么是一个版本:每当进行一次 commit 操作时,Git 会保存一个提交对象(commit object),可以理解这个提交对象就包含了这次改动的内容快照,根据不同提交对象的 commit id,可以随时访问不同版本的内容。

一.从git库拉取代码到本地运行

在从git库拉取代码前,我们需要进行用户信息的配置。

Git的所有配置使用git config命令来完成,而用户信息只需要配置user.nameuser.email即可,

  • 配置用户名:git config --global user.name '你的用户名'
  • 配置邮箱:git config --global user.email '你的邮箱'

上面的命令使用了 --global全局配置的方法,当然,我们可以使用 --local和–system来指定配置等级

参数说明
--global 全局有效
--system 对当前所有登录的用户有效
--local 对当前版本库有效

三个参数的优先级 --local > --system > --global。

配置完数据之后,便可以开始从git库拉取代码。

1.git init 和 git clone

我们通过git init命令在本地初始化一个版本库,一种这种称为裸库,创建完裸库之后,我们可以通过 git remote add origin sshURL 来将本地库和git库进行连接,但这种方法需要在git仓库中添加ssh密钥。

而有时候,我们会直接通过 git clone httpURL 命令将远程的版本库克隆到本地,通过这种方式,我们可以将远程版本库中项目克隆到本地,当我们参与一些老的项目时,一般就是采用这种方式来创建本地的版本库。

2.git pull

git pull 命令为从当前分支拉取代码,当然,你也可以通过 git pull origin 分支 命令在该分支上拉取其他分支的代码。

在上面我们将裸库和git库连接以后,我们便可以使用git pull 来拉取代码了。

二.分支的创建与切换

1.git branch ,git checkout和git merge
  • git branch 命令为查看本地的分支。
  • git branch  分支名 命令为在本地创建一个新的分支。
  • git branch -d 分支名 命令为删除该分支,若使用 D 则为强制删除该分支。
  • git checkout  分支名 命令为检出该分支。
  • git checkout -b 分支名  命令为创建并检出该分支。
  • 假如当我们想把其他分支合并到master身上时,我们需要先将分支切换至master ,并使用 git merge 分支名 将该分支合并到master上。
2.创建分支和切换分支的详细信息

在开发过程中,一般都是在分支上进行代码的编写,然后合并到master上,分支本质上仅仅是指向提交对象的可变指针,当我们新创建一个分支时,其实就是新建了一个指针,指向了当前的版本。

那么git 怎么知道我们处在哪个分支?

这是因为有一个特殊的指针 HEAD,它指向当前所在的本地分支。

而当我们切换我们的分支时,实际上是切换HEAD指针的指向。

当我们在新的分支提交时,我们的分支将会和master分支分道扬镳。

而这里的HEAD指针,是管理版本是非常重要的。

三.将更改提交到分支

1. git status, git add ,git commit ,git push
  • git status 命令可以检查当前工作目录的状态,并提示用户接下来应该进行什么操作。
  • git add  <file> 命令可以将工作区更改的文件添加到暂存区,其中 git add .  是将所有的更改的文件添加到暂存区的命令。
  • git commit 命令会将暂存区的内容提交到版本库中,但此时提交过去的文件并没有更新到分支里。-m 后面表示的是提示说明。
  • git push  命令会将已经提交到版本库的文件更新到分支上,到这一步,更新的文件才真正的提交到了git库中。
2.关于提交和撤销的细节

我们都知道,在分支没有新的提交的情况下,提交更改这个过程分为三步:git add <file> ——>git commit -m 描述性文字 ——> git push.。

这一过程主要涉及到了三个分区:工作区,暂存区,版本库。

git 通过比较这三个区的内容,来告诉使用者应该进行什么操作。

git 撤销提交

git关于撤销提交的命令总共有三个:git reset --soft commit_id ,git reset --mixed commmit_id ,git reset --hard commit_id;

这三个命令的撤销强度依次增强。其中的commit_id 可以在commit中查找到,当然也可使用HEAD表示撤销到前一个版本。

git reset --soft commit_id 

当我们需要继续修改但又不想进行一个新的提交时可以使用该指令,该指令会将提交到版本库的内容撤回到暂存库中。此时我们可以继续修改文件,并将修改后的内容add和commit,与撤回的内容

git reset --mixed commmit_id

当发现提交的内容里出了问题,需要把问题部分修改时可以使用该指令,该指令会将提交到版本库的内容撤回到工作区中。这样我们就可以在工作区重新更改并进行提交

git reset --hard commit_id

当我们觉得整个提交都没有用时,我们可以使用此命令将提交直接撤回到上一个版本的提交。

当然,上述的命令不仅仅对已经提交到版本库的版本使用,假如你把更改提交到了暂存区,但有发现这些提交有错误时,可以通过第二个或者第三个命令将这些提交撤回,这很是有用。

然而当我们撤回这些提交时,我们会发现,版本库里还是有这些提交的内容,此时我们可以使用 (git push -f origin 分支名)  这个命令来去掉那些提交。

posted @ 2022-03-10 15:25  FuloliyaLansfroya  阅读(58)  评论(0)    收藏  举报