git与svn的区别:
分布式:
git,除了远程仓库外,每个电脑都有本地仓库备份,和远端服务器没有连接仍可工作。建立连接后,将改动推送到服务器中即可。 数据一致性(推送到远端,最终保持一致)、可用性(断开网络也可用)、分区容错性(建立连接后其他客户端也可拉到代码)。
集中式:
svn,有服务器管理所有源代码,客户要和服务器连接,连接断开就无法工作。
ssh原理
有公钥和私钥(非对称加密方案),公钥发送到远端,私钥在本地,每次提交都是提交内容与私钥进行加密,再提交到远端。远端会拿公钥进行解密。 拉取数据时,远端用公钥加密,本地用私钥解密。
设置远程仓库
裸仓库:git init -bare 非裸仓:git init git原理: 远端、本地有仓库,有个暂存区index,工作区(代码、资源文件)
git add添加文件到暂存区
git commit xx.c -m “描述” 提交到本地仓库 git push origin master 推送到远端
watch是监视命令结果,可以加时间
git branch显示分支
git checkout feature 切换到feature分支 如何修改远端的内容? 本地地址创建两个(备份),
发生冲突如何处理
git pull将远端代码拉到本地, head 本地仓库指针 下方是远程仓库 如何修改? 采用本地还是远程,将另外一个删掉,然后git add、git commit 提交修改内容,git push
版本管理标准流程:
master:线上稳定运行的版本 hostfix: develop:主管从master剪个分支出来,feature是同事从develop分支拉下来开发的分支,开发测试后提交到develop。 主管检查后合并到release中,测试人员从release中测试,合格后release合并到master中,就说明版本打完了可以上线。
git rebase
实现了一个功能,但是分步骤上传了1,2,3,4,现在要将这4个合并成一个步骤
切换分支
git checkout feature 更新代码 git pull oorigin feature 。。。。//代码上传 git rebase -i HEAD~(n) 合并步骤 以上步骤他人可能也会操作,需要: git rebase develop // 将develop最新代码拉到本地,此时有冲突,要解决冲突 git push origin feature 推送 git checkout develop 切换到主管 git merge feature 主管来合并
如何定位出错的版本?
首先切到develop分支上面, git bisect 二分查找 git submodule
|