git命令与协同开发
一 git命令
1.简单命令
git init # 初始化 (建立git 版本相关文件关系都放这里) git config --global user.email "you@example.com" git config --global user.name "Your Name" # 配置用户 git add . # 当前所有文件夹和所有文件文件加入版本库 - .是指所有文件夹下所有文件 - add templates/index.html 添加指定的文件夹 git commit -m “命名名称” #提交到版本库 - 注意:命名名称不能随便命名 要结合实际 以便以后查找 git log # 查看当前所有版本 git reset --hard 版本号 # 回滚到当前版本号的版本 git reflog # 显示回滚前的所有版本 git reset --hard 版本号 # 回滚到当前版本号的版本 git status # 查看当前版本改动的状态 ls (linux命令) #查看当前所在目录下的所有文件 cd a.py 切入文件夹 cd.. 退回到上一层目录 git tauch a.py 创建空的文件 mkdir 目录名称 创建目录 vim a.py 编辑文件 - 点i后 进入编辑模式 可以进入编写 - 点ESc 在输入:w 表示保存不退出退出 - 点Esc 在输入:wq 保存文件并退出 ###分支命令 git branch 分支名称 # 创建分支 git branch # 查看当前所有分支 git branch -d dev # 删除分支dev git checkout 分支名称 # 切换分支 (修改过代码后 切换分支需要先提交一下代码 否则报错) git merge dev 分支合并 (合并时 在哪个分支下 代码就会合并在哪个分支)
2. Git把管理的文件分为了两个区域四个状态。
区域: 工作区: 原内容 修改过的内容 # git status 查看状态 版本库 暂存 # git add . 将修改内容加入暂存状态(通过 status 查看状态 颜色为绿色) 分支 # git commit -m “版本名称” 将暂存状态改为分支
b. 紧急bug修复方法:
方法一:stash (了解) git stash 将当前工作区的修改过的代码暂存到某个地方中 按照原来代码继续开发... git add . git commit -m '修改完成' git stash pop - 不产生冲突 - 产生冲突,手动去解决 git stash 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原 到当前版本未修改过的状态 git stash list 查看“某个地方”存储的所有记录 git stash clear 清空“某个地方” git stash pop 将第一个记录从“某个地方”重新拿到工作区(可能有冲突) git stash apply 编号 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) git stash drop 编号 ,删除指定编号的记录 方法二:创建分支(重点学习 面试题) moster # 默认分支 (线上版本分支 不允许修改) dev # 开发分支 bug # 修改bug分支 (创建分支时复制的代码是所在分支的代码) git branch 分支名称 # 创建分支 git branch # 查看当前所有分支 git branch -d dev # 删除分支dev git checkout 分支名称 # 切换分支 (修改过代码后 切换分支需要先提交一下代码 否则报错) git merge dev 分支合并 (合并时 在哪个分支下 代码就会合并在哪个分支) 修复Bug流程: git branch dev git checkout dev # 写代码 git add . git commit -m 'xxx' git checkout master git branch bug git chekcout bug # 修复bug git add . git commit -m '紧急修复bug' git checkout master git merge bug git branch -d bug git checkout dev # 继续开发
二 使用github版本管理软件
1 .把代码从github上拿下来方法:
方法一: 下载 方法二: git clone 地址 方法三: git init git remote add origin git pull origin master #与git pull origin master相同 git fetch origin master git merge origin/master
2 . 流程
家里: git add . git commit -m 'xx' git remote add origin https://github.com/WuPeiqi/greenlu.git git push origin master # 将代码提交到github上 公司: # 新公司第一次获取代码 方式一: git clone https://github.com/WuPeiqi/greenlu.git 方式二: git init git remote add origin https://github.com/WuPeiqi/greenlu.git git pull origin master # 直接将代码拉下来到工作区 方式三: git init git remote add origin https://github.com/WuPeiqi/greenlu.git git fetch origin master git merge origin/master # 日后 (clone一次后 以后再拿代码可以直接执行下面代码, 应用场景:在家里或公司写好代码未上传 在另一地继续写) 方式一: git pull origin master #直接将代码拉下来到工作区 方式二: git fetch origin master # 只是单纯的将master下载下来 git merge origin/master
方式三: git rebase origin/master # 与merge功能相同 应用场景:多人开发 分支较多时 git add . git rebase --continue *** cat a.py # 查看文件内容 问题:在公司写完代码忘了提到github上 回到家后继续写代码 写完提到github 怎么合并代码 解决方案:把在家写的代码拉下来 解决冲突 保存即可
三 合并开发
# 多分支开发流程 master (线上分支) dev (测试) review 合并开发分支(一般一两天合并一下分支代码并由老大审核完代码后再合并到dev) bb (个人分支) sk (个人分支) wh (个人分支) - 协作开发 - 项目协作者 - 组织 -开发示例 - 到新公司后clone下代码 - 创建dev review 个人分支 - 切入个人分知后 开发新功能 - 一个小功能开发完后合并 切入review 合并前要pull一下review 这样可以拿到最新代码 - 合并后 push一下