gpt4 book ai didi

node.js - 通过 npm Node 自动化 Git 提交 + 版本控制 + 标记

转载 作者:行者123 更新时间:2023-12-02 01:23:40 32 4
gpt4 key购买 nike

我一直试图得到的是,使用 npm 版本更新 package.json 并创建一个标签,然后提交我的更改。通过这种方式,我将能够按版本、自动版本控制和提交信息进行标记。

我遇到的问题是,当我使用 npm 版本时,它会自动执行标记 + 提交,然后如果您之前进行了一些更改,则无法完成,因此对我来说,增加版本没有意义在进行更改/实现/修复之前,您的项目。

然后,我遇到的另一个问题是,我首先将版本增加为“补丁”,然后进行一些更改,添加所有内容,提交然后发布,最后,我有 2 个提交,1 个是因为npm 版本补丁,另一个是好的。

我在文档中看到 here有一个参数允许您禁用此自动标记 + 提交,但是我真的很想在控制台中使用一个命令来更新包控制台并将该版本设置为标记。

另一方面,不确定我说的这是否有意义,因为据我所知,当你创建一个标签时,你可以在你的项目中回到那个点,所以我如何假装这样工作,如果我禁用自动提交?

Finally, What I want to make clear is my goal, What I really want to reach is handle by node scripts a semi-automated script to be able to increase the version of the project, create a tag with the new version, add all changes, commit and push.



注意:我不想使用 gulp-git,因为我认为有一种方法可以在没有它的情况下处理这个问题。

不确定 如果我足够清楚,如果没有,请询​​问并帮助我:)

最佳答案

好的,伙计们,我明白了!我一直在寻找的是运行一个简单的命令并自动执行一些我们必须始终按照与 Git 相同的顺序执行的无聊任务。

所以,我在这里做的是,首先我运行这个命令:

$> npm run commit -- 'v.1.0.1: Fixes'

发生的事情是我首先清理了文件夹/文件并且我不需要/想要,然后我运行:
$> npm version patch -no-git-tag-version --force

该命令增加了我的 package.json 版本,而不是提交和不标记,然后我像往常一样添加所有更改,然后提交我的更改,然后,我使用 tag:commit gulp 任务创建标记。

在 gulp 任务(附在下面)中,我使用 require 获取包的版本并将其视为对象。
"scripts": {
"start": "gulp start",
"initialize": "npm install & typings install",
"clean": "gulp clean:folders",
"commit:example": "echo 'npm run commit -- 'v.1.0.1: Fixes'",
"commit:patch": "npm version patch --no-git-tag-version --force",
"commit:minor": "npm version minor --no-git-tag-version --force",
"commit:major": "npm version major --no-git-tag-version --force",
"precommit": "npm run clean && npm run commit:patch && git add --all",
"postcommit": "gulp tag:commit && git push origin master && git status && gulp commit:done",
"commit": "git commit -m "
},

然后,我在我的 gulp 文件中有这个:
///// ***** GIT ***** /////


gulp.task('tag:commit', function () {
var version = pjson.version;
console.log(colors.bgWhite.black.bold(' \nTagging the version ' + version + ' \n'));
return run('git tag ' + version).exec();
});

我不想使用 gulp-git,因为我知道有一种方法可以做到这一点,如果我需要 merge 、创建早午餐或其他什么,我将运行控制台并修复它,但对于日常提交,记住它很痛苦标记,更新包版本,将其放入 git commit....

我希望这对其他人有用!

干杯,

关于node.js - 通过 npm Node 自动化 Git 提交 + 版本控制 + 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38460008/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com