面试的时候有问到git的相关操作,觉得自己答得不太好,明明git rebase有专门去看过来着...所以说好记性不如烂笔头(逃)


首先上经典图, 感觉比较形象地描述了整个git的流程。

我们一般的操作就是,通过clone远程库(Remote)代码到本地库(Repository),工作区(Workspace)是实时反映代码相对于Repository变动的。当我们执行add时,会把代码保存到暂存区(stage,图上好像是index?),此时执行git commit -m 会把stage区代码提交至Repository,最后push执行的是RepositoryRemote的同步。
先说一些基操吧,当复习了:

  • git clone 克隆remote到repository
  • git pull = git fetch + git merge
  • git checkout branchName 切换指定分支
  • git branch branchName 新建本地分支(不切换
  • git checkout -b branchName 新建本地分支(切换
  • git checkout commitId -b branchName 对指定commitId新建分支(切换
  • git branch branchName commitId 对指定commitId新建分支(不切换
  • git branch -track branchName remoteBranchName 新建本地分支并关联远程分支
  • git branch --set-upstream [branch] [remote-branch]建立当前分支的远程分支关联
  • git branch -d branchName 删除本地分支
  • git push origin --delete branchName 删除远程分支
  • git config [--global] user.name "[name]" 设置用户名
  • git config [--global] user.email "[email address]" 设置邮箱
  • git add ./fileName 提交workplace区代码至stage区
  • git commit -m 提交stage区代码至repository并带上信息
  • git push 提交到远程 强制回退可以-f origin oBranchName
  • git merge 合并指定分支
  • git tag tagName 打tag
  • git cherry-pick commitId 获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支(这个超好用,经常不想合并旧分支但是想合并某次提交的更新就用它!!!)
  • git log 可以查看提交日志 commmitId之类的,常跟reset一起使用
  • git reset --hard/soft/mixed HEAD~/commitId 回滚本地提交
    hard 重置stage区和workPlace,包括你commit后可能的一些改动
    soft 把respository取消的内容都放进stage区
    mixed 默认 把respository取消的内容都放进workplace里面
  • git stash /stash pop 暂时将未提交的变化移除,稍后再移入
  • git rebase git pull -- rebase 具体的要看文章理解 感觉变基这个名称非常精确了 此操作常用于解决提交远程冲突时避免自动merge产生的分叉

吴静仪
26 声望2 粉丝

无我


« 上一篇
Vue 语法糖
下一篇 »
React文档学习