git:版本控制
集中式代码管理;svn:提交到中央服务器,工作的时候用的都是自己的电脑,需要从中央服务器得到最新的版本,然后工作,完成工作后,需要将自己的代码推送到中央服务器,必须联网才能操作
分布式版本控制:Git
没有中央服务器,每个人都拥有全部的代码!安全隐患!所有版本信息仓库全部同步到本地的每个用户,可以查看所有历史版本,可以离线在本地提交,只需要在联网的时候push到相应的服务器或其它用户哪里,不会因为服务器损坏或者网络问题,造成不能工作的情况。可以直接看到更新了哪些代码和文件
git和svn的主要区别:
1.
集中式代码管理;svn:提交到统一的后台服务器
分布式版本控制:Git
git环境配置:根据官网步骤安装:https://git-scm.com/
卸载:清除环境变量,删除安装包
常用的linux命令:
cd:改变目录
cd ..:回退到上一个目录
pwd:显示当前所在目录
clear:清屏
ls:列出当前目录文件
touch:新建文件
rm:删除文件
mkdir:新建文件目录
rm -r:删除一个文件夹 切勿使用rm -rf /:删除电脑中全部文件
mv:移动文件 mv index.js test:将index.js移动到test文件中\
history:查看命令历史
help:帮助,查看所有命令
exit:退出
#:表示注释
git配置
所有的配置文件其实都保存在本地:git\etc\gitconfig
git config --system --list:查看系统配置
git config --global --list:用户自行配置
git config --global user.name " "
git config --global user.email " "
必须配置姓名和邮箱
git config -global
git基本理论
核心所有的时间都需要源于这个理论
Git本地有三个工作区域:工作目录/暂存区/资源库,再加上远程git仓库就可以分为4个工作区域
Workspace:工作区,平时存放代码的地方
Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交的文件列表信息
Repostory:仓库区(或本地仓库),就是安全存放数据的地方,这里面有你提交到所有版本的数据,其中HEAD只想最新放入仓库的版本
Remote:远程仓库,托管代码的服务器,可以简单地认为是你项目组中一台电脑用于远程数据交换
git init:初始化git项目
git status:查看当前文件状态
git add .: 提交所有文件到暂存区
git commit -m " ": 提交暂存区中的内容到本地仓库 -m 提交信息
git push : 提交到远程仓库
git clone:复制远程仓库
git pull:拉取远程仓库
git reset:从本地仓库返回到暂存区
git checkout:从暂存区回到本地代码
Git文件操作
在主目录下建立.gitignore文件,此文件有以下规则:
#为注释
*.txt #忽略所有.txt结尾的文件,这样的话上传就不会被选中了
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其他目录temp
buid/ #忽略build/目录下的所有文件
doc/*.txt #会忽略doc/notes.txt但不包括doc/server/arch.txt
生成公钥
实现免密登录
Git分支
常用分支命令:
git branch:列出所有本地分支
git branch -r:列出所有远程分支
git branch [branch-name]:新建一个分支,但依然留在当前分支
git checkout -b [branch]:新建一个分支,并切换到该分支
git merge [branch]:合并指定分支到当前分支
git branch -d [branch-name]:删除分支
git push origin --delete [branch-name]:删除远程分支
git branch -dr [remote/branch]:删除远程分支
合并分支到主分支:
多个分支如果并行执行,就会导致我们代码不冲突,也就是存在多个版本。
如果冲突了就需要协商保留
master主分支应该非常稳定,用来发布新项目,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如要上传发布,或者说dev分支代码稳定后可以合并到主分支master上来。