疯狂吐槽,咱也不知道为什么,原来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.email "XXX"git config --global user.name "XXX"
1
2
3、切换密码
$ git config --global user.password "XXXX"
1
这时出现了一个问题,报错如下:
bash: !@@20: event not found
经过查询相关资料,该问题的原因是:输入的命令中间包含 !,叹号,不能组成命令, 应该将 !转义,加上“\”反转意符号即可解决,其他shell命令出现类似问题可以同样的方式解决。
经过以上方式,成功了。
验证是否修改成功
git config --list
1
3、上传项目
切换到需要上传的项目所在路径下,重新打开gitBash
使用GitLab官网上的操作步骤进行操作
git config --global user.name "XXX" git config --global user.email "XX@" 创建新版本库 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 masterGit 全局设置
操作如下:
在执行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 上传的文件 出现了上面的错误,需要下面进行修改:
2 git add . (添加该目录下所有文件) 3 git push -u origin master (这时候提交就没问题了)1 git rm -r -f --cached ./ (删除缓存)
改了没用。
通过查询资料2,发现是:
需要加一个配置,因为路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题
解决方法:
git config --global core.autocrlf false
就可以解决了。
然后在运行"git push -u origin master"时出现如下问题::
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'http://172.16.3XXXX"
发现是用户名输入错误的问题,此处输入的不是在GitLab上显示的昵称,而是在控制面板内配置的登陆用的用户名。
然后按照上述贴出的步骤操作,上传成功。
上传项目代码
在一些系统上线之前,总需要后台定时执行一些事情。这个时候就需要定时任务来做这件事情。
多线程的目的是:使同一个定时任务模块的两个不同的定时任务业务不互相影响。在SpringBoot中集成了定时任务的简单配置
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.ponent; import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * @program: travel-res-service * @description: 定时任务 * @author: Andrea * @create: -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()); } }package com.resource.task;
—END—
关注作者微信公众号 —《Java架构师联盟》
了解更多java后端架构知识以及最新面试宝典
你点的每个好看,我都认真当成了
看完本文记得给作者点赞+在看哦~~~大家的支持,是作者远远不断出文的动力。
git bash here创建项目无法选择m_由GitLab用户切换引发的某程序员“暴动” 怒而开源项目源码...