每周分享 -- 重拾git

Author Avatar
Silas Shen 11月 07, 2019

这周轮到我做技术分享了,思来想去,还是决定选择git作为本周技术分享的主题。原因有二,一是最近在使用git时出现了一些难题,具体下文会有提到。二是,尽管每天都在使用git,但对于一些基础概念还是有模糊的地方,也想通过这次的分享进一步理解git。

git原理

git

workspace: 工作区(当前的开发位置)

  • git pull: 从远程仓库拉取最新的代码到工作区 => git fetch + git merge
  • git diff: 查看修改但未暂存的文件

index: 暂存区

  • git add: 工作区修改的内容提交到暂存区

repository: 本地仓库

  • git commit: 将暂存区内容提交到本地仓库
  • git fetch或者git clone: 从远程仓库拉取/克隆代码到本地仓库

remote repository: 远程仓库

  • git push: 将本地仓库内容提交到远程仓库

常见问题

  1. git push origin master具体是在做什么事?

把本地master分支上的内容,推一份到origin这个地方,并且在origin这个地方建立一个同名的master分支
完整指令:git push origin master:master => git push <远程主机名> <本地分支名>:<远程分支名>

  1. git merge和git rebase的区别

举例:把test分支合并到master分支

git-test

git merge的结果

git-merge

git rebase的结果

git-rebase

在线演示

最近遇到的问题

  1. 本地项目运行出错,想要回退到之前的版本 => 本地仓库回退到之前的版本
git reset --hard/soft [需要回退的提交点]
  1. 撤销已经推送到仓库的提交 => 远程仓库回退到之前的版本
git reset --hard [需要回退的提交点]
git push origin HEAD --force 

更多