刚进公司,如何优雅的使用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

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

在 Spring Boot 中使用 @Autowired和 @Bean注解的示例详解

《在SpringBoot中使用@Autowired和@Bean注解的示例详解》本文通过一个示例演示了如何在SpringBoot中使用@Autowired和@Bean注解进行依赖注入和Bean... 目录在 Spring Boot 中使用 @Autowired 和 @Bean 注解示例背景1. 定义 Stud