git

# git

相关问题

  1. 怎么把当前目录变成git可以管理的仓库
  2. git init之后会生成一个.git文件 这个文件的作用是什么
  3. 拉取别人仓库代码后,我不需要别人代码仓库的之前的git记录,怎么实现
  4. 版本控制系统可以告诉我们图片 视频这些具体改了什么吗
  5. 查看历史提交记录
  6. 在历史提交记录里面怎么标识当前版本
  7. 回退到指定版本操作
  8. 查看命令历史

========================================================

  1. 查看本地修改了哪些文件
  2. git add . 做了什么
  3. git commit -m "" 做了什么
  4. git diff 做什么
  5. 撤销修改 git checkout -- fileName 撤销工作区修改
  6. 撤销修改 git reset HEAD fileName 暂存区到工作区
  7. 修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick 命令,把bug提交的修改“复制”到当前分支,避免重复劳动。
  8. git branch -D 强制删除 git branch -d 普通删除
  9. 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致
  10. 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
  11. rebase操作可以把本地未push的分叉提交历史整理成直线;
  12. rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

=========================================================

  1. 标签
  2. 命令git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  3. 命令git tag -a -m "blablabla..."可以指定标签信息;
  4. 命令git tag可以查看所有标签。

=========================================================

  1. git pull === git fetch + git merge 各自实现原理
  2. git rebase 和 git merge https://www.jianshu.com/p/4079284dd970

=========================================================

  1. 关联一个远程仓库
  2. 注意:使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https
  3. git clone 克隆一个本地库(使用场景)
  4. 本地切换新分支
  5. git merge 命令用于合并指定分支到当前分支
  6. git branch -d +分支名 删除本地分支
  7. 合并代码有冲突之后 git status 可以告诉我们哪个文件有冲突

# 实现从别人github下fork别人仓库 然后自己做部分修改后 提交到别人仓库

  1. frok别人仓库到自己github
  2. 拉取自己github仓库代码到本地仓库并新建一个分支,采用两种方式
  • clone
  • pull
  1. 本地代码修改后-提交代码
  • git add .
  • git commit -m ""
  1. 拉取远程仓库代码
  • git pull origin 远程分支:本地分支 如果不指定远程分支直接拉取会怎么样
  • git fetch origin + git rebase origin/远程分支 git pull == git fetch + git merge
  1. push 本地代码到自己远程分支
  2. 提交request

# git commit 规范指南

必要性

  • 可读性好,清晰,不必深入看代码即可了解当前commit的作用
  • 为 Code Reviewing 做准备
  • 方便跟踪工程历史
  • 让其他的开发者在运行 git blame 的时候想跪谢

# commit message 格式

  • header 必须 只有一行 包括三个字段 <type>(<scope>): <subject>

type包含

  • feat:新功能(feature)
  • fix:修补bug
  • docs:文档(documentation)
  • style: 格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • perf: 重构改进性能的代码优化
  • test:增加测试
  • chore:构建过程或辅助工具的变动
  • body 非必须 填写一些备注信息
  • footer 非必须 一般关联哪个issue #1
上次更新: 2022/7/29 下午4:55:22