【git】记一些git常见的操作

224 阅读2分钟

基本概念

工作区:电脑上可以看到的目录、即我们放置文件的目录

暂存区【stage/index】: 一般放在.git目录下、通过 git add fileName 将工作区的文件添加到暂存区

版本库:通过git init初始化一个仓库之后、在工作区里面有一个隐藏目录.git 这就是Git的版本库。

文件状态

场景1:通过git init在本地初始化一个git仓库之后。

  • 新建一个文件、此时处于 untracked 状态
  • 通过git add 将工作区的文件添加到暂存区 此时处于 staged状态
  • 通过git commit 将工作区的文件提交到本地仓库。

场景2:通过git clone 拉取远程仓库、此时文件已经处于tracked状态

  • 修改文件内容此时处于modified状态
  • 若文件内容没有修改、则处于unmodified状态
  • 通过git add 将工作区的文件添加到暂存区 此时处于 staged状态
  • 通过git commit 将工作区的文件提交到本地仓库。

文件追踪

场景1:当文件已经被修改、没有通过 git add添加到暂存区【Changes not staged for commit:】

  • git checkout --fileName:此时工作区的文件和版本库里面的一致即未修改的状态

场景2:当文件已经被修改且通过 git add添加到暂存区、然后再次修改了工作区的文件【Changes to be committed:【modify】】

  • git checkout --fileName:此时工作区的文件和暂存区里面的一致 此时文件处于【modify】状态、最新的修改会丢失。
  • git restore --staged fileName: 文件从暂存区移除 【Changes not staged for commit:】
  • git restore fileName: 文件恢复到未修改前的状态

文件冲突

场景1:在不同的分支上修改了同一个文件并进行了提交、并合并分支

  • git status 查看状态哪些文件的内容发生了冲突。
  • 修改冲突、修改之后git add 冲突文件、然后git commit、提交到合并的分支上。

临时需求

场景:在原有开发任务还没有完成的请求下、突然有额外紧急的需求或者bug修复、此时需要保存当前的工作环境、切换到线上运行的代码分支、然后修改提交

  • 保存当前的工作环境:git stash: 保存当前的工作环境
  • git stash list: 查看当前暂存的状态列表
  • git stash pop stash@{num}: 恢复状态列表中num个状态
  • git stash clear:清空所有记录