了解git和常用操作

180 阅读2分钟

基础

1. 总体关系

  • Remote: 远程仓库
  • Respository: 本地仓库
  • index/stage: 暂存区
  • workspace:工作区

2. 具体关系

HEAD

表示当前版本,每此commit都会产生一个版本,可以git log查看到,如下:

HEAD^

表示上个版本

working diretory 工作区

码代码的地方,其中文件包含三种状态

  1. Untracked:未追踪,正常是新增文件
  2. modified: 修改
  3. deleted: 删除

实际工作中常用操作

提交代码

  1. 'git add .' 将工作区代码 提交到 stage暂存区
  2. 'git commit -m "注释"' stage 提交到 本地仓库,此时github上远程仓库并没有更新
  3. 'git pull origin 分支名' 拉取并合并代码
  4. 'git push origin 分支名' 提交到远程仓库

分支

  • 查看本地分支 git branch
  • 查看所有分支 git branch -a
  • 切换分支
  1. 如果本地已存在分支 git checkout 分支名
  2. 如果本地不存在 git checkout -b 分支名 origin/分支名
  • 合并分支
  1. git merge <branch>,其中branch是指想要合并过来的分支
  2. git push -u origin <branch>

 第一步出现冲突怎么办?

  1. 修复冲突,通过手动修改文件
  2. git add/rm冲突文件
  3. git commit 然后执行大步骤的第二步。

commit

  • 撤销commit
  1. git log获取到“想撤销commit”的上一个commit的id
  2. git reset --soft id : 撤销,保留修改到暂存区 git reset --hard id : 撤销,不保留修改

  reset 与 revert 区别:revert本质是一次新的特殊的commit,commit内容很特殊:提交的内容是与前面普通commit文本变化的反操作,相当于重置某一次commit及之后的commit,比如前面普通commit是增加一行a,那么revert内容就是删除一行a。

  • 撤销修改或重置文件
  1. 如果文件未提交到暂存区stage git checkout -- <file>
  2. 如果文件已提交到暂存区stage,但未提交到版本库

 1)撤销到工作区,保留修改:git reset HEAD <file>

 2)撤销到工作区,重置:git checkout -- <file>

 3)重置所有文件:git reset --hard HEAD,语句的直意是将版本重置到当前版本,即重置当前版本。