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

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.mrgr.cn/news/23057.html

相关文章:

  • C和指针:高级指针话题
  • 空间工作记忆策略在控制网络和默认模式网络中的激活差异
  • tushare库获取金融股票数据
  • 【计网】计算机网络基础
  • SQL基础语句
  • 【无线通信发展史⑨】1791年路易吉·伽伐尼-关于动物电的研究与1800年亚历山大·伏打伯爵-电池:伏打电池
  • P2343 宝石管理系统
  • Reflection 70B 遭质疑基模为 Llama 3;Replit Agent:编程 0 基础适用丨 RTE 开发者日报
  • 执行命令行程序测试自动化
  • 2024年1-7月份电子信息制造业运行情况
  • 【python篇】——python基础语法一篇就能明白,快速理解
  • 【服务器第一期】Xshell、Xftp下载及连接
  • 什么是跨站脚本攻击(XSS)和跨站请求伪造(CSRF)?
  • 哈希表及算法
  • MYSQL1
  • 树莓派通过串口驱动LD3320语音模块
  • MySQL JDBC URL各参数详解
  • 基于Spring Boot的旧物置换网站
  • 感知机(Perceptron)—有监督学习方法、非概率模型、判别模型、线性模型、参数化模型、批量学习、核方法
  • 数据结构:(牛客)CM11 链表分割