【总结】Git 的使用笔记

94 阅读4分钟

Git 是什么 ?

官网描述:

Git 是一个免费和开源 的分布式版本控制系统,旨在以速度和效率处理从小型到大型项目的所有内容.

为什么要使用 Git ?

  • 免费和开源:意味着我们不需要为使用 Git 支付任何的费用,也不需要为 Git 会出现意想不到的问题而进行担忧!
  • 分布式:和集中式不同,Git 的存储位置是分发在不同的空间里面的。
  • 版本控制:每一次提交的 Git 记录都是一个版本,在 Git 托管的项目中,您可以自行切换到任何一个不同的版本(时光机)
  • 分支廉价:不需要为每一个分支的成本问题进行担心,分支 checkout 出来即可
  • 易于学习,占用空间更小,速度更快

Git 的安装:

从零安装

  1. git 的安装官网地址:git-scm.com/downloads。选择对应操作系统的包进行安装,然后一路 next 即可。
  2. 如果您使用的是 MAC 电脑,推荐使用 homebrew (brew.sh/) 进行安装:
$ brew install git

更新版本:

如果您的电脑已经安装了 git,你可以直接从 Github 拉取最新的版本

$ git clone https://github.com/git/git

Git 的配置:

在安装完成 git 了之后通常是不能直接协作使用的。通常情况下,您需要向 git 站点(github、gitee)上传对应的公钥

  1. 配置自己的用户名和邮箱到本地
$ git config --global user.name "Mr.Zheng"
$ git config --global user.email "XXX@qq.com"
  1. 生成 SSH 密钥
$ ssh-keygen -t rsa -C "XXX@qq.com"
  1. 把公钥 id_rsa.pub 上传到 git 站点中(不是密钥!不是密钥!不是密钥!)
  2. 创建 git 项目

常用的 Git 命令:

基础操作:

git 命令说明
git add 文件名把工作区中的文件添加到 git 的暂存区
git add .把工作区中的所有文件添加到 git 的暂存区
git commit将暂存区中的代码提交到 git 的版本区中 (不推荐 ❌)
git commit -m 'commit message'将暂存区中的代码提交到 git 的版本区中,并且携带 commit message (推荐 👌)
git push将版本区的代码同步到远程的 git 仓库中
git br -a查看本地和远程所有分支
git branch查看本地所有分支
git checkout ***切换本地指定分支 & 删除对某一个文件的更改
git push origin 本地分支:远程分支提交本地分支到远程
git push origin 远程分支提交本地到远程分支
git branch -d 本地分支删除本地分支
git branch -D 本地分支强制删除本地分支
git push origin :远程分支git push origin --delete 远程分支删除远程对应的分支
git reflog master查看本地提交log
git reset --hard master@{gitCommitId}本地回退到指定版本 (❌ 危险操作 ❌)
git checkout -b 本地分支名根据当前的分支创建并切换到一个新的分支
git checkout -b 本地分支名b 被切换出来的分支a基于 a 分支创建 b 分支,并切换到 b 分支
git cherry-pick {gitCommitId}将某一个 gitCommitId 提交并合并到对应的分支
git revert {commitId}创建一个与 commitId 相反的 commit 移除掉对应 commitId 的提交
git remote -v查看当前 git 仓库对应的远程仓库的地址
git remote set-url origin给当前的 git 仓库设置远程仓库

变基操作:

在多人协作开发的情况下,通常会出现 master 版本过旧的问题。这时,我们就需要把之前基于的 master 分支更换成最新的 master 分支,像这样的行为我们通常称之为:改变基础分支(简称:变基)

git 命令说明
git checkout mastergit pullgit checkout feat/my-devgit rebase master在当前开发的分支下面操作,让当前开发的分支基于远程最新的 master 分支来进行开发
git rebase origin/master在当前开发的分支下面操作,让当前开发的分支基于远程最新的 master 分支来进行开发

补充:

如果分支变基了之后无法提交,需要使用 -f 提交代码

解决冲突:

概述:

在多人协作开发的情况下,有可能会多人同时修改了一个文件。这时,我们就需要找到对应的开发人员一起将冲突手动解除。

解决方式(视具体情况而定):

解决过程:

  1. 保留两者
  2. 保留自己更改的
  3. 保留别人更改的

最后,不要忘了重新重新提交。