Git在本地仓库基本操作

说明: 本地仓库是一个.git隐藏文件

Ubuntu下Git安装及配置

  • 1.安装git
sudo apt-get install git
  • 2.查看git安装结果
git
  • 3.创建项目并初始化本地仓库
  • 创建test文件夹,表示是工作项目
  • 进入到test,用git init初始化本地项目,将自动创建本地仓库.git
mkdir test
cd ./test
git init

git本地仓库操作 git本地仓库位置_git基本操作

  1. 配置个人在本项目中的信息
git config user.name "xxxxx"
git config user.email "xxxxx@163.com"

说名: 在项目中配置了个人信息后,个人的配置信息放在了.git/config文件中, 如果没有配置个人信息,将会使用全局配置里面的用户名和邮箱,全局的git配置文件的路径为**~/.gitconfjg**

用于版本控制的命令

提交代码到本地仓库
  1. 查看文件的状态 git status

说明:

  • 红色表示新建文件或者新修改的文件,都在工作区(代码编辑区域
  • `绿色表示文件的暂存区(通过git add test.py可以将文件从工作区提交到暂区)
  1. 将工作区的文件添加到暂存区
git add .  # 将项目中所有的文件添加到暂存区域
 
# 或
git add ReadMe.md  # 将单独的ReadMe.md添加到暂存区

git本地仓库操作 git本地仓库位置_git常用命令_02


3.将暂存区的文件提交到仓库区

git commit -m "版本提交描述"

git本地仓库操作 git本地仓库位置_git本地仓库操作_03

说明: 
 > - commit 会生成一条版本记录,方便后续对提交的记录跟踪管理
 > - -m后面是对版本提交的描述信息,是对提交版本变动的简要说明。
 > - 可以将上面2和3两次的操作合并成一次操作,即将代码的修改从工作区通过一次操作直接提交到本地的仓库区。

git commit -am "版本提交说明"

4 查看历史版本

git log
# 或者
git reflog

git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log 则不能察看已经删除了的commit记录

版本回退
  • 方案一
  • HEAD: 表示当前最新版本
  • HEAD^: 表示当前最新版本的前一个版本
  • HEAD^^:表示当前最新版本的前两个版本,以此类推…
  • HEAD~1:表示当前最新版本的前一个版本
  • HEAD~10:表示当前最新版本的前10个版本,以此类推…
git reset --hard HEAD^ # 回退到当前最新版本的前一个版本
  • 方案二: 通过版本号回退到指定的版本
    获取版本号:git reflog
git reset --hard 版本号
 
 # 如
 git reset --hard efre45f
撤销修改
  • 只能撤销工作区、暂存区的代码,不能撤销仓库区的代码
  • 撤销仓库区的代码就相当于回退版本操作

区分 工作区 和暂存区

工作区: 相当于当前编辑器区中所做的修改

暂存区:通过git add 命令添加文件所至的区域

  • 撤销工作区代码

即撤销当前编辑器中的修改

git checkout 文件名

git本地仓库操作 git本地仓库位置_git常用命令_04

  • 撤销暂存区代码
  • 先增加代码test(),并通过git add将修改提交到暂存区
# 第一步:将暂存区代码撤销到工作区
git reset HEAD  文件名
# 第二步:撤销工作区代码
git checkout 文件名
版本对比
  • 对比版本库与工作区
git diff HEAD -- login.py

HEAD指的是版本库中最新的版本

  • 对比版本库
  • 对比仓库中当前版本与上一个版本
git diff HEAD HEAD^ -- login.py
删除文件
  • 确定删除
# 从本地删除
rm 文件名  
# 从仓库确定删除
git rm 文件名  
# 删除后记录删除操作版本
git commit -m "删除操作"
  • 误删除(撤销修改即可)
# 从本地删除
rm 文件名  
 # 从仓库恢复删除
git checkout 文件名

其他命令

  • git branch -a : 查看所有分支
  • git branch dev 创建dev 分支
  • git checkout dev 切换到dev分支
  • git merge master 将master分支 合并到当前分支