GIT基础知识
主要名词如下:
-
stage: 暂存区
-
master: 主分支
-
版本库: git自动生成的.git文件夹
-
工作区:编写和存放代码的区域
-
HEAD:指针,每个分支都有一个HEAD,并指向各自的分支节点
//本地的操作
-
add:代码从工作区推送到暂存区。
-
commit:代码从暂存区推送到主分支。
-
push:代码从本地主分支推送到远程分支。
本次使用的是一个Android项目来说明的,下面是版本库和工作区。
image从廖大神处拿来一张GIT的说明图基本结构。
image撤销操作
** 1 撤销工作区的修改(未使用git add .指令)**:
让指定文件回到最近一次git commit或git add时的状态,若--后不加任何东西,将撤销工作区的所有更改。注意:新建的文件此时对git而言是未知的,直接手动删除即可。
git checkout -- <file>
//或者使用下面的指令来放弃所有的更改
git checkout .
image.gif
** 2 撤销暂存区的修改(已add但未commit时****):**
分两步: 第一步,把暂存区的修改撤销掉(unstage),重新放回工作区;第二步,撤销工作区的修改。若不指定文件,则将撤销所有的更改。
//1 先从commit状态变成add后的状态(也可通过git reset HEAD . 指令来处理所有文件)
git reset HEAD <file>
//2 再从add后的状态恢复到未进行更改时的状态
git checkout -- <file>
image.gif
3 撤销本地仓库的修改(已commit但未push时****):
分两种情况: 情况一,退回到commit之前的那一个版本;情况二,退回到指定(commitid)版本。注意:退回到任意版本时只需要写commitid的前几位即可。所谓的退回其实就是切换,就是git将指针直接切换到commitid处。
//情况一:退回到之前的那一个版本
git reset --hard HEAD^
//情况二:退回到任意版本,版本commitid为 a24s0...
git reset --hard a24s0
image.gif
查看commitid可通过如下指令:git log
image----------------------分----------------------割-----------------------线--------------------
平时常用, 特此记录,望勿忘。
网友评论