疯狂吐槽,咱也不知道为什么,原来GitHub用的好好的,我自己的项目也会上传到自己的码云,但是,谁想到,今天老大跟我说,让我把一个项目代码传到gitlab上,哎,又要切换账户了,所以,今天分享两部分内容
一个GitLab如何在本机切换账户配置并上传项目
二是项目源码开放,SpringBoot搭建多线程定时任务
GitLab如何在本机切换账户配置并上传项目
1、进入控制面板,新增git账户,配置用户名及密码
2、在gitBash上切换账户
3、上传项目
之前已经在本机创建了一个Vue项目,同事给了我一个GitLab账号叫我使用他的账号上传一下项目。但是我本机的配置是我自己的git账号,那么如何切换呢?在此将相关操作罗列如下:
1、进入控制面板,新增git账户,配置用户名及密码
输入用户名及密码,添加一条凭据
2、在gitBash上切换账户
在项目中先删除无用的配置(.idea或.git等配置)保留需要上传的项目文件输入指令“git init”初始化git项目,在当前文件夹下创建了一个.git文件。但是这步我发现了一个问题:上面显示的还是对我之前的git账户进行操作
针对上述问题,进行如下尝试来切换账户:
切换用户名、邮箱
git config --global user.name "XXX"
git config --global user.email "XXX"1
2
3、切换密码
$ git config --global user.password "XXXX"1
这时出现了一个问题,报错如下:
bash: !@@202003: event not found
经过查询相关资料,该问题的原因是:输入的命令中间包含 !,叹号,不能组成命令, 应该将 !转义,加上“\”反转意符号即可解决,其他shell命令出现类似问题可以同样的方式解决。经过以上方式,成功了。
验证是否修改成功
git config --list1
3、上传项目
切换到需要上传的项目所在路径下,重新打开gitBash使用GitLab官网上的操作步骤进行操作
Git 全局设置
git config --global user.name "XXX"
git config --global user.email "XX@XX.com"
创建新版本库
git clone http://172.16.XX.XXX/XX/XX-website.git
cd e-apo-website
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
已存在的文件夹(我目前采用的情况)
cd existing_folder
1>初始化
git init
2>创建一个本地远程链接
git remote add origin http://172.16.XX.XXX/XX/XX-website.git
3>添加到本地
git add .
4>设置注释
git commit -m "Initial commit"
5>推到远程
git push -u origin master
操作如下:
在执行add的时候出现如下错误:
warning: LF will be replaced by CRLF in babel.config.js.The file will have its original line endings in your working directory.
通过查询资料1,发现原因是:
在使用git提交的时候出现The file will have its original line endings in your working directory.错误,后来发现 自己再提交的时候忘记输入git add 上传的文件 出现了上面的错误,需要下面进行修改:
1 git rm -r -f --cached ./ (删除缓存)
2 git add . (添加该目录下所有文件)
3 git push -u origin master (这时候提交就没问题了)
改了没用。通过查询资料2,发现是:
需要加一个配置,因为路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题
解决方法:git config --global core.autocrlf false
就可以解决了。
然后在运行"git push -u origin master"时出现如下问题::
remote: HTTP Basic: Access deniedfatal: Authentication failed for 'http://172.16.3XXXX"
发现是用户名输入错误的问题,此处输入的不是在GitLab上显示的昵称,而是在控制面板内配置的登陆用的用户名。
然后按照上述贴出的步骤操作,上传成功。
上传项目代码
在一些系统上线之前,总需要后台定时执行一些事情。这个时候就需要定时任务来做这件事情。 多线程的目的是:使同一个定时任务模块的两个不同的定时任务业务不互相影响。在SpringBoot中集成了定时任务的简单配置
package com.resource.task;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* @program: travel-res-service
* @description: 定时任务
* @author: Andrea
* @create: 2019-11-15 14:54
**/
//@Component
@Configuration//标记启动类,兼备Component效果
@EnableScheduling//开启定时任务
@EnableAsync//多线程标记(两个定时任务不互相影响)
public class CornJob {
//或直接指定时间间隔,例如:5秒
//@Scheduled(fixedRate=5000)
//3.添加定时任务
@Async
@Scheduled(cron = "0 50 2 * * ?")//每天2:50分执行
public void cleanSegDatas() {
boolean b = //定时执行业务1的返回结果
if (b){
System.out.println("执行业务1完成");
}
System.err.println("执行执行业务1定时任务时间: " + LocalDateTime.now());
}
@Async
@Scheduled(cron = "0 0 3 * * ?")//每天3:00分执行
public void cleanTraRouteDatas() {
boolean b = //定时执行业务2的返回结果
if (b){
System.out.println("业务2完成");
}
System.err.println("执行业务2定时任务时间: " + LocalDateTime.now());
}
}
—
END—
关注作者微信公众号 —《Java架构师联盟》
了解更多java后端架构知识以及最新面试宝典
你点的每个好看,我都认真当成了
看完本文记得给作者点赞+在看哦~~~大家的支持,是作者远远不断出文的动力。