前端学习记录笔记

git

2019-03-26  本文已影响0人  VictoriaZsj

~git是分布式版本控制系统

我来解读一下读完后理解的Git与SVN的主要差别

我觉得这两个工具主要的区别在于历史版本维护的位置

Git本地仓库包含代码库还有历史库,在本地的环境开发就可以记录历史

而SVN的历史库存在于中央仓库,每次对比与提交代码都必须连接到中央仓库才能进行

这样的好处在于:

1、自己可以在脱机环境查看开发的版本历史

2、多人开发时如果充当中央仓库的Git仓库挂了,任何一个开发者的仓库都可以作为中央仓库进行服务

不过开发者仓库一般不直接充当中央库,但你可以随时创建一个新的中央库然后同步就立刻恢复了中央库

*svn本地没有历史版本,(意思是git 的有)。

*git的“中央仓库”跟每个人的仓库是一摸一样的,仅仅用于方便交换修改。断网也能commit。

<<<两个工具主要的区别在于历史版本维护的位置>>>

*中央库的Git仓库挂了,但你可以随时创建一个新的中央库然后同步就立刻恢复了中央库。

*commit要频繁,不然无法记录你的改动

svn的问题是每次commit都必须联网

如果你一天commit一次,中间的修改你找不回来

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

暂存区是Git非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么。

git add .是把工作区的修改提交到暂存区

git commit只负责把暂存区的修改提交了(无论合适,只是提交暂存区里的东西,而不提交工作区的东西

指向当前版本的HEAD指针,HEAD指向的版本就是当前版本

用git diff HEAD -- readme.txt命令可以查看工作区版本库里面最新版本的区别

**git checkout -- file可以丢弃工作区的修改)

  (git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令)

**git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

【场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。】

【场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。】

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场

**本地分支和远程分支的链接关系没有创建用命令:git branch --set-upstream branch-name origin/branch-name

查看远程库信息,使用git remote -v

一定要从自己的账号下clone仓库,这样你才能推送修改

merge :git 会自动根据两个分支的共同祖先 的这个 commit 和两个分支分别的最新提交进行一个三方合并

rebase:git 会从两个分支的共同祖先 开始提取 当前分支上的修改,再将 master 分支指向 目标分支的最新提交(此时是develop分支),然后将刚刚提取的修改应用到这个最新提交后面。(修改接在最新提交后面)

上一篇下一篇

猜你喜欢

热点阅读