salesforce零基础学习(九十九)Git 在salesforce项目中的应用(vs code篇)
本篇参考:
https://code.visualstudio.com/docs/editor/versioncontrol
https://git-scm.com/book/zh/v2
salesforce作为云平台,相信很多人开发都很爽,有啥需求在开发sandbox开发, outbound changeset 或者通过ant migration tool部署到相应的SIT或者UAT环境,测试通过上线~~~
可能有很多人做salesforce做了好多年都没有使用过代码控制工具(这里使用的是git),因为在项目中好像并不需要用到,使用代码控制工具有时候是一个很鸡肋的操作,徒增工作量,得不偿失。本人在4年多的salesforce项目开发中也只有2次的项目使用到了git作为代码管理。那么问题来了,什么场景下推荐使用代码管理呢?
1. 项目很大,瀑布模型进行管理,拆分成很多个功能块,不同的功能块不同的团队成员去协作开发,上线前可能基于设计有相关的修改,并希望对修改内容做出相关的追踪或者保证相关的机能不会被遗漏掉等;
2. 你作为一个乙方人员,很幸运的中标做了甲方公司二期/三期的项目。公司现行系统还有其他公司或者团队去进行维护,针对紧急bug进行hotfix,但是 hotfix内容并不会同步的部署到你方的sandbox中。你方进行UAT阶段或者部署操作,需要将代码和生产代码或者UAT环境比较,遇见不同或者冲突地方(不是你方团队成员更改内容),需要了解此代码是否为需要部署到生产或者是否需要merge的内容,这个时候你不能轻易的直接将全量资源直接deploy,而是需要先比对每个你们的改动与现行系统的区别,确定是你方更改才上传,不确定你方更改需要讨论是否上传。
当然,以上总结的并不全面,只是可能想到的常见的两点。很多人的项目可能并不涉及到源代码管理,因为可能项目的团队直接从0接触项目或者即使二期三期也是在客户现场办公,有啥需求改动内部群里直接吼一声,大家都比较清楚,所以是否使用源代码管理,因项目而异,因实际场景而异。接下来的内容为扫盲篇,内容很简单,也并不全面,起到抛砖引玉作用,使用源代码管理工具的小伙伴们仅供参考。
一. Git
上方的连接中有针对git使用的官方的中文文档,这里只是简单的描述即可,感兴趣的详细查看官方文档。这里先聊一下 Git管理中文件的三种状态。
- 已提交:数据已经安全的提交到了本地的仓库。
- 已修改:文件进行了修改,还没有放到本地仓库。
- 已暂存:将修改的文件进行了标记,文件还没有提交到本次仓库,但是下次提交操作会将标记的文件提交到本地的仓库。
根据这三种状态,我们可以理解成 git资源具有三个阶段。
- 本机工作区:对项目某个版本提取出来的内容,通常我们在工作区进行修改文件操作。
- 暂存区缓存路径:对工作区修改文件需要提交到数据库的文件进行打标记,git的术语管他叫索引。
- Git本地仓库:用来进行存储项目的元数据和对象。如果从其他的计算机克隆仓库的时候,克隆的就是本地仓库的内容。这部分很重要
当我们本地仓库的内容ready以后,我们就可以对远程的资源库进行关联,然后push到远程资源库即可。在git中我们可以使用指令或者图形界面的方式对资源进行操作,详情查看上方的官方文档介绍,这里不再详细展开。
二. Git在 VS Code的配置及使用
1. 当我们打开vs code,没有进行任何版本控制工具情况下以及没有安装git情况下,打开标红的区域,他会提示你要先安装git,OK,接下来我们安装git
2. 下载git。下载链接为:https://git-scm.com/downloads,本人电脑windows,下载以后进行正常步骤安装即可,以下为其中一步的截图。
3. 安装环境变量,电脑中安装的git位置为:C:\git_install\,配置的环境变量位置为:C:\git_install\bin
4. 打开cmd,输入 git --version 如果正常配置完环境变量会在任意的目录下会展示版本,git在vs code中的版本需要在2.0以上。
5. ctrl + shift + p 选择 sfdx:Create Project With Manifest,模板按照项目要求选择即可,demo中选择的是Standard,然后项目名选择的是 MY_DEV4. mainfest目录下的package.xml,选择 sfdx:retrieve source in manifest from org将项目上代码检索到本地。
6. 切换到source control以后点击 Initialize Repository,点击以后很多资源便会在 changes区域下。点击按钮以后默认会创建一个master的本地分支。
7. git最开始没有资源,所以我们最开始可以将全部的资源点击+号上传到 Stage Change区域
8. 输入相关的comments以后点击 √进行 commit操作。点击commit以后资源便会进入了本地仓库。
9. 我们使用git不可能只是针对于本机操作,当在本机准备妥当以后需要和服务器的资源库进行关联,上传到指定的资源库以便其他的团队成员可以获取到最新的上传的组件资源信息。当我们点击三个点以后的 git push以后,因为没有设置远程的资源库站点,点击Add Remote
10. 这里输入 配置的一个资源库,假定我们创建的是一个名字叫做salesforce的资源库,里面最开始没有任何的资源,这里每个人可以设置不同的资源库的名称。
下图中为在github上创建一个资源库,不同公司可能使用不同工具进行管理。
二级弹出来打一下 origin,这里可以打其他的名字,用于你pull push的时候的关键字,下面会有简单的描述
如果我们配置完想要更改或者想要知道哪里配置的,就找到这个根目录,然后有一个 .git的隐藏目录,打开config文件。
config文件打开便会有一些基本的配置,我们如果需要更改可以直接更改里面的内容信息
重新点击push按钮,然后弹出一个modal选择OK,这里貌似有一个需要输入账号密码的流程,因为忘记截图,这里不在展示图片,正常输入git的账号密码即可。
11. 找到git对应的资源库,我们会发现资源都已经上去了。这种就可以作为master分支,作为最基础的版本进行merge,后期我们可以以它作为源,进行创建feature操作,用于团队成员基于不同功能分工的协同操作。
12. 我们创建一个feature1的branch,用来某个功能的增强,这个feature1仅处理feature1对应的功能项。
13. VS code端创建对应的分支,并且从远程分支拉取最新的资源。其中 git checkout -b 相当于两个 git 操作,即git branch:创建一个分支, git checkout: 切换一个分支,创建以后也可以使用git switch进行切换。 git pull origin + 远程的branch 名称用于从远程资源库中获取最新的资源,这里的origin为上面的配置项,如果上面配置其他,这里也修改成其他。
除了使用指令之外,VS code也提供了图形界面的操作。
14. 将需要上传的资源从 changes区域转换到stage change区域,然后填写message点击对号进行commit;点击commit以后点击push按钮提交到远程分支。
15. 先点击pull request,然后点击new pull request以后进行分支与master的比较,确定都是自己的改动以后,点击create new pull request即完成了一次 分支 merge到 master的流程。
16.点击merge以后,改动的代码即merge到master资源库中了。
至此,一个简单的 git进行源代码控制的流程结束。
总结:篇中简单的介绍了git的安装以及 git如何在vs code中配置,这个操作不仅是针对于salesforce,其他的语言都可以使用 git进行源代码控制操作,所以网上关于git的配置和操作很多。本篇浅入浅出,纯属抛砖引玉,感兴趣的小伙伴可以查看上方的官方文档或者其他资源进行深入学习。篇中有错误地方还请指出,有不懂的欢迎留言。
salesforce零基础学习(九十九)Git 在salesforce项目中的应用(vs code篇)的更多相关文章
- salesforce零基础学习(八十八)项目中的零碎知识点小总结(二)
通过做项目以及群里面的一些大神的聊天,总结一下关于项目中的两个知识点,以后当做参考. 一. 在custom setting中配置集成接口信息后刷sandbox的问题 我们做项目时,经常会遇见和其他平台 ...
- salesforce零基础学习(七十二)项目中的零碎知识点小总结(一)
项目终于告一段落,虽然比较苦逼,不过也学到了好多知识,总结一下,以后当作参考. 一.visualforce标签中使用html相关的属性使用 曾经看文档没有看得仔细,导致开发的时候走了一些弯路.还好得到 ...
- salesforce零基础学习(一百一十三)Trigger中获取IP地址的过程
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.228.0.apexcode.meta/apexcode/apex_class_Auth ...
- salesforce零基础学习(九十七)Big Object
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.224.0.bigobjects.meta/bigobjects/async_query ...
- salesforce零基础学习(九十三)Email To Case的简单实现
Salesforce提供了标准的功能来实现通过Email 创建 Case.我们可以设置指定的路由的地址,指定条件的邮件会自动生成到目标salesforce系统的Case数据.Salesforce提供了 ...
- salesforce零基础学习(九十七)Event / Task 针对WhoId的浅谈
我们在Sales Cloud中经常会创建顾客,如果针对TO C业务,会启用个人顾客,比如针对车企行业,有一些场景是需要卖给个人的,而不只是企业采购.当通过打电话或者其他的场景有潜在客户并且转换成客户以 ...
- salesforce零基础学习(九十一)Facet
说Facet以前,我们先说一下浏览器加载解析以及渲染的过程.浏览器获取一个HTML的文件时,会按照自上向下的顺序进行解析,并在加载过程中进行渲染.对html解析成DOM树,对CSS 解析成CSS Ru ...
- salesforce 零基础学习(五十七)Test 类中创建TestUser帮助类
我们写Test Class的时候往往都需要指定一个uesr去run test method. TestUserHelper类如下: public class TestUserHelper { publ ...
- salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件
在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...
- salesforce零基础学习(九十六)Platform Event浅谈
本篇参考:https://developer.salesforce.com/blogs/2018/07/which-streaming-event-do-i-use.html https://trai ...
随机推荐
- 重装win7时遇到点小问题
最近装系统的时候有个头疼的事,事情的起因是这样的,我在工作的时候用的win7,破解的时候各种工具都破解不了,说是有未分配的盘符.并且,当时装的是没更新的win7,工作上要用到ie11只能在w ...
- (数据科学学习手札90)Python+Kepler.gl轻松制作时间轮播图
本文示例代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 Kepler.gl作为一款强大的开源地理信 ...
- PyCharm+PyQt5+Qt Designer配置
配置前提 因为本机已经配置完毕了,本次使用的是虚拟机中的Win7系统,Win10系统操作步骤完全一样,无任何区别 PyCharm (这个不多说,官网下载安装,我是用的是2019.3版本) Python ...
- Nginx 服务器配置支持SignalR (WebSocket)
今天SignalR部署在测试环境服务器前端出现无法连接,前端报错如下: failed: Error during WebSocket handshake: Unexpected response co ...
- Gradle系列之认识Gradle任务
原文发于微信公众号 jzman-blog,欢迎关注交流. 前面几篇学习了 Gradle 构建任务的基础知识,了解了 Project 和 Task 这两个概念,建议先阅读前面几篇文章: Gradle系列 ...
- .net core 使用 Serilog 作为日志提供者
nuget引入 Serilog.AspNetCore Startup构造函数: public Startup(IConfiguration configuration) { Configuration ...
- Dart中final和const关键字
final和const 如果您从未打算更改一个变量,那么使用 final 或 const,不是var,也不是一个类型. 一个 final 变量只能被设置一次,两者区别在于:const 变量是一个编译时 ...
- 疯狂Python讲义PDF高清完整版免费下载|百度网盘
百度网盘:疯狂Python讲义PDF高清完整版免费下载 提取码:uzba 内容简介 <疯狂Python讲义>既是一本适合初学者入门Python的图书(一个8岁的小朋友在未出版前已学习了本书 ...
- 常用的 Systemctl 命令
常用的 Systemctl 命令 设置开机启动 systemctl enable apache.service 立即启动一个服务 $ sudo systemctl start apache.servi ...
- 图表可视化seaborn风格和调色盘
seaborn是基于matplotlib的python数据可视化库,提供更高层次的API封装,包括一些高级图表可视化等工具. 使用seaborn需要先安装改模块pip3 install seaborn ...