我的Git飞行手册

标题灵感来源于 GitHub 项目git-flight-rules,我希望将自己日常使用 Git 疑惑的地方在这篇里记录下来。

我的新书《LangChain编程从入门到实践》 已经开售!推荐正在学习AI应用开发的朋友购买阅读!
LangChain编程从入门到实践

Git 流程图

Git 流程图

commit 操作

commit之后,想撤销commit

  • git reset --soft HEAD^,HEAD^的意思是上一个版本,也可以写成HEAD~1,如果你进行了2次commit,想都撤回,可以使用HEAD~2
    参数:
    • –mixed 意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作。这个为默认参数git reset --mixed HEAD^ git reset HEAD^ 效果是一样的。
    • –soft 不删除工作空间改动代码,撤销commit,不撤销git add。
    • –hard 删除工作空间改动代码,撤销commit,撤销git add 注意完成这个操作后,就恢复到了上一次的commit状态。
  • 如果commit注释写错了,只是想改一下注释,只需要:git commit –amend,此时会进入默认vim编辑器,修改注释完毕后保存就好了。

    commit message

  • type: commit 的类型
    • feat: 新特性
    • fix: 修改问题
    • refactor: 代码重构
    • docs: 文档修改
    • style: 代码格式修改, 注意不是 css 修改
    • test: 测试用例修改
    • chore: 其他修改, 比如构建流程, 依赖管理.
    • scope: commit 影响的范围, 比如: route, component, utils, build…
  • 个人git commit的时候用 Emoji 作为每次提交的 message,使得本次 commit 独具一格,在整个提交历史长流中很容易找到,这样 Emoji 表情包含的丰富的语义和情绪,使得提交记录非常好理解。但这些 Emoji 标签不能乱用,必须统一规范,这里有一套规范。so enjoy it :sunglasses: !
    v2-bbb7a893337c565085eca11703974090_r.jpg

    忽略更改

  • git update-index --assume-unchanged FILENAME,有时候自己本地的设置不能传到远端项目,也不能改变 gitignore 文件的情况下使用

    git stash 暂存更改

  • 当前修改没有 commit 的时候,不能 checkout 切换分支。但此时不想 commit,便需要 git stash 暂存更改;顾名思义,stash 使用 stack(栈)实现,所以可以 git stash存多次,然后切换分支后, git stash pop 撤出来。

    向开源框架提交 PR 的过程

  • 注意:关于check不通过的问题,每次提交pr前,都要先做远程代码同步
    1
    2
    3
    git fetch upstream
    git rebase upstream/master
    git push origin master
  1. 将源项目 fork 到自己的仓库中,从自己库 clone 到本地;
  2. git remote -v发现此时只与自己的远程仓库建立了连接;
  3. 还需要与上游建立连接(源项目)git remote add upstream origin-project-url,并使用git remote -v查看确认;
  4. 创建功能分支 git checkout -b dev,添加功能代码,查看更改状态 git status
  5. 1
    2
    3
    git add filename
    git commit -m "modify XX"
    git push origin dev
  6. 到项目页面找到 New pull request,创建PR即可。

    参考链接

作者

莫尔索

发布于

2020-09-15

更新于

2024-05-19

许可协议

评论