git 操作总结

版本控制系统

版本控制系统需要有以下功能:版本控制、主动提交、维护在中央仓库。

  • 版本控制
    在文件的修改过程中记录修改历史,便于随时撤销回之前的修改操作。

可以理解成用编辑器编辑文本一样,编辑器保存了我们的编辑历史。同时拥有撤销功能,使用撤销可以回到之前的状态。

  • 主动提交
    VCS和文本编辑器的区别在于,VCS的历史记录是我们主动提交的,而编辑器是自动保存历史的。

    如果采用自动保存历史,假如我们要把项目代码回溯到几个月前,那么改动历史非常频繁且无章可循。

  • 中央仓库
    在开发中经常都是多人协作,因此我们需要一个多用户共享的中央仓库。所有人的改动上传到这里,所有人也能看到别人的改动。

集中式(cvs/svn)VS分布式(git)

区别:

  • 集中式版本控制系统:最大的毛病就是必须联网才能工作,版本库是集中存放在中央服务器的
  • 分布式版本控制系统:
  • 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库(本地仓库),分布式版本控制系统的安全性要高很多

常见基本操作

1.添加远程库

  • 要关联一个远程库git remote add origin git@server-name:path/repo-name.git(加粗部分为自己的远程程库)
  • 关联后git push -u origin master第一次推送master分支的所有内容;
  • 此后git push origin master (注意不用 -u)

2.从远程库克隆

  • 上次我们讲了先有本地库,后有远程库的时候,如何关联远程库。
  • 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。
  • git clone XXXX

3.理解工作区和暂存区

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。

  • 工作区:就是你在电脑里能看到的目录
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit (commit 为“保存一个快照”,这个快照在Git中被称为commit) 提交更改,实际上就是把暂存区的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

4.版本回退:git reset HEAD ^

  • git log

命令显示从最近到最远的提交日志

git log -p可以查看每个commit的改动细节(到改动文件的每一行)

git log --stat查看简要统计(哪几个文件改动了)

git show 指定commit 指定文件名查看指定commit的指定文件改动细节
  • git reflog

想恢复到新版本怎么办?找不到新版本的commit id怎么办?Git提供了一个命令git reflog用来记录你的每一次命令.

  • git reset

回退到上一个版本,就可以使用git reset --hard HEAD^命令(上一个版本就是HEAD^ ,上上一个版本就是HEAD^^)

注意:不再被引用直接或间接指向的 commits 会在一定时间后被 Git 回收,所以使用 reflog 来找回被删除的 branch 的操作一定要及时,不然有可能会由于 commit 被回收而再也找不回来。

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候移动指针

git reset --hard HEAD^ :重置stage区和工作目录

git reset --soft HEAD^ : 你的stage区和工作目录里的内容会被保留,并把重置 HEAD 所带来的新的差异放进暂存区 。repository 中的內容的更变需要与 reset 目标节点一致,因此原始节点与reset节点之间的差异变更集合会存在与index暂存区中(Staged files),所以我们可以直接执行 git commit 將 index暂存区中的內容提交至 repository 中。当我们想合并「当前节点」与「reset目标节点」之间不具太大意义的 commit 记录(可能是阶段性地频繁提交)時,可以考虑使用 Soft Res

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值