热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Git代码提交流程及git命令汇总(基础篇)

git现在的火爆程度非同一般,它被广泛地用在大型开源项目,团队开发,以及独立开发者,甚至学生之中。这篇文章给大家介绍一些Git代码提交流程和Git基础命令的使用,需要的朋友参考下吧

基本了解

git命令是一些命令行工具的集合,它可以用来跟踪,记录文件的变动。比如你可以进行保存,比对,分析,合并等等。这个过程被称之为版本控制。已经有一系列的版本控制系统,比如SVN, Mercurial, Perforce, CVS, Bitkeepe等等。

Git是分布式的,这意味着它并不依赖于中心服务器,任何一台机器都可以有一个本地版本的控制系统,我们称之为仓库。如果是多人协作的话,你需要还需要一个线上仓库,用来同步信息。这就是GitHub, BitBucket的工作。

自己用Git有一段时间了,随着项目越来越多,功能分支也随之增加,从简单的基础命令到随心所欲,需要自己不断地去尝试总结,下面来分享一下我的Git使用总结。

本章基础篇主要讲解一些Git代码提交流程和Git基础命令的使用。

一、Git版本分支管理

以下是一个比较基本的分支管理示范,每个公司的项目管理运作不同,分支管理也有各自的特色,但万变不离其宗。

1) dev分支用于日常开发

2) 当有新版本需要发布时,把dev代码合并到release分支做集成测试,并等待发布

3) release分支进入bug修复阶段

4) 如果在release分支发现bug,那么在release分支进行修改,并使用git cherry-pick把修复bug的commit合并到release分支上

(cherry-pick与merge不同,它的合并是以commit为单位而非整个branch)

完成后,release分支上所有代码改动(除版本号之外)都应该已经合到了dev分支上

5) release分支测试完成后,发布到线上环境

6) 并且打上tag,合并到master分支上

7) 如果在线上出现bug,那么在master上hot fix修复

8) 出现hot fix并修复后,需要重新把hot fix的代码合并到dev以及release分支中去使代码保持一致

二、Git基本命令汇

 二、Git基本命令汇总

1.查看本地文件状态

git status  —-查看本地、本地仓库、缓存(stash)的文件修改状态

—红色 代表本地工作空间的文件修改

—蓝色 代表提交到本地仓库中的文件(git add .)

2.切换版本/覆盖当前修改文件

git branch - 查看当前版本

git branch -a 查看所有版本

git checkout XXX(版本名)  —-切换到远程库中XXX版本

git checkout filepath    —覆盖当前修改的文件

git checkout .           -覆盖当前所有修改文件

3.从远程库获取最新代码

git remote -查看远程库名称

git remote -v  

git remote show XXX(远程库名)

git fetch — 从remote端拉取最新代码

git pull XXX(远程库名) XXX(分支名)  -把拉取的最新代码跟当前工作空间合并

git rebase —把远程拉回的代码和本地合并

4.缓存本地代码

当要切换到其它版本时,想保存在当前版本修改的文件:在切换前做

git stash   —-把本地修改过不需要提交的文件放入缓存

git checkout XXX(版本)   —切换库版本

切回原来的库,把文件从stash缓存中拿出来

git stash pop — 从缓存中拉出

5.提交远程库

git add .

git commit -m ''

git remote 查看远程关联名称

git push remote的名称 本地master

6.处理冲突

git fetch 拉取最新工程

git pull XXX(远程库名) XXX(分支名)  -把拉取的最新代码跟当前工作空间合并

冲突产生后,去工作空间修改后,>>>新代码===老代码<<<,保留最终代码,删除提示符,重新提交。

7.把本次提交的内容提交到其他分支(比如发布时bug的修改)

git cherry-pick commitId

8.建议执行顺序

git status 查看修改状态

git checkout filename 放弃某文件的修改。

git stash 储存修改

git fetch 拉取最新工程

git rebase 与本地分支合并

git stash pop 弹出储存文件,此时新文件可能会与你的文件产生冲突,解决冲突。

git add filename 添加某个修改文件

git add . 提交所有加点

git reset HEAD filename 回滚指定文件,回滚所有加点:"git reset HEAD . "

git commit -m''

git push 本地remote远程分支名,本地分支名

例我的本地分支为master 远程remote 别名为 origin 则提交为git push origin master

9.切换HEAD

git reflog --查看HEAD记录

git reset --hard HEAD^       //切换到之前一个HEAD 

git reset --hard fad4462      // 切换到某个已经回退的HEAD

10.刪除 local branch

git branch -d

总结

以上所述是小编给大家介绍的Git代码提交流程及git命令汇总(基础篇),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


推荐阅读
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • 持续集成概述与实践指南
    本文探讨了持续集成(CI)的基本概念、目的及其在现代软件开发中的应用。通过实例分析,帮助读者理解如何有效实施持续集成,提高软件开发效率。 ... [详细]
  • 本文详细探讨了 Java 中 Daemon 线程的特点及其应用场景,并深入分析了 Random 类的源代码,帮助开发者更好地理解和使用这些核心组件。 ... [详细]
  • 本文探讨了2012年4月期间,淘宝在技术架构上的关键数据和发展历程。涵盖了从早期PHP到Java的转型,以及在分布式计算、存储和网络流量管理方面的创新。 ... [详细]
  • NTP服务器配置详解:原理与工作模式
    本文深入探讨了网络时间协议(NTP)的工作原理及其多种工作模式,旨在帮助读者全面理解NTP的配置参数和应用场景。NTP是基于RFC 1305的时间同步标准,广泛应用于分布式系统中,确保设备间时钟的一致性。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ... [详细]
  • 掌握数据库引擎存储过程与系统视图查询:DBA与BI开发者的必备技能
    本文介绍了如何利用数据库引擎存储过程及系统视图查询数据库结构和对象信息,为数据库管理员(DBA)和商业智能(BI)开发人员提供实用的基础知识。文章涵盖了一系列常用的SQL Server存储过程和系统视图,帮助读者快速获取数据库的相关信息。 ... [详细]
  • 最佳PHP源码加密工具推荐
    本文探讨了几款高效的PHP源码加密工具,旨在帮助开发者保护其代码免受未授权访问。文章不仅介绍了商业软件的选择,还提供了一些免费且实用的加密工具及其使用方法。 ... [详细]
  • Linux环境下配置Subclipse访问SVN+SSH仓库的方法
    本文详细介绍如何在Linux操作系统中配置Subclipse,以便通过SSH协议安全访问SVN仓库。不同于常见的Windows配置指南,本文提供了针对Linux用户的详细步骤。 ... [详细]
  • 本文详细介绍了 SVN 中的 switch 命令及其使用方法,包括如何切换工作副本到新的 URL 和如何处理版本库迁移等情况。 ... [详细]
  • OpenWrt 是一款高度可定制的嵌入式 Linux 发行版,广泛应用于无线路由器等领域,拥有超过百个预装软件包。本文详细探讨如何在 OpenWrt 上通过 Luci 构建自定义模块,以扩展其功能。 ... [详细]
author-avatar
豪哥仔137600
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有