从0开始入门Git,快速上手

Git是一个版本控制工具,本文者将从使用的角度出发,介绍最常见的基本用法,一篇blog即可快速上手。

本文以64位windows系统为例。

个人开发熟悉基础用法即可,进阶用法针对项目团队进行。

基础用法

安装 Git

  1. 下载Git,进入下载地址点击clip here to download即可。(若下载速度慢可考虑科学上网)
  2. 安装,日常使用一路 next 即可,若有其他要求参考其他 blog
  3. 安装后可以在开始菜单中看到Git的三个启动图标(Git Bash、Git CMD(Deprecated)、Git GUI),至此,安装完毕

安装完毕后,要做的第一件事就是设置你的用户名和邮件地址,因为每次 Git 提交需要这些信息。步骤如下:

  1. 打开 Git Bash
  2. 配置全局的用户名及邮箱,--global 标签意味着接下来的所有操作都默认使用此用户信息
    $ git config --global user.name "John Doe"
    $ git config --global user.email [email protected]
    复制代码

新建仓库

仓库是存放代码文件的地方。

在 Git Bash 中

  1. 创建仓库所在文件夹,并跳转至对应路径 cd /d/_data/Git_files/test
  2. 使用 git init 新建仓库,此时文件夹内会有个 .git 的隐藏文件夹,这里会记录用户所有的变更信息
  3. 复制代码文件到仓库内,使用 git status 查看仓库状态信息 image.png

    注意到文件夹颜色是红色的,代表仓库内容有更改,且还未提交。

在 git 中,文件有 4 种状态。

image.png

  • Modified 状态:红色,代表文件已更改且未加入“暂存区”
  • Staged 状态:绿色,代表文件已加入“暂存区”

image.png

这里的概念及流程图不懂没关系,只要懂如何提交和回退就行了,提交和回退的方法见下文。

提交

要提交更改有两个步骤:

  1. 使用 git add <filename> 将文件加入暂存区(使用 git add . 可一次性将仓库内所有文件加入),此时再次使用 git status 查看信息,发现文件夹变绿。 image.png

  2. 接下来再提交这次变更,执行 git commit -m <message> 提交,-m代表附带<message>信息,用于附带本次提交的备注信息,如git commit -m "my first commit"

    当代码文件变更时(使用 git status 发现文件名变红),需要再次执行“步骤4”提交变更。

    注意:git commit 只会提交那些加入到暂存区的文件( git status 中为绿色的文件),若在提交前想反悔,执行 git reset <filename> 将文件退出暂存区状态(git status 变红)。

  3. 可以通过 git log 查看提交日志,红框为每次提交的 commitID,该值唯一。 image.png

回退

若对新版本不满意,想回到旧版本,可通过 git reset <commitID> [--参数] 实现版本回退。

参数有三种,不带参数默认为 --mixed

  • --hard:不保存所有更改
  • --soft:保留变更且变更内容处于 Staged,红色
  • --mixed:保留变更且变更内容处于 Modified,绿色

使用 git reflog 查看所有提交过的版本。

注意:这里的 commitID 是 7 位的,与 git log 中的不同,实际上也只需要取前7位就能唯一确定ID值。

若想回到任意版本,使用 git reset <commitID> 即可。

若想回到最新版本,可以直接使用 git pull

进阶用法

配置命令别名

使用 alias 可以自定义命令,简化命令。

编辑仓库内 .git 隐藏文件夹中的 config 文件,添加 alias 别名如图即可使用。

image.png

如图,后续执行 git ad 命令相当于执行 git add .

常用别名设置(来源于网络)

image.png

分支

使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。开发项目时,一般一个人负责一个分支。

分支相当于两条并行的路线,两者相互独立、方向不同,一条路上的改动不会影响另一条,如图所示。

image.png

通过 git checkout -b <name> <template> 创建新的分支,参数 <name> 是新分支的名字,参数 <template> 是指定以哪个现有分支或者 commit 为模板,缺省(默认)以当前分支为模板。

以哪个分支为模板,就会继承该分支的一切,包括之前的所有提交的记录,相当于拷贝了一个副本,但之后在副本这个分支上的所有修改与原有分支无关。

使用 git checkout <name> 切换到名为 <name> 的分支。

通过 git branch 查看所有分支,带 * 号且高亮的是当前所在分支。

以后若想回到某个版本,可以直接切换分支,而不需要查找 commitID ,更为方便。

合并

可以将其他分支上的改动合并到本分支,如图所示。

注意只是合并分支的变更,而不是内容!合并不改变其他分支的内容。 image.png

使用 git merge <branchName> 将分支"branchName" 的 commit 记录合并到当前分支。

远程仓库

使用 git clone [url] 将远程仓库文件夹下载至本地, [url] 是你要拷贝的项目。

git push <远程主机名> <本地分支名>:<远程分支名> 命令用于从将本地的分支版本上传到远程并合并。

若使用 git push 提交时提示没有上流分支,需执行 git push --set-upstream origin bc-a 将远程仓库的bc-a分支作为本地bc-a的上流分支,之后再使用 git push 可以直接将本地分支推送至远程仓库的上流分支了。

使用 git fetch [clias] 拉取远程仓库信息,告诉git去获取它有你没有的数据。

git merge [alias]/[branch] 将服务器上的任何共性合并到你当前的分支。

在本地创建分支时,若想以远程仓库里的分支为模板,则命令应改为 git checkout -b <分支名> origin <远程分支名>

git pull,等同于先 fetch 再自动 merge

rebase

rebase 变基,即在基础分支被更改的情况下,将当前分支的所有更改附加到新的基础分支上,但不改变基础分支,相当于更新当前分支的基础分支。

使用 git rebase <分支名> 把当前分支的后续修改依次应用于master分支。

使用 git rebase --continue 继续下一个结点。

Reference

超详细Git 安装教程(Windows)__阿衡_的博客-CSDN博客_安装git

Git - 初次运行 Git 前的配置 (git-scm.com)

git merge 和git rebase的区别 - 简书 (jianshu.com)

Git 教程 | 菜鸟教程 (runoob.com)

『Git』知道这些就够了_哔哩哔哩_bilibili

Git三大特色之Stage(暂存区)_DRPrincess的博客-CSDN博客_git stage

猜你喜欢

转载自juejin.im/post/7086831853428670478