git版本管理工具学习(一)

集中式 vs 分布式管理工具

  • 集中式(svn,cvs):版本库是集中存放在中央服务器的,工作时要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。缺点:必须联网才能工作,要求带宽。
  • 分布式(git):分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。

基本操作

  • 创建版本库:创建文件夹,cd到文件夹内,git init
  • 添加文件:git add <file_name>
  • 提交到版本库:git commit -m "<commont>"  注意:可以多次add后一次commit
  • 查看但前状态:git status
  • 查看修改内容:git diff

版本回退

  • 查看提交的历史版本:git log (--pretty=oneline,简化查看信息)
  • 查看历史命令:git reflog
  • 退回到上一个版本:git reset --hard HEAD^/版本号 (HEAD为指向当前版本的指针,HEAD^为上一个,HEAD^^……,版本回退只是更改了HEAD指针的位置)

工作区 vs 版本库

  • 工作区(除.git文件夹外的部分)
  • 版本库(.git文件):暂存区(stage)+分支(master默认)+HEAD指针

  

  • git add把文件添加进去,实际上就是把文件修改添加到暂存区
  • git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
  • 每次修改,如果不add到暂存区,那就不会加入到commit

管理修改

  • git管理的是修改,而不是文件
  • 删除文件撤销修改
    • rm <file_name> + git rm <file_name>
    • 恢复删除:git checkout -- <file_name>
    • 取消工作区的修改,用版本库现存代替工作区的修改让,即这个文件回到最近一次git commitgit add时的状态:git checkout -- <file_name>
    • 暂存区修改退回到工作区:git reset HEAD <file_name>

 

原文地址:https://www.cnblogs.com/HectorHou/p/5973594.html