Git 使用入门 | 青训营笔记

89 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记。

1 Git 的基本使用

git 的基本使用可以用下面的这张图来概括

image.png

  • 工作区和暂存区
  • fetch v.s. pull
    • fetch 只会讲远端仓库的最新内容拉取到本地,而不会和本地的仓库进行合并
    • 而 pull 相当于执行了 fetch + merge 操作
  • 可以使用 git merge 命令将其他分支合并到本分支中
  • 查看当前分支:git branch
  • 查看所有分支:git branch -a
  • 切换分支:git checkout [分支名]

参考:

2 常见的问题

2.1 如何放弃修改

2.1.1 未执行 git commit

git checkout -- <file>...
  • 文件没有放到暂存库中(未执行git add),撤销修改就回到和版本库一模一样的状态;
  • 文件放到暂存库中,又进行了修改(执行了git add),撤销修改就回到添加到暂存区后的状态。

2.1.2 已执行 git commit

git reset --soft HEAD^

其中 HEAD^ 表示上一次 commit,如果要指定哪一次 commit,可以先通过 git log 查看提交记录,然后选择要 reset 到的 commit的值。

如果想连带这撤销add的话,可以将--soft改为--hard

3 Github flow

常见的 git 工作流有三种:

  • Gitflow
  • Github flow
  • Gitlab flow

本文主要介绍 Github flow。

3.1 具体流程

  • 第一步:根据需求,从master拉出新分支,不区分功能分支或补丁分支。
  • 第二步:新分支开发完成后,或者需要讨论的时候,就向master发起一个pull request(简称PR)。
  • 第三步:Pull Request既是一个通知,让别人注意到你的请求,又是一种对话机制,大家一起评审和讨论你的代码。对话过程中,你还可以不断提交代码。
  • 第四步:你的Pull Request被接受,合并进master,重新部署后,原来你拉出来的那个分支就被删除。(先部署再合并也可。)

3.2 参考

4 通过 ssh 的方式进行免密配置

SSH可以通过公私钥的机制,将生成公钥存放在服务端,从而实现免密访问

目前的Key的类型由四种,分别是dsa、rsa、ecdsa、ed25519,默认使用的是rsa,由于一些完全问题,现在已经不推荐使用dsa和rsa了,优先推荐使用ed25519

ssh-keygen -t ed25519 -C "邮箱"

密钥默认存在~/.ssh/id_ed25519pub

添加到 github 中

image.png

之后使用ssh的方式去连接 github 后,无论是push还是pull都不用再输入账号和密码了。