集中式版本控制器
svn 一般用于公司内部版本控制器(Java)
分布式版本控制器
git 一般用于开源项目,并且可以把开源项目发布到github/gitee中
区别:
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
git基本使用(init、add、commit、status、reflog、reset、config、remote)
新建一个文件夹
1) 初始化本地仓库
> git init
只需要使用一次
当前目录就成为了git的本地仓库,在当前目录中会产生一个隐藏目录 .git
2) 查看状态
> git status
工作区/暂存区
3) 将新建文件、修改添加到git中
> git add *(此时将新建或修改的文件添加到暂存区)
暂存区:文件可以提交
4) 将改变提交为一个版本
> git commit -m '[licy]初始化版本'
5)仓库配置
查看仓库配置
> git config --list
用户配置
> git config --global user.name=""
> git config --global user.email=""
6) 删除文件
> git rm 文件名
5) 查看历史版本
> git log
> git reflog
6) 时光穿梭
> git reset --hard HEAD^
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
> git reset --hard 74ca8
7) .gitignore
让git不去管理指定的文件或目录
src
node_modules 第三方依赖,git
package.json
8) 本地仓库与远程仓库绑定
1. 在github/gitee中新建远程仓库
public 任何人都可以查看代码,协作者才可以提交
private 只有自己和协作者才可以查看,提交代码
2. 绑定
> git remote add origin 远程仓库地址
3. 更新,将远程的主分支值更新到本地
> git pull origin master
4. 推送,将本地的仓库推送到远程
> git push origin master
需要输入用户名和密码
9) 多人协作
1. 添加协作者
2. 协作者同意后协作者就可以进行提交
1) 先将远程仓库克隆到本地
> git clone 远程仓库地址
2) 操作
先更新,再提交
> git pull origin master
> git push origin master
在多人协作中,如果要往git仓库提交修改后的代码,要先执行 git pull origin master 此时为了防止其他人在提交前也对仓库中的文件修改;然后执行 git push origin master
10) 注意:
提交之前先更新
尽量不要多人同时操作一个文件
空目录不会直接提交