为了测试 git 功能,我想快速进行任意数量的提交,而无需手动进行更改并单独提交。现在,我必须根据需要手动执行以下单独的命令以进行尽可能多的提交:
$ touch test1
$ git add .
$ git commit -m "Add test1"
[fix2 91efb1b] Add test1
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test1
这当然给出了我正在寻找的结果(廉价提交测试 git flow 命令),但需要大量输入。是否可以自动执行此操作,或者是否有命令可以执行此操作?
我使用保存到 $PATH 目录中的简单 bash 脚本解决了这个问题(或者您不必这样做):
>hackhackhack.sh
----------------
#!/bin/bash
for ((i=1;i<=$2;i++));
do
fname="$1$i"
touch $fname
git add $fname
git commit -m "Add $fname"
done
它按顺序输入文件名和数字;创建文件,将其添加到索引,进行提交,然后重新开始或结束。
输出如下所示:
$ . hackhackhack.sh dummy 5
[master e7a9f93] Add dummy1
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummy1
[master 0726230] Add dummy2
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummy2
[master 94a83a2] Add dummy3
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummy3
[master b38c825] Add dummy4
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummy4
[master b406bb5] Add dummy5
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummy5
对我来说非常有用!享受吧!
-- Flyway script V<VERSION>__Insert_ACS_Transactions_Info.sql
-- Adjust the VERSION to match your Flyway versioning schema
DECLARE
story_name VARCHAR2(100) := '52944616/insert_ACS_transactions_info';
expected_pre_result PLS_INTEGER := <EXPECTED_PRE_COUNT>; -- Define the expected count for pre-validation
expected_post_result PLS_INTEGER := <EXPECTED_POST_COUNT>; -- Define the expected count for post-validation
prevalidation_failed_msg VARCHAR2(250) := 'Prevalidation for ' || story_name || ' failed.';
postvalidation_failed_msg VARCHAR2(250) := 'Postvalidation for ' || story_name || ' failed.';
pre_result PLS_INTEGER;
post_result PLS_INTEGER;
prevalidation_failed EXCEPTION;
postvalidation_failed EXCEPTION;
unexpected_error EXCEPTION;
PRAGMA EXCEPTION_INIT(prevalidation_failed, -20000);
PRAGMA EXCEPTION_INIT(postvalidation_failed, -20001);
PRAGMA EXCEPTION_INIT(unexpected_error, -20002);
-- Replace <NEW_PARM_TYP_NAM>, <NEW_PARM_TYPE_DESC>, and other placeholders with actual values
BEGIN
-- Pre-validation: Check for existence of PARM_TYPE_NAM
SELECT COUNT(*) INTO pre_result FROM MCSENDPERF.SYS_PARM_TYPE WHERE PARM_TYPE_NAM = '<NEW_PARM_TYP_NAM>';
IF pre_result != expected_pre_result THEN
RAISE prevalidation_failed;
END IF;
-- Insert PARM_TYPE_NAM and PARM_TYPE_DESC into SYS_PARM_TYPE
INSERT INTO MCSENDPERF.SYS_PARM_TYPE (PARM_TYPE_NAM, PARM_TYPE_DESC)
VALUES ('<NEW_PARM_TYP_NAM>', '<NEW_PARM_TYPE_DESC>');
-- Insert data into SYS_PARM table
INSERT INTO MCSENDPERF.SYS_PARM (PARM_TYPE_NAM, PARM_NAM, PARM_VAL)
VALUES ('PERF_POC_BATCH_PARTNER_ID', 'PARTNER_ID', '123,456,8831');
INSERT INTO MCSENDPERF.SYS_PARM (PARM_TYPE_NAM, PARM_NAM, PARM_VAL)
VALUES ('PERF_POC_BATCH_PRCSSR_ID', 'PRCSSR_ID', '90000022922');
-- Add additional INSERT statements as needed for all PARM_NAM and PARM_VAL pairs
-- Post-validation: Check for the existence of new rows in SYS_PARM
SELECT COUNT(*) INTO post_result FROM MCSENDPERF.SYS_PARM WHERE PARM_TYPE_NAM = '<NEW_PARM_TYP_NAM>';
IF post_result != expected_post_result THEN
RAISE postvalidation_failed;
END IF;
-- If all validations pass, commit changes
COMMIT;
EXCEPTION
WHEN prevalidation_failed THEN
ROLLBACK;
RAISE_APPLICATION_ERROR(-20000, prevalidation_failed_msg);
WHEN postvalidation_failed THEN
ROLLBACK;
RAISE_APPLICATION_ERROR(-20001, postvalidation_failed_msg);
WHEN OTHERS THEN
ROLLBACK;
RAISE_APPLICATION_ERROR(-20002, 'Unexpected error for ' || story_name || ': ' || SQLCODE || '-' || SQLERRM);
END;
/