难点:使用 git revert <commit_id> 操作实现以退为进, git revert 不同于 git reset 它不会擦除"回退"之后的 commit_id ,而是正常的当做一次"commit",产生一次新的操作记录,所以可以push,不会让你再pull
工作区与暂存区
git diff --cached #是暂存区(stage)和分支(master)的比较
git diff #是工作区(work dict)和暂存区(stage)的比较git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别 撤销修改
git checkout -- file 工作区修改还没add暂存区时,回到最近的版本
git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区 版本回退git log 显示从最近到最远的提交日志
git log --pretty=oneline 版本号精简显示
git reset --hard HEAD^ 回退到上一个版本
git reset --hard 3628164 回退到某个版本
git reflog 记录历史上的版本号
删除文件
git checkout -- file 工作区修改还没add暂存区时,回到最近的版本
rm test.txt 从工作区删除文件
此时,工作区与版本库不一样了,工作区删了,版本库还有,执行两个命令
git rm test.txt
git commit -m 'remove test.txt'
假设删错了git reset --hard HEAD^ 回退到上一个版本
本地到远程
难点:创建账户和SSH(如何多个账号)
git remote add origin git@server-name:path/repo-name.git 关联远程库
git push -u origin master 第一次推送到github