木灵鱼儿
阅读:2611
shell脚本 一键git拉取多个项目代码
由于一个项目用到了三个git仓库,然后vscode并不能打开一个目录扫描所有的git仓库,而且多个的时候更加不好判断,哪些文件是哪个仓库的,所以,每次都是每个仓库单独用vscode打开,然后手动拉取,太痛苦了。
当你有3个项目,你就需要拉取9次,而且很多时候是重复,比如一些通用的代码仓库。
但是,目前哪个git管理的软件都好难用啊,所以还是写个脚本好了。
使用前的要求:
由于脚本运行时用的git pull
,所以如果你需要拉取项目中某个分支,请预先将项目分支调整好,然后就是git账号了,用户密码,全局用户名邮箱这些,基础操作。
然后就是配置项目路径:
假设我们a目录下有b、c、d三个项目,那么我们脚本就放在a目录下即可。
代码中有一段路径数组,一行为一个项目路径,无需逗号分隔,然后你自己写好路径就行了,
如:
## 需要拉取的项目路径
project_pathArr=(
"a"
"b"
"c"
)
路径开头不需要加/
路径符号,我在后面代码自动补充了开头的路径符号。
准备完成后将以下代码复制另存为xxx.sh
文件,然后运行即可。
注意:windows的powerShell好像无法直接运行脚本,我都是用git Bash运行的。
## 当前脚本文件所在路径
current_path=$(cd $(dirname $0); pwd)
## 需要拉取的项目路径
project_pathArr=(
"a"
"b"
"c"
)
## 开始拉取
for ((i=0;i<${#project_pathArr[*]};i++))
do
project_path=${current_path}/${project_pathArr[i]}
cd $project_path
git pull
echo -e "\033[32m拉取项目:${project_pathArr[i]} 成功\033[0m";
done
echo "5秒后将自动退出本脚本:"
for i in $(seq 5 -1 1)
do
echo -e $i;sleep 1
done
exit
祝你使用愉快!
效果图
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。
相关推荐
github重新设置ssh rsa key
前言最近遇到这么一个问题,我之前在搞ssh远程的时候,把之前生成的rsa令牌全给删除了,这就导致之前在github上绑定的key无法继续使用了,我无法再推送数据到github仓库了。解决办法就是重新生成一个令牌并绑定,期间还需要在首次的时候使用命令拉取一下,并输入yes才行。教程生成rsassh-keygen -t ed25519 -C "your_email@example.com"照着官方的教程就行了,此时window用户,他会在:本地c盘 -> 用户 -> 你的用户名 -> .ssh目录下,生成名为ed25519的令牌,它有两个文件:id_ed...

不同平台的回车处理 warning Delete `␍` prettier prettier
windows和linux平台,他们之间的换行符是不一样的,mac之前也不一样,后来和linux保持统一。windows是CRLF,也就是\r\n;linux是LF,也就是\n;两个平台之间换行符不一样,在有代码规范要求的情况下,很容易就会触发报错,如eslint的报错:warning Delete ␍ prettier/prettier解决办法假设我们代码规范要求换行是LF;那我们需要进行以下配置:git提交时自动格式化换行符这个做法是防止有人本地编辑的时候没有改为LF的换行方式然后上传,导致别人拉库下来会运行报错。在项目根目录创建:.gitattributes 文件文件内写入:# L...

git配置http、socks5代理
# 以下使用socks5代理 git config --global http.proxy socks5://127.0.0.1:1086 git config --global https.proxy socks5://127.0.0.1:1086 # 以下使用http代理 git config --global http.proxy http://127.0.0.1:1087 git config --global https.proxy https://127.0.0.1:1087 # 取消代理 git config --global --unset http.proxy gi...
git 删除远程分支某个文件或者某个文件夹
经常遇到这种情况,不小心上传了某个文件,这个文件是不需要上传到远程仓库,很头疼。本地的又不想删除,想着直接删除远程,百度半天都没找到好用的,最后问了下群友,给了个教程链接,我研究了下,大概明白怎么回事。首先为了防止本地的再次被上传,需要配置本地白名单,白名单的话,以vue项目为例子,在项目根目录有一个.gitignore文件,没有就自己创建一个,然后里面直接填目录或者文件名就行了。/dist /xxx.js本地白名单之后,以后git上传都不会上传该文件。现在我们要处理远程仓库的文件首先我们需要删除git在缓存中的文件git rm --cached config.js //删除conf...
vscode 无法推送refs到远端。您可以试着运行“拉取”’功能,整合您的更改
这个问题出现的场景常常是这样:有人已经上传了一份文件a,自己也修改了文件a,准备推送时发现冲突了,然后,关闭了合并冲突的操作,哦吼,完了,拉也拉取不了,推送也推不了,放弃本次提交也不行。这种情况在文件多的情况常有发生,如果修改量不大的情况下,我建议直接放弃本地所有修改使用命令:git reset --hard origin/master如果你的文件是最新有效的,可以尝试先把本地的文件复制出来,在用上面的代码放弃,然后拉取完毕后再推送。
git永久删除文件或文件夹并删除历史记录同步到远程仓库
删除文件需要注意一点,就是你当前的项目,没有任何文件在待提交上,或者暂存区,有的话如果不重要你可以取消掉,或者先提交一次。让git这两个区域空下来。如果没有清空使用删除,会提示如下代码:Cannot rewrite branches: You have unstaged changes.永久删除文件清空暂存和提交区,然后输入以下命令:git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch password.txt' --prune-empty --tag-name-filter cat -- -...