Temp

来自泡泡学习笔记
BrainBs讨论 | 贡献2023年12月1日 (五) 08:47的版本
跳到导航 跳到搜索

用户画像生产思路:

第一步,确定业务目标; 第二步,跑出数据,生产标签; 第三步,分析数据,洞察用户。洞察并不是最终目的,因为洞察只是得到一个结论或者方向; 第四步,开始应用。应用后又带来新的数据,从而形成数据的闭环。

第一步,确定业务目标

以应用来驱动需求。

第二步,跑出数据,生产标签

数据是一切的核心,没有数据说要建很多标签是没有用的,如果你手里没有数据,或者数据不多,你第一个工作不是建后面的标签体系,而是要赶紧找数据。

数据主要来源是用户在注册时填写的,还有在平台上的行为,无论是互动行为、浏览点击行为还是消费行为。然后通过这些行为来建立标签体系,当然有些标签是客观存在的,有些标签是根据逻辑预测出来的。

一般我们会通过用户属性和行为数据,建立基础的用户标签体系。

通常有这4大类:

第一类:人口属性。 第二类:社会属性。 第三类:兴趣偏好。 第四类:用户行为。

第三步,分析数据,洞察用户

利用原始数据进行加工,建立模型标签。

所以基于营销和消费相关的标签,新客、老客、用户的流失和忠诚、用户的消费水平和频率等,都是构成CRM(客户关系管理)的基础,可能大家更习惯叫它用户/会员管理运营平台。

第四步,应用标签

光有用户管理平台不行,还得转换成产品运营策略。不同的标签对应不同的用户群体,也对应不同的营销手段。




名称

git-branch - 列出、创建或删除分支

概述

<em>git branch</em> [--color[=<when>] | --no-color] [--show-current]
	[-v [--abbrev=<n> | --no-abbrev]]
	[--column[=<options>] | --no-column] [--sort=<key>]
	[--merged [<commit>]] [--no-merged [<commit>]]
	[--contains [<commit>]] [--no-contains [<commit>]]
	[--points-at <object>] [--format=<format>]
	[(-r | --remotes) | (-a | --all)]
	[--list] [<pattern>…​]
<em>git branch</em> [--track[=(direct|inherit)] | --no-track] [-f]
	[--recurse-submodules] <分支名> [<起始点>]
<em>git branch</em> (--set-upstream-to=<上游> | -u <上游>) [<分支名>]
<em>git branch</em> --unset-upstream [<分支名>]
<em>git branch</em> (-m | -M) [<旧分支>] <新分支>
<em>git branch</em> (-c | -C) [<旧分支>] <新分支>
<em>git branch</em> (-d | -D) [-r] <分支名>…​
<em>git branch</em> --edit-description [<分支名>]

描述

如果给了`--list`,或者没有非选项参数,现有的分支将被列出;当前的分支将以绿色突出显示,并标有星号。 在链接的工作树中检查出来的任何分支将以青色突出显示,并标有加号。选项`-r`导致远程跟踪的分支被列出,选项`-a`显示本地和远程分支。

如果给出了`<pattern>`,它被用作shell通配符,将输出限制在匹配的分支上。如果给出多个模式,如果一个分支与任何模式相匹配,就会显示出来。

注意,当提供"<pattern>"时,必须使用"--list";否则命令可能被解释为创建分支。

使用 --contains 时,只显示包含指定提交的分支(换句话说,尖端提交是指定提交的后裔的分支),--no-contains 会反过来。如果使用 --merged,则只列出被合并到指定提交的分支(即其顶端提交可以从指定提交处到达的分支)。 如果使用"--no-merged",则只列出未被合并到指定提交的分支。 如果缺少<commit>参数,则默认为`HEAD`(即当前分支的顶端)。

该命令的第二种形式是创建一个名为<branchname>的新分支头,该分支头指向当前的`HEAD`,如果给定的话,则指向<start-point>。作为一种特殊情况,对于<start-point>,你可以使用`"A…​B "作为`A`和`B`的合并基础的快捷方式,如果正好有一个合并基础。你最多可以省略`A`和`B`中的一个,在这种情况下,它默认为`HEAD`。

注意,这将创建新的分支,但不会将工作树切换到它;使用 "git switch <newbranch>"来切换到新的分支。

当一个本地分支从远程跟踪的分支开始时,Git 会设置该分支(特别是 branch.<name>.remotebranch.<name>.merge 配置项),以便 "git pull "能适当地从远程跟踪的分支合并。这种行为可以通过全局的 branch.autoSetupMerge 配置标志来改变。该设置可以通过使用`--track`和`--no-track`选项来覆盖,并在之后使用`git branch --set-upstream-to`来改变。

使用`-m`或`-M`选项,<oldbranch>将被重命名为<newbranch>。 如果 <oldbranch> 有相应的 reflog,它将被重命名以匹配 <newbranch>,并创建一个 reflog 条目以记住分支重命名。如果 <newbranch> 存在,必须使用 -M 来强制重命名。

-c`和-C`选项的语义与`-m`和`-M`完全相同,只不过不是对分支进行重命名,而是将其连同其配置和日志一起复制到一个新的名称。

使用`-d`或`-D`选项,`<branchname>`将被删除。 你可以指定一个以上的分支进行删除。 如果该分支目前有一个reflog,那么reflog也将被删除。

使用 -r-d 来删除远程跟踪的分支。注意,只有当远程分支不再存在于远程仓库或 "git fetch "被配置为不再获取它们时,删除远程跟踪分支才有意义。参见 git-remote 的 "prune "子命令,它可以清理所有过时的远程跟踪分支。

选项

-d
--delete

删除一个分支。该分支必须完全合并在其上游分支中,如果没有用`--track`或`--set-upstream-to`设置的上游分支,则必须在`HEAD`中。

-D

`--delete --force`的快捷方式。

--create-reflog

创建该分支的 reflog。 这将激活对该分支参考文献所做的所有修改的记录,使其能够使用基于日期的sha1表达式,如"<branchname>@{yesterday}"。 请注意,在非空白仓库中, reflogs通常由`core.logAllRefUpdates`配置选项默认启用。 否定的形式`--no-create-reflog`只覆盖先前的`--create-reflog`,但目前并不否定`core.logAllRefUpdates`的设置。

-f
--force

Reset <branchname> to <start-point>, even if <branchname> exists already. Without -f, git branch refuses to change an existing branch. In combination with -d (or --delete), allow deleting the branch irrespective of its merged status, or whether it even points to a valid commit. In combination with -m (or --move), allow renaming the branch even if the new branch name already exists, the same applies for -c (or --copy).

请注意,"git branch -f <branchname> [<start-point>]"命令,即使添加"-f"选项,该命令也会拒绝改变一个在链接到同一仓库的另一个工作树中被检查出来的现有分支`<branchname>`。

-m
--move

Move/rename a branch, together with its config and reflog.

-M

`--move --force`的快捷方式。

-c
--copy

Copy a branch, together with its config and reflog.

-C

`--copy --force`的快捷方式。

--color[=<when>]

给分支着色,以突出当前、本地和远程跟踪的分支。 该值必须是始终(默认)、从不或自动。

--no-color

关闭分支的颜色,即使在配置文件中默认为彩色输出。 与`--color=never`相同。

-i
--ignore-case

排序和过滤分支是不分大小写的。

--omit-empty

在格式化的引用后不打印换行,因为格式化的引用会扩展为空字符串。

--column[=<选项>]
--no-column

在列中显示分支列表。选项语法见配置变量`column.branch`。--column`和--no-column`没有选项,分别相当于’always’和’never'。

这个选项只适用于非粗话模式。

-r
--remotes

列出或删除(如果与-d一起使用)远程跟踪的分支。 与`--list`结合使用,以匹配可选的模式(s)。

-a
--all

列出远程跟踪的分支和本地分支。 与`--list`组合,以匹配可选的模式。

-l
--list

列出分支。 使用可选的"<pattern>…​",例如 "git branch --list maint-*",只列出符合该模式的分支。

--show-current

打印当前分支的名称。在分离的HEAD状态下,不打印任何东西。

-v
-vv
--verbose

当在列表模式下,显示每个头的sha1和提交主题行,以及与上游分支的关系(如果有的话)。如果给了两次,也会打印链接的工作树的路径(如果有的话)和上游分支的名称(也见 git remote show <remote>)。 请注意,当前工作树的HEAD不会打印其路径(它总是你的当前目录)。

-q
--quiet

在创建或删除一个分支时更加安静,抑制非错误信息。

--abbrev=<n>

在显示提交对象名称的冗长列表中,显示至少有'<n>'个六位数的最短前缀,以唯一地指代该对象。 默认值是7,可以通过`core.abbrev`配置选项覆盖。

--no-abbrev

在输出列表中显示完整的sha1,而不是缩写它们。

-t
--track[=(direct|inherit)]

When creating a new branch, set up branch.<name>.remote and branch.<name>.merge configuration entries to set "upstream" tracking configuration for the new branch. This configuration will tell git to show the relationship between the two branches in git status and git branch -v. Furthermore, it directs git pull without arguments to pull from the upstream when the new branch is checked out.

The exact upstream branch is chosen depending on the optional argument: -t, --track, or --track=direct means to use the start-point branch itself as the upstream; --track=inherit means to copy the upstream configuration of the start-point branch.

branch.autoSetupMerge配置变量指定了当既不指定`--track`也不指定`--no-track`时,git switch、`git checkout`和`git branch`应如何运行:

默认选项 "true",在起点是远程跟踪分支的情况下,就像给了 "track=direct"。 false`的行为就像给了--no-track`一样。always`的行为就像给了--track=direct`一样。继承(inherit)的行为就像给了`--track=inherit’一样。simple`的行为就像给了--track=direct`一样,只有当起点是远程跟踪的分支,并且新的分支与远程分支有相同的名字时,才会有这种行为。

See git-pull and git-config for additional discussion on how the branch.<name>.remote and branch.<name>.merge options are used.

--no-track

Do not set up "upstream" configuration, even if the branch.autoSetupMerge configuration variable is set.

--recurse-submodules

这个选项是实验性的!!!如果 submodule.propagateBranches 被启用,会导致当前命令递归到子模块。参见git-config 中的 submodule.propagateBranches。目前,只支持创建分支。

当在分支创建中使用时,一个新的分支<branchname>将在父项目和父项目的<start-point>中的所有子模块中创建。在子模块中,该分支将指向超级项目的<start-point>中的子模块提交,但该分支的跟踪信息将根据子模块的分支和远程来设置,例如`git branch --recurse-submodules topic origin/main`将创建一个子模块分支 "topic",指向父项目的 "origin/main "中的子模块提交,但跟踪子模块的 "origin/main"。

--set-upstream

由于这个选项的语法混乱,不再支持。 请使用`--track`或`--set-upstream-to`代替。

-u <上行>
--set-upstream-to=<upstream>

设置<branchname>的跟踪信息,使<upstream>被视为<branchname>的上游分支。如果没有指定<branchname>,则默认为当前分支。

--unset-upstream

删除<branchname>的上游信息。如果没有指定分支,则默认为当前分支。

--edit-description

打开一个编辑器,编辑文本,解释该分支的用途,以便被其他各种命令(如`format-patch`、request-pull`和`merge(如果启用))使用。可以使用多行解释。

--contains [<commit>]

只列出包含指定提交的分支(如果没有指定则为HEAD)。意味着 --list

--no-contains [<commit>]

只列出不包含指定提交的分支(如果不指定则为HEAD)。意味着 --list

--merged [<commit>]

只列出从指定的提交(如果没有指定,则为HEAD)可以到达的分支的提示。意味着 --list

--no-merged [<commit>]

只列出从指定的提交(如果没有指定,则为HEAD)中无法到达的分支。意味着 --list

<branchname>

要创建或删除的分支的名称。 新的分支名必须通过 git-check-ref-format 定义的所有检查。 其中一些检查可能会限制分支名称中允许的字符。

<起始点

新的分支头将指向这个提交。 它可以是一个分支名,一个提交号,或者一个标签。 如果省略此选项,将使用当前的HEAD来代替。

<oldbranch>

要重命名的现有分支的名称。

<newbranch>

现有分支的新名称。与<branchname>的限制相同。

--排序=<键>

Sort based on the key given. Prefix - to sort in descending order of the value. You may use the --sort=<key> option multiple times, in which case the last key becomes the primary key. The keys supported are the same as those in git for-each-ref. Sort order defaults to the value configured for the branch.sort variable if it exists, or to sorting based on the full refname (including refs/... prefix). This lists detached HEAD (if present) first, then local branches and finally remote-tracking branches. See git-config.

--points-at <object>

只列出给定对象的分支。

--format <format>

一个字符串,从正在显示的分支参考文献和它所指向的对象中插值`%(fieldname)'。 其格式与git-for-each-ref的格式相同。