当前位置: 首页 > news >正文

Git高手必备:掌握这些指令,轻松玩转版本控制(一)

前言

注:本文下的+除非特殊声明,否则一律不作为实际加号,仅表示连接

所有的版本控制系统,只能跟踪文本文件的改动比如txt文件,网页,所有程序的代码等,能清楚的知道改动了什么。但是类似于图片、视频这类的二进制文件,git也可以进行版本管理,但是git只能告诉你这两个二进制文件有不同(比如用大小去观测,大小不同两个文件肯定有改动),但是不能告诉我们他们之间具体的差异 

1.在D盘目录下创建名为GitTest文件夹

右键该文件夹点击显示更多选项,选择Git Bash Here,

打开命令行

 

2.使用git init 把GitTest目录变成git管理的仓库

这时会生成.git文件,这个目录是Git来跟踪管理版本的,不要手动修改这里面的文件,否则会把git仓库给破坏了(如果看不到见下图打开查看隐藏的项目)

3.pwd命令显示当前目录 

显示当前目录为D盘下的GitTest 

4. ll -a 列出当前目录下所有文件或文件夹(包含隐藏的文件和目录 隐藏的以"."开头)

 ll .git 列出(.git)目录下所有的文件和目录

5.vi+文件名 编辑文档 esc退出编辑 :wq保存 

输入vi git1.txt  创建文档进入该页面

点击“i”进入编辑模式(下标显示插入) ,并输入“Hello,World”

敲“esc”键,插入下标消失,按“:wq” 并敲回车,保存退出编辑 ,返回原界面

6.cat+文件名 显示文档内容

 

7.git status 用于显示当前工作树的状态

可以列出修改但是未添加到暂存区的文件、已经添加到暂存区等待提交的更改等

这时我们可以发现现在位于主分支上,过往没有任何提交,而git1.txt 此时位于工作区

 8.git add+文件名 将修改的文件添加到暂存区

(工作区文档名是红色的,暂存区是绿色的) 

git add . 添加所有文件到暂存区    git add 文件名 文件名, 添加指定文件到缓存区

 

9.git commit -m "..." 进行提交,"-m"后面的是提交信息  

 注意:这个信息是给自己看的备注,是一定要写的

10.git rm --cached +文件名 将指定文件回退到工作区 

输入 git rm --cached git1.txt ,下面出现暂缓区执行删除操作,git1.txt到工作区

11.git config --global user.name "..." 全局设置你的用户名

git config --global user.email "..." 全局设置你的邮箱

12.git log 版本日志,可以查看每一次的提交。 

每一个版本都有独属于自己的sha1值,一般我们操作的时候只取前四位

这里进行了两次提交,箭头所指就是每一个提交的sha1值(跟身份证差不多,唯一识别身份) 

13.git reset --hard HEAD^ 回退到上一个版本

git reset --hard HEAD~n 回退到上n个版本 

因为sha1值是唯一的,我们也可以通过sha1值的前四位,回退到指定的版本。

git reset --hard ****(sha1值前四位)

回退版本之后我们可以查看文件内容 使用指令cat+文件名

14.git rm +文件名 将指定文件放到暂存区(待删除)

这时我们再用git commit -m +“备注” 成功提交删除操作 

查看当前目录

我们发现git1.txt文件没了,在文件资源管理器中也找不到

注意,git管理下的目录或文件最好不要直接通过文件资源管理器直接删除,要通过git命令来删除 


http://www.mrgr.cn/news/17287.html

相关文章:

  • Java 入门指南:Java 并发编程 —— AQS、AQLS、AOS 锁与同步器的框架
  • 图像识别智能垃圾桶项目开发--语音命令识别垃圾
  • Python 从入门到实战4(序列的操作)
  • 01:【stm32HAL】对GPIO的操作
  • simulink之显示信号属性
  • 利用程序来检测手机号活跃度
  • CCNA课笔记
  • GPT说【网络协议实践:HTTP】如何从服务器上发送一个pdf文件给客户端。
  • 3.数组容器
  • QIIME2宏基因组学教程--2024年春季莱顿和苏黎世教程
  • Bean 的实例化(创建 | 获取)
  • 祝贺严建兵教授任华中农业大学校长
  • 突发!某GPU芯片独角兽!400+人 原地解散!
  • qt实现三原色滑动条变色
  • java epoll网络编程
  • 开学季老师如何发布分班?
  • 【个人笔记】python
  • (学习总结15)C++11小语法与拷贝问题
  • 【编程底层思考】线程阻塞时一定会释放cpu吗
  • 2024年8月文章一览