(代码)版本控制工具
分类
git 分布式管理---->理论上前端部门任何一个成员的电脑都可以作为服务器上上传,但是一般都不会这么干,也是要搭一个服务器并上传(和svn差不多)
工作区-->README.md
本地仓库--->.git
远程仓库-->github属于远程厂库,属于git的一部分
安装
mac系统 --->直接用
window系统----->下载安装 git brash
参考资料-->廖雪峰
https://www.liaoxuefeng.com/wiki/896043488029600
github 和 码云
代码托管平台
github
svn 集中式管理---->公司中前端主管把代码上传上(服务器),组员从服务器上下载,之后在本地(自己电脑上跑),当组员把开发的功能开发完就上传.
gitflow 的工作流:
master 分支
线上分支
dev 分支 开发分支
bug 分支
项目创建 默认 master分支,主程切分一个dev分支
小组成员git clone 在dev分支上 切分自己的开发分支 项目开发
开发完成之后将自己分支合并到dev分支
将dev分支提交到线上的dev分支push上线 上线之前先pull-->拉取线上代码
将自己的分支删掉
再从dev分支上复制一份出来
git基本命令:
git status 查看状态值
git init 创建本地仓库
git remote add origin url(地址) 创建远程仓库
git remote 查看远程仓库
git remote add origin url 将本地的仓库和远程仓库建立连接
git clone 文件 从github克隆/git clone url 克隆远程仓库代码 先有线上代码
git stash 能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。
git diff顾名思义就是查看difference
git add 文件名 (.) 将工作区修改的文件存了放到暂存区
git commit -m '注释' 将更改的文件进行提交,提交了本地仓库(本地仓库)
git push origin master 将本地仓库的代码提交到线上的master分支
git reset --hard 版本号 版本的回滚操作 向前 向后 版本id
git log --pretty=oneline 查看当前所有的版本号
git reflog 查看所有的操作
git branch --all 查看所有的分支 * 当前分支
git checkout -b 分支名 新建一个分支并且切换-----> git checkout -b dev(和master的分支一样,因为是从master分支复制来的)
git checkout 分支名 切换分支
git merge dev 当前分支合并dev分支
git branch -D dev 删除某一分支
git pull 拉取线上代码 将线上的master 分支 合并到本地的master
git push origin master 提交到线上master分支
git log会按提交时间列出所有的更新
合并分支的时候最好用:
git merge 分支名 --no--ff
:q 退出~~~
冲突的解决:
====>小于号和等号之间的是我们本地的代码,等号和大于号之间的是别人的
1.冲突绝对不能出现在线上
2.提交之前一定要下拉 git pull
3.有用留着,没用的干掉
git如何合并远程2个分支
1,先检出项目到一个文件夹
git clone
2,你检出的项目默认是master,所以现在要查看远程全部分支
git branch -a
1.* master
2.remotes/origin/HEAD -> origin/master
3.remotes/origin/v1.2
4.remotes/origin/master
5.remotes/origin/v1.1
6.remotes/origin/v1.0
3,切换分支
比如同时有三个人开发,1.2最早是基于1.0,但是由于项目未发布,1.0,1.1,1.2全部都在同时开发,现在想把1.0已经增加的功能先合并到1.2;
此时的步骤:check 1.2和1.0
git checkout v1.0
git checkout v1.2
然后再v1.2的分支基础上执行merge
git merge v1.0
如果没有报错,那就直接提交代码git push origin v1.2
如果报错,基本是冲突了(比如):
1.CONFLICT (content): Merge conflict in app/src/main/AndroidManifest.xml
2.Auto-merging app/build.gradle
3.CONFLICT (content): Merge conflict in app/build.gradle
4.Automatic merge failed; fix conflicts and then commit the result.
你需要去到提示的文件里把git自动标注的版本冲突注释掉,看你具体需要的功能进行删减
然后把冲突的文件git add,和commit
,比如你有2个冲突文件,多文件add的时候直接空格隔开
==>git add app/src/main/AndroidManifest.xml app/build.gradle
最后再commit
==>git commit -m "解决2个分支之间的冲突"
4,提交代码
git push origin v1.2
5,搞定
参考命令:
1.Git鼓励大量使用分支:
2.查看分支:git branch
3.创建分支:git branch <name>
4.切换分支:git checkout <name>
5.创建+切换分支:git checkout -b <name>
6.合并某分支到当前分支:git merge <name>
7.删除分支:git branch -d <name>