Git深入

Git基础指令总结

  • git init: 本地初始化项目,一般不太用到;
  • git clone + 远程仓库地址: 将远程代码库克隆到本地;
  • git branch: 查看项目分支;
  • git checkout 分支名 / git checkout -b 分支 :, 大家都懂的;
  • git add : 将代码提交到暂存区
  • git commit -m ‘chore: fix_bugs’: 将代码提交到历史区;
  • git push: 将代码提交到远程代码库;
  • git log: 查看分支提交历史;
  • git reset : 回退项目版本; git reset --hard <cmomit>

Git指令深入

  • git clone -b + (远程仓库对应的分支名) + 远程仓库的地址: 实现将远程代码库指定分支克隆到本地;
  • git commit -m ‘chore: ui_change’ –no-verify : 可以实现忽略代码commit钩子规范,直接提交;
  • git diff: 查看分支文件改动的地方
  • git stash / git stash pop :
    • 这个命令细说:
    • 主要实现分支修改内容的冻结和解冻
    • 工作中,我们需要在A分支写业务,但是线上出现bug,我们要切回到develop分支解决bug问题
    • 切回develop需要将A分支的工作区清干净,但是又不想多出commit信息
    • 这时候我们就用到git stash命令,将代码冻结,这样切回到develop分支,就没有什么影响了;
    • 解决完bug,切回到A分支,使用git stash pop命令,解冻代码,就可以继续开心得开发业务了;
  • git cherry-pick : 实现分支合并指定的commit

    1
    2
    3
    4
    5
    分支提交commit信息
    dd2e86 - 946992 -9143a9 - a6fd86 - 5a6057 [master]
    76cada - 62ecb3 - b886a0 [feature]
    git checkout master
    git cherry-pick 62ecb3
  • git rebase :

    • 这个命令功能强大
    • 上文我们提到避免产生多次commit,但是本地有多个commit的时候,怎么办,那么使用这个命令可以合并多个commit,最后只提交一个commit到远程代码库;
    • 最为重要的功能,可以将多个commit推送到指定的分支
    • 举个例子: 假设你需要合并feature分支的commit 76cada ~ 62ecb3develop分支
      1
      2
      3
      4
      5
      1. 基于feature创建一个新的分支,并指明新分支的最新的commit
      git checkout -b 62ecb3
      2. rebase这个新分支的commit到master(--ontomaster)。76cada^ 指明你想从哪个特定的commit开始
      git rebase --onto master 76cada^
      3.最后feature分支的commit 76cada ~62ecb3 都被合并到了master分支
  • git cherry-pick :

如何用commit起死回生一个分支(即如何利用commit信息)

  • 当一个项目过大,merge代码后,会删除对应的分支,但是commit信息会完整的保留下来
  • 当项目需要单独维护以前的一个分支作为依赖此项目的独立分支时
  • git checkout -b 62ecb3(commit的前6位ID),就会从此commit切出分支维护

使用vscode编辑器 可以快速实现以上效 写到最后

-------------本文结束感谢您的阅读-------------