Git是Linus大神写的一款分布式版本控制系统,用于同步多人的项目开发。
Git可以维护一个目录下所有文件的修改、新增、删除等操作,达到版本控制的目的。
如果要对某个目录进行版本控制,需要在下面执行git init 命令。
git config --system user.name zmh //全局的变量
git config --global user.name zmh //用户的变量
git config user.name zmh//项目的变量
在Windows下,Git会首先找 用户家目录 下的config文件
工作区就是我们需要维护的目录
当我们执行 git add 命令的时候,就是将对应的文件加入到暂存区 stage中。但这个时候,文件还未同步到仓库中,当执行 git commit 的时候,才将文件写入到了 版本库中
版本库用来 和其他用户进行版本的控制和同步
git checkout --filename
git checkout 用来回退对应的修改
1、如果对应的文件还未add 到 暂存区 stage, checkout 会 将工作区的文件回退 到和 版本库repository一样的状态
2、如果对应的文件add到了 暂存器 stage,然后又做了修改, checkout 会将 工作区的文件 回退到 和 stage 中一样的状态
git reset 可以将工作区和版本库回退到某一个状态 。
git commit 每次都会生成一个Id,根据对应的id 可以将 工作区和版本库回退到对应的状态
可以通过 git log 来查看对应的commit 记录 和 对应的 commit Id
Git 是根据 修改 来commit的,如果按照下面的操作顺序的话,modify2并不会被更新到版本库中
modify1 add modify2 add commit
modify1 modify2 add commit,这样的话,modify2才会更新到版本库中
git中允许创建新的分支来进行多方面的协同,分支就是一个新的枝杈,分支之间也可以进行合并。
git branch 创建分支
git switch 切换分支
git branch -d 删除分支
git merge 将当前分支合并到name分支上
git的分支之间可以合并,当一个分支合并其他分支的时候,如果两个分支对同一个文件都同时做了修改,那么就会出现冲突。
这个时候需要手动的修改对应的冲突文件,然后add、commit。
合并后,当前分支的数据就是和其他分支合并后的结果,而其他分支是没有任何变换的。
当我们写代码的时候,如果碰到其他分支上的一个紧急bug需要修复的时候,这个时候我们怎么办呢?
1、将当前代码提交到本地仓库,然后切换分支。这样的话,会留下许多不必要的git log。
2、git stash, 这样会将当前工作区的状态写入到git中的栈中,并不会寄存到暂存区或者本地库中。当我们修复完bug后,我们可以通过命令来恢复到之前的状态,我们可以通过git stash list 来查看栈中存储的临时状态
2.1、git stash apply,这个命令并不会将之前的状态出栈
2.2、git stash pop ,这个命令会将之前的状态出栈
上面的两种都可以将我们的工作区恢复到上一个状态。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_40276626/article/details/121497062
内容来源于网络,如有侵权,请联系作者删除!