本篇参考:

https://code.visualstudio.com/docs/editor/versioncontrol

https://git-scm.com/doc

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篇)的更多相关文章

  1. salesforce零基础学习(八十八)项目中的零碎知识点小总结(二)

    通过做项目以及群里面的一些大神的聊天,总结一下关于项目中的两个知识点,以后当做参考. 一. 在custom setting中配置集成接口信息后刷sandbox的问题 我们做项目时,经常会遇见和其他平台 ...

  2. salesforce零基础学习(七十二)项目中的零碎知识点小总结(一)

    项目终于告一段落,虽然比较苦逼,不过也学到了好多知识,总结一下,以后当作参考. 一.visualforce标签中使用html相关的属性使用 曾经看文档没有看得仔细,导致开发的时候走了一些弯路.还好得到 ...

  3. salesforce零基础学习(一百一十三)Trigger中获取IP地址的过程

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.228.0.apexcode.meta/apexcode/apex_class_Auth ...

  4. salesforce零基础学习(九十七)Big Object

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.224.0.bigobjects.meta/bigobjects/async_query ...

  5. salesforce零基础学习(九十三)Email To Case的简单实现

    Salesforce提供了标准的功能来实现通过Email 创建 Case.我们可以设置指定的路由的地址,指定条件的邮件会自动生成到目标salesforce系统的Case数据.Salesforce提供了 ...

  6. salesforce零基础学习(九十七)Event / Task 针对WhoId的浅谈

    我们在Sales Cloud中经常会创建顾客,如果针对TO C业务,会启用个人顾客,比如针对车企行业,有一些场景是需要卖给个人的,而不只是企业采购.当通过打电话或者其他的场景有潜在客户并且转换成客户以 ...

  7. salesforce零基础学习(九十一)Facet

    说Facet以前,我们先说一下浏览器加载解析以及渲染的过程.浏览器获取一个HTML的文件时,会按照自上向下的顺序进行解析,并在加载过程中进行渲染.对html解析成DOM树,对CSS 解析成CSS Ru ...

  8. salesforce 零基础学习(五十七)Test 类中创建TestUser帮助类

    我们写Test Class的时候往往都需要指定一个uesr去run test method. TestUserHelper类如下: public class TestUserHelper { publ ...

  9. salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件

    在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...

  10. salesforce零基础学习(九十六)Platform Event浅谈

    本篇参考:https://developer.salesforce.com/blogs/2018/07/which-streaming-event-do-i-use.html https://trai ...

随机推荐

  1. Centos7之LNMP环境编译安装

    Centos7之LNMP环境编译安装 一.系统环境准备 注:安装时间过长,只做参考!!!1.系统信息 [root@localhost ~]# uname -r 3.10.0-957.el7.x86_6 ...

  2. View Animation 运行原理解析

    Android 平台目前提供了两大类动画,在 Android 3.0 之前,一大类是 View Animation,包括 Tween animation(补间动画),Frame animation(帧 ...

  3. Java中Map的entrySet()详解

    转发:原博客 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系.Map中采用Entry内部类来表示一个映射项,映射项包含Key和ValueMap.Entry里面包含getKey() ...

  4. PyCharm+PyQt5+Qt Designer配置

    配置前提 因为本机已经配置完毕了,本次使用的是虚拟机中的Win7系统,Win10系统操作步骤完全一样,无任何区别 PyCharm (这个不多说,官网下载安装,我是用的是2019.3版本) Python ...

  5. twitch游戏直播(【国外】平台)如何绑定二次验证码_虚拟MFA?

    一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接 twitch游戏直播([国外]平台)如何绑定二次验证码_虚拟MFA? 二次验证码小程序于谷歌身份验证器APP的优势(更多见官网 ...

  6. NFS /etc/exports参数解释

    nfs 安装 执行以下命令安装 nfs 服务器所需的软件包 yum install -y nfs-utils 执行命令 vim /etc/exports,创建 exports 文件,文件内容如下: / ...

  7. Django开发之Datetime类型JSON序列化时报错

    前提回顾 在进行django开发view视图时,如果数据库字段是 datetime类型,在JSON序列化返回时,会出现异常 异常现象 TypeError: Object of type datetim ...

  8. Day07_品牌管理

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 0.学习 ...

  9. 无线网络安全攻防实战进阶(杨哲) PDF|网盘下载内附提取码|

    面对当前国内企事业单位及soho无线网络的飞速发展.智能手机等便携式设备的广泛使用.无线网络犯罪案例日益递增的发展现状,<无线网络安全攻防实战进阶>作为<无线网络安全攻防实战> ...

  10. try{}catch的隐藏(如何优雅的实现异常块)

    在项目中,我们会遇到异常处理,对于运行时异常,需要我们自己判断处理.对于受检异常,需要我们主动处理. 但是繁琐的try{}caht嵌套在代码里,看着很不舒服,这里我们不讨论性能,就代码来讲,来看看如何 ...