Kubernetes(k8s)一次性任务:Job

这篇具有很好参考价值的文章主要介绍了Kubernetes(k8s)一次性任务:Job。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 一.系统环境
  • 二.前言
  • 三.Kubernetes Job简介
  • 四.创建一次性任务job
    • 4.1 创建一个简单任务的job
    • 4.2 创建需要执行多次的job任务
  • 五.测试job失败重试次数
  • 六.job任务使用示例:计算圆周率
  • 七.总结

一.系统环境

本文主要基于Kubernetes1.21.9和Linux操作系统CentOS7.4。

服务器版本 docker软件版本 Kubernetes(k8s)集群版本 CPU架构
CentOS Linux release 7.4.1708 (Core) Docker version 20.10.12 v1.21.9 x86_64

Kubernetes集群架构:k8scloude1作为master节点,k8scloude2,k8scloude3作为worker节点。

服务器 操作系统版本 CPU架构 进程 功能描述
k8scloude1/192.168.110.130 CentOS Linux release 7.4.1708 (Core) x86_64 docker,kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calico k8s master节点
k8scloude2/192.168.110.129 CentOS Linux release 7.4.1708 (Core) x86_64 docker,kubelet,kube-proxy,calico k8s worker节点
k8scloude3/192.168.110.128 CentOS Linux release 7.4.1708 (Core) x86_64 docker,kubelet,kube-proxy,calico k8s worker节点

二.前言

Kubernetes是一个流行的容器编排平台,它为运行容器化应用程序提供了丰富的功能和工具。其中之一就是Kubernetes Job,它允许您在集群中运行一次性任务。

正常情况下,Kubernetes的工作负载控制器会尝试持续地将容器保持在运行状态,比如deployment,DaemonSet ,ReplicationController,ReplicaSet 。但有时候,您可能需要运行短暂的任务或批处理作业,这些任务只需要运行一次并完成特定的操作。这时,就可以使用Kubernetes Job来管理这些一次性任务。

使用job任务的前提是已经有一套可以正常运行的Kubernetes集群,关于Kubernetes(k8s)集群的安装部署,可以查看博客《Centos7 安装部署Kubernetes(k8s)集群》https://www.cnblogs.com/renshengdezheli/p/16686769.html。

三.Kubernetes Job简介

Kubernetes Job是一个控制器,它可以创建和管理一次性任务。当Job被创建时,它将自动创建一个或多个Pod来运行任务,直到任务成功完成为止。

与其他控制器不同,Job控制器负责确保Pod成功地完成任务后删除它们。这意味着如果任务失败或调度失败(例如,由于资源不足),Kubernetes将自动重新启动失败的Pod,直到任务成功完成为止。

除了一次性任务job,kubernetes还存在CronJob定时任务,详情请查看博客《Kubernetes(k8s)定时任务:CronJob》https://www.cnblogs.com/renshengdezheli/p/17452237.html。

四.创建一次性任务job

4.1 创建一个简单任务的job

创建job的yaml文件存放目录

[root@k8scloude1 ~]# mkdir jobandcronjob
[root@k8scloude1 ~]# cd jobandcronjob/

创建namespace

[root@k8scloude1 jobandcronjob]# kubectl create ns job
namespace/job created

切换namespace为job

[root@k8scloude1 jobandcronjob]# kubens job
Context "kubernetes-admin@kubernetes" modified.
Active namespace is "job".

查看job任务

[root@k8scloude1 jobandcronjob]# kubectl get job
No resources found in job namespace.

[root@k8scloude1 jobandcronjob]# kubectl get pod
No resources found in job namespace.

查看创建job的帮助

[root@k8scloude1 jobandcronjob]# kubectl create job --help
Create a job with the specified name.
Examples:
  # Create a job
  kubectl create job my-job --image=busybox
  
  # Create a job with command
  kubectl create job my-job --image=busybox -- date
  
  # Create a job from a CronJob named "a-cronjob"
  kubectl create job test-job --from=cronjob/a-cronjob
......
Usage:
  kubectl create job NAME --image=image [--from=cronjob/name] -- [COMMAND] [args...] [options]

Use "kubectl options" for a list of global command-line options (applies to all commands).

生成创建job的yaml文件,注意:重启策略restartPolicy为Never,这表示如果容器退出,则Job将不会自动重启它。

yaml文件意思为:创建名为my-job的任务,它使用busybox镜像来创建一个容器,并将其用于执行任务。不过任务为空。

[root@k8scloude1 jobandcronjob]# kubectl create job my-job --image=busybox --dry-run=client -o yaml >myjob.yaml

[root@k8scloude1 jobandcronjob]# cat myjob.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: my-job
spec:
  template:
    metadata:
      creationTimestamp: null
    spec:
      containers:
      - image: busybox
        name: my-job
        resources: {}
      restartPolicy: Never
status: {}

生成创建job的yaml文件,并执行命令"date -F ; sleep 10",一次性任务job就是date -F ; sleep 10输出当前时间并休眠10秒钟

[root@k8scloude1 jobandcronjob]# kubectl create job my-job --image=busybox --dry-run=client -o yaml -- sh -c "date ; sleep 10" >myjob.yaml

[root@k8scloude1 jobandcronjob]# cat myjob.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: my-job
spec:
  template:
    metadata:
      creationTimestamp: null
    spec:
      containers:
      - command:
        - sh
        - -c
        - date ; sleep 10
        image: busybox
        name: my-job
        resources: {}
      #重启策略restartPolicy为Never,这表示如果容器退出,则Job将不会自动重启它。  
      restartPolicy: Never
status: {}

修改yaml文件并创建。

创建一个名为my-job的Job,并在其中定义一个容器,该容器将输出当前时间并休眠10秒钟。当my-job被创建时,Kubernetes将自动创建Pod来运行容器,并在容器成功完成任务后删除它们。

[root@k8scloude1 jobandcronjob]# vim myjob.yaml 

[root@k8scloude1 jobandcronjob]# cat myjob.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: my-job
spec:
  template:
    metadata:
      creationTimestamp: null
    spec:
      #terminationGracePeriodSeconds属性为0,这意味着当Pod被终止时,Kubernetes将立即杀死容器而不等待容器完成处理。这可以防止容器在超时之前卡住或处于锁定状态。
      terminationGracePeriodSeconds: 0
      containers:
      - command:
        - sh
        - -c
        - date ; sleep 10
        image: busybox
        #imagePullPolicy属性设置为IfNotPresent,这意味着如果本地没有缓存的镜像,则从远程拉取镜像。如果本地已经有了镜像,则直接使用本地镜像而不去远程拉取。
        imagePullPolicy: IfNotPresent
        name: my-job
        resources: {}
      #重启策略restartPolicy为Never,这表示如果容器退出,则Job将不会自动重启它。    
      restartPolicy: Never
status: {}

#生成job任务
[root@k8scloude1 jobandcronjob]# kubectl apply -f myjob.yaml 
job.batch/my-job created

查看job任务,观察pod的状态。

可以发现my-job需要完成一次任务,任务完成之后,pod的状态变为Completed,job的COMPLETIONS变为1/1

[root@k8scloude1 jobandcronjob]# kubectl get job
NAME     COMPLETIONS   DURATION   AGE
my-job   0/1           6s         6s

[root@k8scloude1 jobandcronjob]# kubectl get pod
NAME           READY   STATUS    RESTARTS   AGE
my-job-pgnf2   1/1     Running   0          8s

[root@k8scloude1 jobandcronjob]# kubectl get pod
NAME           READY   STATUS      RESTARTS   AGE
my-job-pgnf2   0/1     Completed   0          11s

[root@k8scloude1 jobandcronjob]# kubectl get job
NAME     COMPLETIONS   DURATION   AGE
my-job   1/1           12s        2m17s

删除job任务

[root@k8scloude1 jobandcronjob]# kubectl delete job my-job 
job.batch "my-job" deleted

4.2 创建需要执行多次的job任务

某些时候,任务需要确保被完成多次,才能确认任务被正常完成,这时候可以使用completions设置job的完成次数。

修改yaml文件。

有几个重要的参数要解释下:

  • backoffLimit: 4 如果Job失败,则重试4次。
  • completions: 6 Job结束需要成功运行的Pod个数,即状态为Completed的Pod数。在本例中,这意味着当有6个Pod完成任务后,Job将终止。
  • parallelism: 2 一次性运行2个Pod,这意味着Kubernetes将同时启动2个Pod来并行执行任务。

如下yaml文件表示:创建一个名为my-job的Job对象,并在其中定义一个容器,该容器将输出当前时间并休眠10秒钟。当my-job被创建时,Kubernetes将自动创建2个Pod来运行容器,并在容器成功完成任务后删除它们。如果其中任何一个Pod失败,则Kubernetes将尝试重试该Pod,最多重试4次。在所有6个Pod成功运行并完成任务后,Job将终止。

[root@k8scloude1 jobandcronjob]# vim myjobparallelism.yaml 

[root@k8scloude1 jobandcronjob]# cat myjobparallelism.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: my-job
spec:
  #如果job失败,则重试4次
  backoffLimit: 4
  #job结束需要成功运行的Pod个数,即状态为Completed的pod数
  completions: 6
  #一次性运行2个pod
  parallelism: 2
  template:
    metadata:
      creationTimestamp: null
    spec:
      terminationGracePeriodSeconds: 0
      containers:
      - command:
        - sh
        - -c
        - date ; sleep 10
        image: busybox
        imagePullPolicy: IfNotPresent
        name: my-job
        resources: {}
      #restartPolicy属性为Never,这表示如果容器退出,则Job将不会自动重启它。  
      restartPolicy: Never
status: {}

创建job

[root@k8scloude1 jobandcronjob]# kubectl apply -f myjobparallelism.yaml 
job.batch/my-job created

查看job及其pod状态,可以看到job完成了6次。

[root@k8scloude1 jobandcronjob]# kubectl get job
NAME     COMPLETIONS   DURATION   AGE
my-job   0/6           5s         5s

[root@k8scloude1 jobandcronjob]# kubectl get pod
NAME           READY   STATUS    RESTARTS   AGE
my-job-dlrls   1/1     Running   0          7s
my-job-dwf4v   1/1     Running   0          7s

[root@k8scloude1 jobandcronjob]# kubectl get pod
NAME           READY   STATUS              RESTARTS   AGE
my-job-6mtnm   1/1     Running             0          2s
my-job-dlrls   0/1     Completed           0          14s
my-job-dwf4v   0/1     Completed           0          14s
my-job-tvvz8   0/1     ContainerCreating   0          2s

[root@k8scloude1 jobandcronjob]# kubectl get pod
NAME           READY   STATUS      RESTARTS   AGE
my-job-6mtnm   1/1     Running     0          9s
my-job-dlrls   0/1     Completed   0          21s
my-job-dwf4v   0/1     Completed   0          21s
my-job-tvvz8   1/1     Running     0          9s

[root@k8scloude1 jobandcronjob]# kubectl get pod
NAME           READY   STATUS      RESTARTS   AGE
my-job-6mtnm   0/1     Completed   0          47s
my-job-dlrls   0/1     Completed   0          59s
my-job-dwf4v   0/1     Completed   0          59s
my-job-slkxf   0/1     Completed   0          35s
my-job-tvvz8   0/1     Completed   0          47s
my-job-zj5sx   0/1     Completed   0          36s

#此job完成了6次
[root@k8scloude1 jobandcronjob]# kubectl get job
NAME     COMPLETIONS   DURATION   AGE
my-job   6/6           35s        62s

删除job

[root@k8scloude1 jobandcronjob]# kubectl delete job my-job 
job.batch "my-job" deleted

五.测试job失败重试次数

backoffLimit: 4 表示如果Job失败,则重试4次。我们要测试下job失败之后,是不是真的会重试4次。

修改yaml文件,这次故意执行错误的指令,sleep改为sleepx,查看重试次数

job的重启策略:Nerver ,只要任务没有完成,就创建新pod运行,直到job完成 ,会产生多个pod; 只要job没有完成,就会重启pod,直到job完成。

[root@k8scloude1 jobandcronjob]# vim myjobparallelism.yaml 

[root@k8scloude1 jobandcronjob]# cat myjobparallelism.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: my-job
spec:
  #如果job失败,则重试4次
  backoffLimit: 4
  #job结束需要成功运行的Pod个数,即状态为Completed的pod数
  completions: 6
  #一次性运行2个pod
  parallelism: 2
  template:
    metadata:
      creationTimestamp: null
    spec:
      terminationGracePeriodSeconds: 0
      containers:
      - command:
        - sh
        - -c
        - date ; sleepx 10
        image: busybox
        imagePullPolicy: IfNotPresent
        name: my-job
        resources: {}
      restartPolicy: Never
status: {}

创建job

[root@k8scloude1 jobandcronjob]# kubectl apply -f myjobparallelism.yaml 
job.batch/my-job created

查看job及其pod状态,可以看到生成了6个失败pod。

[root@k8scloude1 jobandcronjob]# kubectl get job
NAME     COMPLETIONS   DURATION   AGE
my-job   0/6           7s         7s

[root@k8scloude1 jobandcronjob]# kubectl get pod
NAME           READY   STATUS   RESTARTS   AGE
my-job-52xln   0/1     Error    0          11s
my-job-kn6d5   0/1     Error    0          10s
my-job-plh2s   0/1     Error    0          11s
my-job-rrvwz   0/1     Error    0          9s

[root@k8scloude1 jobandcronjob]# kubectl get pod
NAME           READY   STATUS   RESTARTS   AGE
my-job-52xln   0/1     Error    0          27s
my-job-9hqwn   0/1     Error    0          16s
my-job-kn6d5   0/1     Error    0          26s
my-job-n2rhz   0/1     Error    0          16s
my-job-plh2s   0/1     Error    0          27s
my-job-rrvwz   0/1     Error    0          25s

[root@k8scloude1 jobandcronjob]# kubectl get job
NAME     COMPLETIONS   DURATION   AGE
my-job   0/6           31s        31s

使用kubectl describe job查看job的描述信息,发现job已经达到重试次数“Warning BackoffLimitExceeded 84s job-controller Job has reached the specified backoff limit”。

注意backoffLimit重试的次数并不准,backoffLimit重试次数为4次,每次并行为2,所以应该是8次,但是只创建了6个pod就reached the specified backoff limit

[root@k8scloude1 jobandcronjob]# kubectl describe job my-job 
Name:           my-job
Namespace:      job
Selector:       controller-uid=cbd4c4b9-d31d-420a-a3d7-c3e1680de96c
Labels:         controller-uid=cbd4c4b9-d31d-420a-a3d7-c3e1680de96c
                job-name=my-job
Annotations:    <none>
Parallelism:    2
......
Events:
  Type     Reason                Age    From            Message
  ----     ------                ----   ----            -------
  Normal   SuccessfulCreate      2m15s  job-controller  Created pod: my-job-plh2s
  Normal   SuccessfulCreate      2m15s  job-controller  Created pod: my-job-52xln
  Normal   SuccessfulCreate      2m14s  job-controller  Created pod: my-job-kn6d5
  Normal   SuccessfulCreate      2m13s  job-controller  Created pod: my-job-rrvwz
  Normal   SuccessfulCreate      2m4s   job-controller  Created pod: my-job-9hqwn
  Normal   SuccessfulCreate      2m4s   job-controller  Created pod: my-job-n2rhz
  Warning  BackoffLimitExceeded  84s    job-controller  Job has reached the specified backoff limit

删除job

[root@k8scloude1 jobandcronjob]# kubectl delete job my-job 
job.batch "my-job" deleted

[root@k8scloude1 jobandcronjob]# kubectl get job
No resources found in job namespace.

六.job任务使用示例:计算圆周率

下面使用job任务计算圆周率。

本次用到perl语言,使用perl计算圆周率2000位。先提前拉取perl镜像。

先在worker节点下载perl镜像。

[root@k8scloude2 ~]# docker pull hub.c.163.com/library/perl:latest

[root@k8scloude3 ~]# docker pull hub.c.163.com/library/perl:latest

创建job任务,任务为perl -Mbignum=bpi -wle 'print bpi(2000)使用perl计算圆周率2000位

[root@k8scloude1 jobandcronjob]# cat myjobPI.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: my-job
spec:
  template:
    metadata:
      creationTimestamp: null
    spec:
      terminationGracePeriodSeconds: 0
      #"perl -Mbignum=bpi -wle 'print bpi(2000)'",表示容器将输出2000位精度的圆周率(π)值。
      containers:
      - command:
        - sh
        - -c
        - perl -Mbignum=bpi -wle 'print bpi(2000)'
        image: hub.c.163.com/library/perl
        imagePullPolicy: IfNotPresent
        name: my-job
        resources: {}
      restartPolicy: Never
status: {}

创建job

[root@k8scloude1 jobandcronjob]# kubectl apply -f myjobPI.yaml 
job.batch/my-job created

查看job及其pod状态

[root@k8scloude1 jobandcronjob]# kubectl get job
NAME     COMPLETIONS   DURATION   AGE
my-job   0/1           4s         4s

[root@k8scloude1 jobandcronjob]# kubectl get pod
NAME           READY   STATUS      RESTARTS   AGE
my-job-m89bb   0/1     Completed   0          8s

[root@k8scloude1 jobandcronjob]# kubectl get job
NAME     COMPLETIONS   DURATION   AGE
my-job   1/1           7s         12s

查看pod日志,可以看到PI的值,显示了PI 2000位的数值。

[root@k8scloude1 jobandcronjob]# kubectl logs my-job-m89bb
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275898

删除job

[root@k8scloude1 jobandcronjob]# kubectl delete job my-job 
job.batch "my-job" deleted

[root@k8scloude1 jobandcronjob]# kubectl get job
No resources found in job namespace.

PS:在某些情况下,我们可能希望将超时限制放在任务上,以避免长时间运行或卡死的情况。为此,Job支持一个activeDeadlineSeconds属性,该属性指定了任务的超时时间。如果任务超时,则Kubernetes将自动终止任务

七.总结

在本文中,我们介绍了Kubernetes Job的基本概念,使用方法,应用实例,包括如何创建和管理一次性任务,需要多次执行的job任务,使用job计算圆周率等。

通过使用Kubernetes Job,您可以轻松地管理一次性任务,从而使集群更加灵活、可靠和高效。文章来源地址https://www.toymoban.com/news/detail-467809.html

到了这里,关于Kubernetes(k8s)一次性任务:Job的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《一次性分割一切》阅读笔记

    目录 0 体验 1 摘要 2 十个问题 参考文献 体验地址 :SEEM - a Hugging Face Space by xdecoder 体验结果 : 将哈士奇和汽车人从图片中分割出来。 尽管对于交互式人工智能系统的需求不断增长,但在视觉理解(例如分割)中的人工智能交互方面,很少有全面的研究。本文受到基于提示的

    2024年02月01日
    浏览(82)
  • Python:一次性输出多个量

    有的时候我们在输入一个字符串时,需要在中间加一个int类型变量时,如果一段一段输出就要写三个print,非常麻烦。今天bug君就给大家讲讲如何在Python里一次性输出多个量。 粽所粥汁,在Python里输出需要写 print(\\\"输出内容\\\") ,而输出一个变量则需要写 print(变量名) 。 注意:

    2024年02月04日
    浏览(116)
  • 一次性打包学透 Spring

    不知从何时开始,Spring 这个词开始频繁地出现在 Java 服务端开发者的日常工作中,很多 Java 开发者从工作的第一天开始就在使用 Spring Framework,甚至有人调侃“不会 Spring 都不好意思自称是个 Java 开发者”。 之所以出现这种局面,源于 Spring 是一个极为优秀的一站式集成框架

    2023年04月19日
    浏览(60)
  • charles证书安装,一次性说明白

    windows上安装好charles后,需要给软件安装证书。 1、点击help - SSL proxying,选择第二个install Charles Root Certificate证书安装   2、如果以前安装过证书,但是过期了(有效期一般1年),证书界面会显示过期字样,此时就要先点击一下Reset Charles Root Certificate,然后再点击第一步中的

    2024年02月05日
    浏览(107)
  • 如何一次性启动多个SpringBoot项目

    在做微服务这块的架构设计的时候,当微服务数量越来越多的时候,本地启动各个服务的时候,可能得手动启动每个启动类。这样就很麻烦,因此记录一下如何在 idea 里面一键启动所有的项目。 比如我项目里面有5个微服务:那么就对应了5个启动类。 1.项目右上角编辑: 2.点

    2024年02月16日
    浏览(67)
  • uniapp上传图片、一次性上传多张图片

    uniapp官方文档 上传多张图片 上传单张

    2024年02月12日
    浏览(65)
  • Anonymous GitHub 代码一次性全下载

    参考: https://github.com/kynehc/clone_anonymous_github https://blog.csdn.net/Fufffffffff/article/details/133213777 1、将网址( https://anonymous.4open.science/r/E34CYRW-17E7/ )改为自己要下载的代码地址,如图所示,“ / ” 也要保留 2、 savepath 为下载文件的保存路径 3、cd到 download.py 文件的目录下,再执行下

    2024年04月16日
    浏览(55)
  • Kafka核心原理之精准一次性投递

    在Kafka中,精准一次性投递(Exactly Once)=至少投递一次(At Least Once)+幂等性。 至少投递一次(At Least Once):将生产端参数acks设置为-1(all),可以保证生产端发送到Broker的消息不会丢失,即:至少投递一次(At Least Once)。 幂等性: 幂等生产者幂保证单分区单会话内精准一

    2024年04月25日
    浏览(48)
  • 一次性搞懂什么是AIGC!

    你知道什么是AIGC吗?不知道?没关系,我来告诉你。AIGC就是人工智能生成内容(Artificial Intelligence Generative Content),也就是让AI自己动手创作各种各样的内容,比如图片、视频、音乐、文字等等。听起来很酷吧?那么,AIGC是怎么做到的呢?下面,我就用最简单的语言,给你

    2024年02月06日
    浏览(68)
  • Git仓库实现:一次性提交多个文件

    首先是建立服务器与仓库的连接,不会操作的小伙伴可以看这一篇文章,链接: Git仓库 保姆级教程 选择文件夹,使用git clone上传的仓库,点击进去 输入命令行: git commit -m \\\" \\\" ,双引号一般填入描述或者版本信息,但是若要提交多个文件,则写入 \\\"add more files\\\" 有问题欢迎随时

    2024年02月12日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包