Git操作区域
git通常是工作在三个区域上的
暂存区
实际上保存在git根目录下.git隐藏文件中的一个叫index的文件中,开发者所做的
代码提交记录都保存在这个文件中
git add实际上是将修改记录保存到暂存区
commit会生成一个id
git commit就是将暂存区的内容全部提交
工作区
开发者平时工作/修改代码的区域
历史区
用来保存各个版本的区域
Git回退
撤销文件修改
如果在文件修改之后,add之前执行该语句,那么便会还原成修改前
git checkout <file>
如果是在add之后,那么便无法改变>>事实上 checkout操作是从暂存区版本复制到工作区版本
将单个文件回退到某个操作时
将某个时刻的文件赋值到暂存区
git reset <sha-1> <file>
将暂存区的赋值到工作区
git checkout <file>
回退到指定的版本
HEAD表示当前版本 HEAD^^表示前两个版本 HEAD~100前100个版本
版本回退操作,回到上一个版本
git reset --hard HEAD^
操作历史
当执行了版本回退操作后,git log无法显示出被回退的版本了
但有一个可以显示被绘图版本的log
git reflog
Git文件操作
可以使用linux自带的rm操作,但是需要额外添加一步add操作
也可以使用git rm操作,那么边不需要了
git rm
文件暂存
*转:
当需要拉取远端文件,但又不想提交正在修改的文件时,可以使用Git stash 命令将当前的工作区保存(藏匿)起来,等pull 完后再还原。
此功能类似于实现了 ‘局部拉取更新’ 。
命令如下:
git stash //暂存修改工作区
git pull //拉取远端文件
git stash pop stash@{0} //将工作区还原
注:如果还原工作区的文件与pull 下来的文件有冲突,要手动修改冲突