当前位置: 首页 > article >正文

Git工作流程

git 工作流程

  1. 克隆或同步远程仓库 使用git clone命令将本仓库完全镜像一份至本地
    使用git pull命令将远程仓库代码同步到本地
  2. 新建或修改代码文件后,将代码提交到暂存区;(git add filename)
  3. 将暂存区域的文件提交到本地git仓库。(git commit filename -m message) ps:如果发现改错了git add和git commit 命令都是可以撤销的,请大家自行检索相关命令。
  4. 提交到远程仓库 (git push <远程主机名> <本地分支名>:<远程分支名>)

注意事项:
为了后续能够方便查看修改记录,希望大家在git commit时能够认真对待message部分

  • 不要把所有文件修改完后一次性提交,完成了一个阶段性任务就要提交一次

  • message部分要对本次修改了哪些文件,以及修改内容做出简要说明 如

    git commit main.cpp -m (main.cpp)新增了输出重定向

分支

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!(from 廖雪峰)

分支分为本地分支和远程分支 再不推送到远程仓库的时候 ,本地分支的创建,删除合并不影响远程分支,因此你可以在本地视情况新增多个分支

同步开发流程

因为master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,dev分支代码稳定后可以合并到主分支master上来

本项目暂时采取分支开发,阶段性合并的流程

以下是阶段一 新功能的开发流程

  1. 克隆远程仓库 使用git clone命令将本仓库完全镜像一份至本地

  2. 每个人针对自己的负责部分新建一个分支,并切换到这个分支

    git checkout -b branch_name

  3. 远程新建与其本地同名同名的远程分支

    git push --set-upstream origin branch_name

    该过程会提示输入密码,输入gitee账户的用户名和密码即可

  4. 在新建分支下修改和添加文件

  5. 将新建分支推送到自己新建的远程分支下,因为远程有与本地同名的分支可以输入以下命令(origin 是默认的远程主机名)

    git push origin branchName

    在确保当前分支与目标分支同名的情况下也可以直接输入git push 但不提倡

合并分支阶段的开发流程

  1. 每天开始工作前都要先同步远程仓库的master分支到本地的master分支上(使用git pull 命令)

  2. 切换到你维护的分支下

    git checkout branch_name

  3. 将主分支合并到当前分支

    git merge matser

  4. 解决合并冲突,开始coding、

  5. 将当前分支提交到自己维护的远程分支下 如需要合并则提醒本项目的管理员,当代码审查通过后由管理员合并到远程主分支下。

小结: 除了管理员任何人都不得修改远程主分支,本地主分支只能推送到远程自己维护的分支下。

解决冲突

多个开发者同时使用或者操作git中的同一个文件,最后在依次提交commit和推送push的时候,第一个操作的是可以正常提交的,而之后的开发者想要执行pull(拉)和pull(推)操作的时候,就会报冲突异常conflict ,合并分支时也会发生冲突。所有冲突原则上都要在本地解决。git 会提示你冲突文件的文件名,这时你就需要查看冲突内容,并修改。

在本项目推荐以下解决方式

  1. 发生冲突后暂不提交本次冲突文件
  2. 通过查看Git历史记录,找到冲突内容的维护者,商量修改方案
  3. 如采用本次最新修改的方案
    则先以master分支或远程内容为准,删除新增内容,并将源代码备份一份 使用 git pull命令拉取远程仓库代码到master分支下,使master分支更新到最新内容
    使用备份内容重新修改冲突文件,再次提交
  4. 如以原方案为准不做修改 则直接删除冲突内容即可
    (本方案只为暂时方案,如以后发现更好方案会再次修改

http://www.kler.cn/a/304479.html

相关文章:

  • 试编写算法将单链表就地逆置(默认是带头节 点,如果是不带头节点地逆置呢?)
  • STM32 51单片机设计半导体制冷片温控设计
  • 【linux】centos7 换阿里云源
  • FluentUI使用
  • 网络基础概念与应用:深入理解计算机网络
  • 亲测有效:Maven3.8.1使用Tomcat8插件启动项目
  • Nacos 与 Eureka 的区别
  • vue3 使用 codemirror 实现yaml文件的在线编辑
  • 点餐|基于java的电子点餐系统小程序(源码+数据库+文档)
  • 【Excel 表打印基本操作】
  • 【图像识别】摄像头捕捉运动到静止视频帧(免费源码分享)
  • Maven从入门到精通(三)
  • IVF 视频文件格式
  • [网络][CISCO]CISCO_华为网络设备端口镜像配置
  • Cache Aside pattern
  • EG边缘计算网关连接纵横云3.0物联网平台(MQTT协议)
  • Notepad++插件:TextFX 去除重复行
  • 快速理解Redis
  • 【系统规划与管理师】【案例分析】【考点】【问题篇】第5章 IT服务部署实施
  • MiniCPM-V: A GPT-4V Level MLLM on Your Phone
  • Ansys HFSS的边界条件与激励端口
  • 【Linux入门】iptables的安装与配置应用实例
  • pg \d 在不同模式下有同名表时注意事项
  • 828华为云征文|华为云Flexus X实例docker部署Jitsi构建属于自己的音视频会议系统
  • 软件工程毕业设计开题汇总
  • 如何在 DigitalOcean Droplet 云服务器上部署 Next.js 应用