• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
  1. 1. 版本库的基础操作
    1. 1.1. 创建版本库
    2. 1.2. 添加文件到版本库
    3. 1.3. 提交文件
    4. 1.4. 比较差异
    5. 1.5. 查看提交历史记录
    6. 1.6. 撤销操作
      1. 1.6.1. 重新提交
      2. 1.6.2. 取消暂存
      3. 1.6.3. 撤销修改

Git(2)-基础操作

2017-11-18 08:22:24
总字数 1.1k
预计阅读时间 4 分钟

版本库的基础操作

版本库也可以称为仓库, 也就是一个目录 , 这个目录里面的所有文件都被Git管理起来 , 每个文件的修改 删除等 , Git都能追踪

创建版本库

1
2
#定位到需要创建仓库的目录下执行
git init

执行以后就把这个目录变为git可以管理的仓库
该目录下就会多了一个**.git**目录 , 这个目录是git用来追踪管理版本的 , 勿手动修改

添加文件到版本库

1
2
3
4
5
6
7
8
#添加全部暂存区和历史区不存在的或者有更改的.c文件
git add *.c

#添加全部暂存区和历史区不存在或者有更改的文件
git add .

#添加指定文件到版本库
git add test.c

使用git status可以查看当前版本库的状态
例如
git status
这个版本库当中有01.txt是已经添加到版本库但是没有提交的新文件 ( 该文件当前的状态就是staged - 已暂存 )
使用git rm --cached 01.txt可以从暂存库当中移除01.txt , 相当于是add的逆操作
02.txt是没有添加到版本库的文件

提交文件

提交操作针对的是暂存区当中的文件 ( 或者说是已暂存状态的文件 )

1
2
3
4
5
#提交暂存区所有的内容到版本库
git commit -a

#提交暂存区中指定的文件到版本库
git commit 01.txt

提交时可以直接使用-m参数来添加提交的注释
例如 git commit -a -m "我是注释"
如果未添加 , 提交时则会自动调用vi编辑器来编辑提交注释信息
也可以修改core.edit来设定喜欢的编辑器

如果提交01.txt完毕以后 , 再次修改了01.txt
modified
此时该文件的状态就是modified - 已修改
使用git add可以将其添加到暂存区

比较差异

git diff命令用于比较指定文件的差异

1
2
3
4
5
6
7
8
#查看所有有变动的文件
git diff

#查看指定文件的变动
git diff 01.txt

#查看暂存区中文件的变动
git diff --staged

git diff

查看提交历史记录

使用git log可以按照提交时间列出所有的提交

1
2
3
4
5
6
7
8
9
10
11
#仅显示最近x次的提交 git log -x
git log -2 #查看最近2次的提交

#简略显示每次提交的内容变动
git log --stat

# --pretty对展示内容进行格式化
git log --pretty=oneline #在一行内仅显示每次提交的hash码与注释

#自定义格式化
git log --pretty=format:"%h - %an,%ar : %s"

format当中的占位符含义

选项说明
%H提交对象(commit)的完整哈希字串
%h提交对象的简短哈希字串
%T树对象(tree)的完整哈希字串
%t树对象的简短哈希字串
%P父对象(parent)的完整哈希字串
%p父对象的简短哈希字串
%an作者(author)的名字
%ae作者的电子邮件地址
%ad作者修订日期(可以用 –date= 选项定制格式)
%ar作者修订日期,按多久以前的方式显示
%cn提交者(committer)的名字
%ce提交者的电子邮件地址
%cd提交日期
%cr提交日期,按多久以前的方式显示
%s提交说明

撤销操作

重新提交

如果执行git commit之后发现了漏掉了一个文件 , 再进行一次提交又显得多余
这时候可以使用amend进行重新提交

1
git commit --amend
取消暂存

执行了git add 之后 , 如果要进行撤销
( 与git rm作用类似 )

1
git reset HEAD 03.txt

但是reset还可以对已提交的内容进行版本的回退

1
2
#回退当上一个版本
git reset --hard HEAD^

如果要回退当上上个版本就是HEAD^^
也可以使用简便写法git reset --hard HEAD~100表示回退到100个版本之前

此时执行了回退 , 我们发现最后一次提交所做的修改已经没有了
如果还想找回来 , 可以执行git reflog来查看操作记录 , 找到最后一次提交的版本号
git reflog
执行以后发现是8725f93
于是执行git reset --hard 8725F93
即可再次恢复到最新版本

撤销修改

当文件被修改 , 但还没有git add到暂存区 ( 或者从暂存区当中撤销回到工作区也一样 )

1
git checkout -- filename

注意 : 该操作会导致修改彻底丢失 , 无法恢复

  • git
  • 版本控制
  • Git

扫一扫,分享到微信

Git(3)-分支
Git(1)-初见 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆