1.Git:分布式版本控制系统
分布式:大部分基于本地仓库操作,无网络连接时可以提交,一台服务器崩掉,其他客户端上克隆clone的仓库可恢复现场
提交方式:要提交的文件先放到index中(在index可监控的范围),提交只提交index中的文件,文件基于索引,指向链接
commit只提交到本地仓库,push提交到远程仓库
2.基本概念
- Workspace:工作区
- Index / Stage:暂存区 每一次进行代码修改的地方
- Repository:仓库区(或本地仓库) 每一次pull,从远程仓库pull(拉取)到地方,这个地方就是本地仓库,其实是远程仓库的一个副本
- Remote:远程仓库 存放到服务器上的代码
3.常用命令
git clone: 下载远程仓库 (即下载一个完整的项目及其代码)
git pull: 从远程仓库拉取数据到本地仓库,并与本地分支进行合并
git fetch: 从远程仓库拉取数据到本地仓库,暂不合并
git commit:提交代码到本地仓库
git push: 将本地仓库修改后的代码提交到远程仓库
git merge:合并分支
pull=fetch+merge 拉取 注意分支合并的权限验证
注意:提交代码时,每一次在commit的时候,我们都需要先从线上pull最新的代码到本地仓库,然后在把暂存区里面的代码提交到本地仓库,这个时候如果没有冲突固然是最好的,如果有了冲突,这我需要解决冲突,这个此时本地仓库已经是最新的代码且又包括暂存区上面的代码了
4.冲突解决
场景一:
甲:有新提交
乙:没有pull-->写新代码-->pull-->有冲突
解决:-> stash save(把自己的代码隐藏存起来) -> 重新pull -> stash pop(把存起来的隐藏的代码取回来 ) -> 代码文件会显示冲突 -> 右键选择edit conficts,解决后点击编辑页面的 mark as resolved -> commit&push
场景二:
甲:有新提交
乙:没有pull-->写新代码-->commit&push-->有冲突
解决:-> pull -> 代码文件会显示冲突 -> 右键选择edit conficts,解决后点击编辑页面的 mark as resolved -> commit&push