常用软件工具的使用(1) ---- git 的安装和基础操作

目录

      • [git 安装和配置](#git 安装和配置)
      • [git 仓库创建](#git 仓库创建)
      • 克隆远程仓库
      • [git 基础操作](#git 基础操作)

git 安装和配置

c 复制代码
sudo apt-get install git

安装成功后查看git的版本

c 复制代码
git --version
git version 2.17.1
  1. 配置 git 的用户信息
c 复制代码
git config --global user.name "tony"
git config --global user.email tony@23456.com

如果添加了 --global 选项 那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息

显示当前环境下用户信息:

复制代码
git config user.name 显示当前环境下的用户名称的设置
git config user.email 显示当前环境下的用户电子邮件的设置
  1. git 常用配置
    配置 git 显示的颜色信息

    git config --global color.diff auto
    git config --global color.status auto
    git config --global color.branch auto

下面需要设置默认git commit 编辑器,在commit 填写的时候会用到,默认是 nano 编辑器,如果不熟悉 nano 建议改成 vim 编辑器

复制代码
git config --global core.editor vim

git 配置文件路径:

/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置;若使用 git config 时用 --system 选项,读写的就是这个文件。

~/.gitconfig 文件:用户目录下的配置文件只适用于该用户;若使用 git config 时用 --global 选项,读写的就是这个文件

当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件)这里的配置仅仅针对当前项目有效;每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

git 仓库创建

我们把用使用git管理的本地文件和管理文件的集合称为git仓库

  1. 创建空的git仓库
c 复制代码
tony-chen@DESKTOP-54IDJCR:~$ mkdir demo_code
tony-chen@DESKTOP-54IDJCR:~$ cd demo_code/
tony-chen@DESKTOP-54IDJCR:~/demo_code$ git init
Initialized empty Git repository in /home/tony-chen/demo_code/.git/

此时当前目录下会创建一个.git 的隐藏目录,可以看到**.git/config** 就是当前目录的git配置文件:

复制代码
tony-chen@DESKTOP-54IDJCR:~/demo_code$ cat .git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true

克隆远程仓库

git clone

比如我要clone live555 的代码

可以用下面的命令:

复制代码
git clone https://github.com/rgaufman/live555.git 或者
git clone git@github.com:rgaufman/live555.git

两种方式区别在于使用了不同的网络协议下载代码。最终效果是一样的

git clone https://github.com/rgaufman/live555.git 使用https 协议下载代码

git clone git@github.com:rgaufman/live555.git 使用SSH协议下载代码

git 基础操作

  1. 添加文件到暂存区
c 复制代码
git add -A   保存所有的修改
git add .     保存新的添加和修改,但是不包括删除的文件
git add -u   保存修改和删除,但是不包括新建文件。 如果使用 git rm 可以跳出这一步骤
git add -f   可以添加默认忽略的文件,git 可以设置忽略某些文件的修改,用这个命令可以强制添加所有有修改到的文件
  1. 查看当前仓库的状态
c 复制代码
git status
git status -s 显示精简版的当前仓库状态
git status -b 显示当前的branch 信息
  1. 比较文件差异
c 复制代码
git diff            比较工作区文件和本地版本库的文件的差异
git diff --fileA     比较fileA 工作区和原始版本库fileA 的差异
git diff --cached  
git diff --staged  比较**工作区文件和暂存区**的差异
git diff --cached --file 比较fileA 工作区文件和暂存区的差异
  1. 提交暂存区文件到本地仓库

    git commit + 'commit message'

每一笔修改此时被提交为一笔commit,commit message 可以认为对这笔修改的注释信息

tips: 注释信息的格式git没有特别的要求,但是我习惯用下面的格式

c 复制代码
[title] summary: NA
xxxxxxxxxxxxxxxx
[Description]
NA
[report]
NA
  1. 丢弃当前工作区某个文件的修改,
    这个只针对还没有添加到暂存区的情况
c 复制代码
git chekout  --fileA
git checkout -- readme.txt 

命令git checkout -- readme.txt 意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

git checkout -- file命令中的--很重要,没有--,就变成了"切换到另一个分支"的命令,我们在后面的分支管理中会再次遇到git checkout命令。

丢弃某个添加到暂存区文件的修改,恢复到添加到暂存区之前的状态。

复制代码
git reset --fileA
  1. 回退历史版本
c 复制代码
git reset  --hard commitID    回退到某个commit 丢弃以前的commit   用于撤销commit
git reset  ---hard HEAD^      回退到上一个版本
git reset  ---hard HEAD^^     回退到上两个版本上去
git reset   --hard HEAD       回退到当前的最新版本
git reset   --hard HEAD~N     回退到之前的 N 个版本
  1. 查看git 操作的历史记录
    有点类似于 linux 中的 history 命令
c 复制代码
git reflog
![git reflog.png](https://upload-images.jianshu.io/upload_images/16401219-0402b4369e2d6e49.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  1. 同步远程版本仓库到本地
c 复制代码
git pull
  1. 查看本地版本仓库所有的修改信息
c 复制代码
git log
c 复制代码
git log --stat:可以看到每次commit 的暂存提交,相当于 git log + git diff 
git log --graph: 可以看到分支合并图
git log --pretty=oneline:可以用精简的格式查看每次的提交
  1. 查看远程版本仓库的主机名
c 复制代码
git remote   显示远程主机名
git remote -v 显示远程主机名和远程的版本仓库
  1. 推送本地版本仓库修改到远程版本仓库
c 复制代码
git push 
命令格式如下:
git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>
  1. 撤销某个commit 的修改
c 复制代码
git revert + commitId
  1. 查找git 目录
c 复制代码
找 .git 的所在的目录:git rev-parse --git-dir
显示git 仓库所在的根目录:git rev-parse --show-toplevel
显示工作根目录的相对目录:git rev-parse --show-prefix
  1. 清除本地版本库中没有被跟踪的文件
c 复制代码
git clean -fd

这个命令对于清除工作区中的编译中间文件很有用

相关推荐
广州宏帝箱包34 分钟前
出口箱包的包装标准:防潮、防摔、运输安全的设计要点
大数据·网络
Geeys1 小时前
拼多多新店起流玩法:免费流量打底+付费流量爆发
大数据
日常筹谋记1 小时前
自动化仓储安全防护工况评估:明治传感器AS-33C技术适配性分析
大数据·运维·创业创新·业界资讯
updayday8541 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
baopixiaoz1 小时前
BeeQuant × BeeAgent:用AI加速策略验证
大数据·人工智能·python·区块链
智商网输送线配件2 小时前
2026 自动化流水线配件采购难题破解:小批量混批与非标定制的供应链实测
大数据·人工智能·自动化·智商网·流水线设备配件
辛迪聊物业数字化2 小时前
智慧物业管理平台架构实践:从SaaS物业云到商管系统的全模块落地
大数据·微服务·php
SelectDB3 小时前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB3 小时前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析
mmsx3 小时前
Android 地图十万要素不卡顿:空间网格 + 渐进式加载的移动端实践
android·大数据·opengl