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一下
git命令与协同开发的更多相关文章
- Pull Request的过程、基于git做的协同开发、git常见的一些命令、git实现代码的review、git实现版本的管理、gitlab、GitHub上为开源项目贡献代码
前言: Pull Request的流程 1.fork 首先是找到自己想要pull request的项目, 然后点击fork按钮,此时就会在你的仓库中多出来一个仓库,格式是:自己的账户名/想要pull ...
- Visual Studio C# 利用git和github协同开发时产生冲突的解决办
Visual Studio C# 利用git和Github协同开发时产生冲突的解决办法 前言:在前两天的助教作业中,发现了自己没有办法解决在用vs开发C#的窗体项目的过程中产生的冲突问题,在查阅了资料 ...
- 【转】Git 教程之协同开发
前面我们已经介绍过远程仓库的相关概念,不过那时并没有深入探讨,只是讲解了如何创建远程仓库以及推送最新工作成果到远程仓库,实际上远程仓库对于团队协同开发很重要,不仅仅是团队协同开发的基础,也是代码备份的 ...
- Git分支及其协同开发
目录 Git分支 Git是如何保存数据的 Git分支的本质 Git分支的操作 远程仓库与本地仓库分支开发 一个项目多个远程仓库 远程仓库操作命令 协同开发 Git flow工作流 GitLub安装搭建 ...
- git 多人协同开发
一.允许他人操作程序(两种方式) 1.添加合作者 2.创建组织 二.分支 每个开发者创建一个属于他们的dev分支 三.合并规则 1.一起合并(代码会出现冲突) 2.尽量缩短合并的周期
- 用Git进行协同开发
用Git进行协同开发 问题场景描述 常常会遇到这样的协同场景:后台的同事和前端的同事需要共同开发一个新功能,而他们的代码相互依赖,所以需要不停地更新各自的代码进行联调. 对于这种场景,最简单的方式就是 ...
- 使用git和github进行协同开发流程
(本文假设各位已经对基本git的基本概念.操作有一定的理解,如无相关git知识,可以参考Pro Git这本书进行相关的学习和练习) 很多项目开发都会采用git这一优秀的分布式版本管理工具进行项目版本管 ...
- 项目管理---git----快速使用git笔记(六)------本地开发与远程仓库的交互----常用git命令
无论是我们自己把本地的项目新建了一个远程仓库 还是 从远程仓库获取到了 本地,现在我们都在本地有了一份项目代码,服务器上对应有项目代码的信息. 现在我们就开始进行交互操作了. 也就是说明一些在 正常开 ...
- android Git命令家底儿及Git数据通信原理详解
声明:本文为CSDN原创投稿文章,未经许可,禁止任何形式的转载. 现在大部分使用的都是SVN,也有一部分迁移了Git,虽然挺好的,不过还有其它很多版本控制的工具,并没有谁最好用,最重要的是适合自己的公 ...
随机推荐
- socket编程头文件分析
在socket网络编程中经常用到一些宏定义.结构和函数,这些经常包含在相关的头文件中,使用时直接include相关头文件即可.下面简单描述下相关的一些结构及头文件. 1. sockaddr / bi ...
- libubox-blob/blobmsg
大部分内容来自libubox [3] - BLOB BLOGMSG,推荐阅读原文. blob提供二进制数据处理能力.有几种支持的数据类型,并可以创建块数据在socket上发送.整型数字会在libubo ...
- Enable Authentication on MongoDB
1.Connect to the server using the mongo shell mongo mongodb://localhost:27017 2.Create the user admi ...
- spring-boot启动注解@EnableAutoConfiguration
springboot很多依赖插件是只要有依赖,就会读取相关配置,如果读取不到,就会使用默认的,可能会报错,但是又在项目中不好排除就可以使用 @EnableAutoConfiguration 注解.启动 ...
- table与html实例
*{ margin:0; padding:0; list-style-type:none;/*手动清楚空隙*/ font-size:12px; font-family:"微软雅黑" ...
- 第二百二十八节,jQuery EasyUI,TreeGrid(树形表格)组件
jQuery EasyUI,TreeGrid(树形表格)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 TreeGrid(树形表格)组件的使 ...
- 你是怎么理解java的泛型的?
解答: 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知 ...
- Disillusioning #1 水题+原题赛(被虐瞎)
https://vijos.org/tests/542c04dc17f3ca2064fe7718 好一场 水题 比赛啊 t1直接上暴力费用流10分QAQ,虽然一开始我觉得可以不用的,直接dfs可以得出 ...
- Page_ClientValidate 用法
JS script function ConfirmMe(){ return confirm("Do you want to proceed?");} ASPX <asp ...
- CopyOnWriteArrayList分析
ArrayList是比较常用的一个可变大小的数组集合,但是是不能同步的.如果多个线程同时访问一个ArrayList实例,其中至少一个线程从结构上修改了列表,那么它必须保持外部同步.一般通过加锁对象进行 ...