Git-1
——分布式版本控制
对应的是集中的版本控制工具——SVN,需要联网。
分布式系统与集中式系统
- Git是分布式版本控制系统,没有中央服务器,但是SVN有。
- 分布式系统上每个人的都是一个版本库,工作时不需要联网
流程
工作区——暂存区——分支
Git用法
初始化一个仓库
git init
添加文件到仓库(两步,add一次添加一个文件,添加至暂存区stage;commit一步可提交数个文件,暂存区所有添加到当前分支)
git add file1
git add file2
git commit -m "添加了2个文件"
时刻掌握仓库当前的状态(是否被修改过,仅仅是工作区前后是否被改变)
git status
更加精确的查询那些被修改了(-红色为旧版本 ,+绿色为新版本。提交时可将此作为额外的信息。修改前和修改之后还没有进入暂存区的内容之间的差异)
git diff
git diff HEAD -- file //检查工作区和版本库最新版的差异
Git下,总有后悔药吃
查询提交日志
git log --pretty=oneline
回到过去,简单,退到上一个版本(或几个)
git reset --hard HEAD~1
或者
git reset --hard HEAD^
回到未来(当前版本的后几个版本,借助版本号)
git reflog
git reset --hard commid_id
撤销修改(文件撤回到最近一次add 或者 commit的状态)
- 文件还没add进暂存区,工作区文件撤回至上次commit后的状态,版本库最新版的状态
- add进了暂存区,工作区文件撤回至上次add后的状态,和暂存区的状态一一致;
-
- git reset HEAD filename,将暂存区的修改回退到工作区,变为状态1
- 假如已经commit到本地仓库,则采用版本回溯。
- 若已经推到远程版本库,则GG
git checkout -- filename
一回生,二回熟