刚进公司,如何优雅的使用git?

2023-10-28 05:40
文章标签 使用 优雅 git 公司 刚进

本文主要是介绍刚进公司,如何优雅的使用git?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

实习的时候,组内的大佬让我们去下载公司的代码去看,并且要求使用非master分支(如next分支)进行开发,当时我和另外两个应届的同学都去尝试拉分支,结果发现拉下来的都不next分支,而是master分支,后来通过查找资后知道一种好的直接拉取指定分支的办法,在这里,我想记录下一些重要的地方,不会叙述太多git的知识点。

二、准备工作

1、下载git(windos)工具,配置好邮箱和用户名,并生成你自己的公钥。(密钥生成可见:https://blog.csdn.net/csdn_blog_lcl/article/details/53172885)
2、我们在自己的工作目录新建一个文件夹project,用来存放我们的项目。

三、git克隆分支的方式介绍

当你进入到公司的git类网站上,会发现一般提供了两种克隆分支的方式:
1、SSH方式,可以免密登录,git拉取代码和提交分支都可以免密,但是要去git网站上配置SSH Key,添加自己生产的公钥。
2、HTTPS方式:可以不用去git网站上配置SSH Key,但是克隆、提交和拉取分支代码都需要输入用户名和密码,比较麻烦(新手推荐用这个)。

四、如何克隆指定分支?

以next分支为例,git地址为HTTPS方式为例,方便讲解。
1、打开之前建好的project文件夹,右键选择Git Bash Here,弹出git窗口
2、初始化本地仓库:git init
3、关联远程仓库:git remote add origin “HTTPS地址”
在这里插入图片描述
我红色划掉的部分就是HTTPS地址啦,复制下来。
4、拉取指定next分支:git clone -b next “git地址”
上面命令中的-b(branch)就是克隆的时候指定分支。
如果此时你是在git网站上添加了密钥,并且git地址是SSH方式的地址,那么可以直接克隆下来。如果你用的是HTTPS方式,你就需要输入用户名密码进行克隆。

五、如何优雅的在分支上开发?

刚克隆下来的next分支在本地也叫next,通常我们不建议直接在这个分支上开发,而是新建一个分支。
1、git checkout -b next-dev (创建并切换到next-dev分支上)
2、我们可以在next-dev上愉快的写我们的代码,写完后可把代码提交到本地仓库:
(1)、git add . (".“的意思就是保存添加所有修改到暂存区)
(2)、git commit -m “注释” (将暂存区中的修改提交到本地仓库)
3、开发完成后我们可将next-dev分支合并到本地next分支上:
(1)切换到本地next分支:git checkout next (切换分之前,需要先在next-dev上commit更改到本地仓库)
(2)本地next分支更新:git pull origin next (当你合并分支的时候,可能其他同事又提交了新的内容)
(3)在本地next分支上去合并next-dev分支:git merge next-dev。(若分支合并出现冲突,这里推荐使用idea集成git工具在idea中去合并冲突,因为比较方便的就能查看到冲突代码块)
4、提交本地next到远程next: git pull origin next:next (”:“前面的是本地分支的名字,”:"后面的是远程分支的名字)

六、为什么不直接在本地next分支上开发,而另创一个next-dev分支呢?

当你直接在本地next分支上开发时,考虑这样的一个场景:测试或者产品火急火燎的告诉你线上出了一个小bug你需要马上修改掉,这个bug很快就能解决,但是你的本地next分支还处于开发状态(甚至是编译都不能通过的状态,你需要注释你的修改或者再去重新拉一个next分支修改bug(这多慢呀!))。但是当你只是在next-dev分支上开发时,你只需提交当前修改并切换到本地next分支上去修改就行了,修改完后切换next-dev继续开发即可。

七、常用命令

初始化本地仓库:git init
本地仓库关联远程仓库:git remote add origin “git 地址”
查看已关联的仓库:git remote -v
切换关联仓库(如想要从HTTPS方式的关联仓库切换到SSH方式关联的仓库):
(1)、取消关联:git remote remove origin
(2)、重新关联:git remote add origin “git SSH方式的地址”
查看所有的分支:git branch -a
更新分支列表(当你不能查看到完整的分支列表时):git fetch
切换分支:git checkout 分支名
创建分支:git branch 分支名
强制删除分支(可删除当前分支):git branch-D 分支名
非强制删除分支(不可删除当前分支):git branch -d 分支名
创建并切换到新分支:git checkout -b 分支名
克隆远程仓库的项目代码:git clone “远程仓库地址”
克隆远程仓库指定分支的代码:git clone “远程仓库地址”
拉取远程分支:git pull 远程分支
提交变更到本地仓库:git commit -m “修改信息注释”:
将你的分支推到远程仓库:git push origin “本地分支名”:远程分支名
撤销本地commit:
(1)、git log 查看commit_id
(2)、git reset --hard commit_id
查看当前仓库的状态(你修改了哪些,哪些保存到了本地仓库,哪些没有):git status
查看提交历史:git log

八、注意事项

1、提交前先git pull是一个好习惯,更新别人提交的代码,避免冲突。
2、为防止我们的误操作,如不小心按到键盘在配置文件中多加了一个字母。我们可以使用idea中的git compare去查看本地分支与远程分支中的差异,确定都是我们自己的正确修改后再提交。
3、分支切换前需要先commit保存修改到本地仓库,不然切换不会成功,强行切换会导致当前分支被覆盖。
4、在git里面总是有后悔药吃的,所以大胆搞,出错了大不了回滚。

这篇关于刚进公司,如何优雅的使用git?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291057

相关文章

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出