Git使用教程

一、背景

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper 。
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

二、Git安装

下载地址: Git官网

在这里插入图片描述
下载完安装包后一路next即可。

三、Git操作

3.1 基本介绍

git有工作区、暂存区、本地仓库、远程仓库等概念。

工作区就是当前工作目录也就是你的本地文件夹
通过 git add 命令添加内容到暂存区
git commit 命令则可以将暂存区中的文件提交到本地仓库中去
git push命令将本地仓库的文件提交到远程仓库

3.2 基本操作

可以通过git init初始化仓库或者直接git clone远程仓库。.git文件夹存放 git 需要的数据和资源。
git status 命令来查看仓库中文件的状态。
git add 添加到暂存区
git commit提交到本地仓库
在这里插入图片描述
git log查看详细提交日志
git log --pretty=short 查看简略提交信息
git log 文件名查看单个文件日志
git commit --amend可以修改提交的备注信息
运行该命令,会自动打开vi编辑器,此时我们可以重新编辑上次提交的备注信息。
在这里插入图片描述
但是 git log 有一个局限性,就是不能查看已经删除的 commit 的日志,举个例子:下班了,我发现今天下午提交的代码全都是有问题的,于是做了一个版本回退,回退到今天早上的状态,然后关机回家,第二天来了后我发现搞错了,其实那些代码都是 OK 的,于是我又想让仓库版本前进到昨天下午的状态,却发现 git log 命令查看不到昨天下午提交的版本号。此时,我们可以使用 git reflog 命令来实现这一个请求, git reflog 命令可以显示整个本地仓库的 commit , 包括所有 branch 的 commit , 甚至包括已经撤销的 commit , 只要 HEAD 发生了变化, 就会在 reflog 里面看得到,而 git log 只显示当前分支的 commit ,并且不显示删除掉的 commit。

git diff 命令我们可以查看工作区和暂存区的区别
git diff HEAD查看暂存区和本地仓库的差别
在这里插入图片描述
git rebase合并多次commit
// 合并从当前head到15f745b(commit id)
git rebase -i 15f745b
或:
// 合并最近的两次提交
git rebase -i HEAD~2

3.3 git中提交错误的处理
3.3.1 工作区的代码想撤销

git checkout – 命令来撤销工作区的代码修改

3.3.2 add 到暂存区的代码想撤销

git reset HEAD

3.3.3 提交到本地仓库的代码想撤销

git reset --hard <版本号>

3.3.4 提交到远程仓库的代码想撤销

这里提供两种方法。个人推荐使用第二种
1)通过git reset是直接删除指定的commit

git log # 得到你需要回退一次提交的commit id
git reset --hard <commit_id>
git push origin HEAD --force # 强制提交一次,之前错误的提交就从远程仓库删除

2)通过git revert是用一次新的commit来回滚之前的commit

git log # 得到你需要回退一次提交的commit id
git revert <commit_id> # 撤销指定的版本,撤销也会作为一次提交进行保存

3) git revert 和 git reset的区别

  • git revert是用一次新的commit来回滚之前的commit,此次提交之前的commit都会被保留;
  • git reset是回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除
3.4 关联远程仓库

在这里插入图片描述

3.5 工作区存储

问题提出:
当在dev分支上进行编码时,有一个紧急任务需要处理如果直接切换分支会将当前写的内容带到其他分支。
可以先将当前内容提交后再切换分支
也可以使用Stashing储藏当前编写内容解决完冲突后再切换回来撤销储藏
git stash 储藏
git stash apply 撤销储藏
git stash list 查看储藏

3.6 标签管理

git tag 查看当前仓库中的所有标签
git tag v1 打标签这个 tag 默认是创建在最新一次的 commit 上我们可以利用 git show 来查看标签对应的版本信息
我们可以通过 git tag -d 命令删除一个标签
如果我想给历史上的某次 commit 打一个标签呢?我们可以通过如下命令 git tag
git push 命令并不会把tag提交到远程仓库中去,需要我们手动提交
git push origin v1表示将 v1 标签提交到远程仓库,也可以通过 git push origin --tags 提交所有的 tag 到远程仓库

四、相关图书分享

参考文档: 江南一点雨Git专栏Git撤销&回滚操作.

GitHub入门与实践
Pro Git中文版.
Git的奇技淫巧.
关注公众号回复git关键字获取提取码
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值