Git详解

x33g5p2x  于2021-11-24 转载在 其他  
字(1.4k)|赞(0)|评价(0)|浏览(398)

Git简介

Git是Linus大神写的一款分布式版本控制系统,用于同步多人的项目开发。

Git可以维护一个目录下所有文件的修改、新增、删除等操作,达到版本控制的目的。

如果要对某个目录进行版本控制,需要在下面执行git init 命令。

Git Config

git config --system user.name zmh //全局的变量 

git config --global user.name zmh //用户的变量

git config  user.name zmh//项目的变量

在Windows下,Git会首先找 用户家目录 下的config文件

Git工作流程

Git中工作区、暂存区、仓库

工作区就是我们需要维护的目录

当我们执行 git add 命令的时候,就是将对应的文件加入到暂存区 stage中。但这个时候,文件还未同步到仓库中,当执行 git commit 的时候,才将文件写入到了 版本库中

版本库用来 和其他用户进行版本的控制和同步

git checkout

git checkout --filename

git checkout 用来回退对应的修改

1、如果对应的文件还未add 到 暂存区 stage, checkout 会 将工作区的文件回退 到和 版本库repository一样的状态
2、如果对应的文件add到了 暂存器 stage,然后又做了修改, checkout 会将 工作区的文件 回退到 和 stage 中一样的状态

git reset --hard commitId

git reset 可以将工作区和版本库回退到某一个状态 。

git commit 每次都会生成一个Id,根据对应的id 可以将 工作区和版本库回退到对应的状态

可以通过 git log 来查看对应的commit 记录 和 对应的 commit Id

git add 和 git commit

Git 是根据 修改 来commit的,如果按照下面的操作顺序的话,modify2并不会被更新到版本库中
modify1 add modify2 add commit

modify1 modify2 add commit,这样的话,modify2才会更新到版本库中

git branch

git中允许创建新的分支来进行多方面的协同,分支就是一个新的枝杈,分支之间也可以进行合并。

git branch 创建分支
git switch 切换分支
git branch -d 删除分支
git merge 将当前分支合并到name分支上

git merge

git的分支之间可以合并,当一个分支合并其他分支的时候,如果两个分支对同一个文件都同时做了修改,那么就会出现冲突。
这个时候需要手动的修改对应的冲突文件,然后add、commit。

合并后,当前分支的数据就是和其他分支合并后的结果,而其他分支是没有任何变换的。

git stash

当我们写代码的时候,如果碰到其他分支上的一个紧急bug需要修复的时候,这个时候我们怎么办呢?
1、将当前代码提交到本地仓库,然后切换分支。这样的话,会留下许多不必要的git log。
2、git stash, 这样会将当前工作区的状态写入到git中的栈中,并不会寄存到暂存区或者本地库中。当我们修复完bug后,我们可以通过命令来恢复到之前的状态,我们可以通过git stash list 来查看栈中存储的临时状态
2.1、git stash apply,这个命令并不会将之前的状态出栈
2.2、git stash pop ,这个命令会将之前的状态出栈
上面的两种都可以将我们的工作区恢复到上一个状态。

相关文章