披萨盒的赛博日志

披萨盒的博客

马上订阅 披萨盒的赛博日志 RSS 更新: https://blog.pushihao.com/atom.xml

Git基本使用

2022年6月27日 20:59

前言

曾经稍微学习过一点git,对git稍微有一点认识,但也仅仅是知道他是干嘛的。本笔记主要用来记录一下git的常用命令和功能以及我的一些个人理解。


什么是git

对于什么是git,官方文档是这样介绍它的:
Git is a fast, scalable, distributed revision control system with an unusually rich command set that provides both high-level operations and full access to internals.

总结下来,git是一个可扩展的分布式的版本控制系统


安装git

通过官方下载网站下载相应安装包正常安装,当鼠标右键出现Git Bash Here时即为安装成功

对于Debian/Ubuntu等一些常见的Linux发行版,可以直接通过默认的包管理工具进行安装,参照官方Linux安装指南


也可以通过源码进行安装,源码安装方式如下:

在该镜像网站下载对应版本的git源码,然后./configure prefix=/usr/local/git/,然后make && make install,最后将git指令添加到环境变量即可

安装完git之后,必须配置用户名和邮件,配置方式如下(二选一即可):

  • 使用命令行
1
2
git config --global user.name "Your Name"
git config --global user.email "Your Email"
  • 编辑 ~/.gitconfig 或者 /etc/gitconfig 文件
1
2
3
[user]
name = Your Name
email = Your Email

创建git仓库

进入到要创建仓库的目录下

  • 输入git init即可创建一个空仓库
  • 输入git add [文件名]即可把文件写入暂存区(文件名支持通配符,如*.cpp)
  • 输入git commit -m [提交原因]即可把暂存区修改写入当前分支

注:可以add多次后进行commit,一次commit即可把暂存区全部修改提交到当前分支版本库


版本控制

状态查看

git status命令可以查看工作区的状态,也可以查看哪些文件被修改了

git diff命令可以查看文件修改的具体内容,但是无法查看二进制文件如word文档,图片等的修改内容

版本回退

git log命令可以查看提交历史commit id(版本号)、作者、邮箱、日期以及commit的原因,如果只想查看版本号以及commit原因,可以加上一个参数,使用如下命令git log --pretty=online,常用于撤销操作

git reflog命令可以查看命令历史的commit id等相关信息,常用于撤销后的重做操作

git reset --hard commit-id命令可以使文件在不同版本之间跳转,需要注意的是,在git中 HEAD 表示当前版本,那么 HEAD^ 就表示上一个版本,HEAD^^ 就表示上上一个版本,如git reset --hard HEAD^就表示回到上一个版本

撤销修改

git checkout -- [文件名]命令可以丢弃工作区的修改,使用此命令会产生两种情况

  • 该文件自修改后还未放到暂存区,那么执行此命令后该文件就回到了当前版本库(最后一次commit)的状态
  • 该文件已经添加到了暂存区,那么执行此命令后文件就回到了暂存区(最后一次add)的状态

小提示:此命令也可用于在工作区误删文件后的文件恢复

git restore --worktree [文件名]命令可以将文件回到暂存区状态

git reset HEAD [文件名]命令清除所有暂存区的内容,对工作区没有影响

删除文件

git rm [文件名]命令可以将文件从版本库中删除


分支管理

一个分支下的修改不会影响到其他分支,所以往往使用一个dev分支做具体项目开发,该分支下又有多个子分支来实现不同的功能和细节,每当有一个具体的新版本发布,就将dev分支合并到master分支。master分支往往不会进行具体的操作,只是负责发布稳定版本

git branch命令可以查看当前分支

git checkout -b [分支名]...

剩余内容已隐藏

查看完整文章以阅读更多