Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
install
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
LaunchDeploy
install
Commits
7d3872c4
提交
7d3872c4
authored
11月 01, 2025
作者:
Andy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
23
上级
8ee36d9e
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
61 行增加
和
81 行删除
+61
-81
1031_Game_JinSha.sh
1031_Game_JinSha.sh
+61
-81
没有找到文件。
1031_Game_JinSha.sh
浏览文件 @
7d3872c4
...
...
@@ -138,91 +138,89 @@ check_install_PM2() {
echo
"🎉 Node.js & PM2 环境准备完成!"
}
# 更新分支函数(带更新前恢复)
update_branch
()
{
local
repo_url
=
$1
local
branch
=
$2
local
target_dir
=
$3
# ========== 克隆函数 ==========
clone_branch
()
{
local
REPO_URL
=
"
$1
"
local
BRANCH
=
"
$2
"
local
TARGET_DIR
=
"
$3
"
local
MAX_RETRY
=
"
${
4
:-
3
}
"
echo
"Updating branch '
$branch
' in '
$target_dir
'..."
cd
"
$target_dir
"
||
return
1
echo
"⬇️ 克隆分支:
$BRANCH
→
$TARGET_DIR
"
# 切换到目标分支
git checkout
"
$branch
"
>
/dev/null 2>&1
RETRY
=
0
until
git clone
--branch
"
$BRANCH
"
--depth
=
1
"
$REPO_URL
"
"
$TARGET_DIR
"
;
do
RETRY
=
$((
RETRY
+
1
))
if
[
"
$RETRY
"
-ge
"
$MAX_RETRY
"
]
;
then
echo_content
"red"
"❌ 克隆分支
$BRANCH
失败,多次重试无效。"
return
1
fi
echo
"重试克隆 (
$RETRY
/
$MAX_RETRY
)..."
sleep
2
done
echo_content
"green"
"✅ 分支
$BRANCH
克隆完成。"
}
# 更新前恢复到干净状态
echo
"🔄 Resetting local changes on '
$branch
'..."
git reset
--hard
HEAD
>
/dev/null 2>&1
git clean
-fd
>
/dev/null 2>&1
# ========== 更新函数 ==========
update_branch
()
{
local
REPO_URL
=
"
$1
"
local
BRANCH
=
"
$2
"
local
TARGET_DIR
=
"
$3
"
# 获取远程最新提交
git fetch origin
"
$branch
"
if
[
!
-d
"
$TARGET_DIR
/.git"
]
;
then
echo_content
"red"
"⚠️ 目录
$TARGET_DIR
不是 Git 仓库,无法更新。"
return
1
fi
local_commit
=
$(
git rev-parse
"
$branch
"
)
remote_commit
=
$(
git rev-parse
"origin/
$branch
"
)
echo
"🔄 更新分支:
$BRANCH
→
$TARGET_DIR
"
cd
"
$TARGET_DIR
"
||
return
1
if
[
"
$local_commit
"
=
"
$remote_commit
"
]
;
then
echo
"✅ Branch '
$branch
' is up-to-date."
else
echo
"⬇️ Branch '
$branch
' has updates. Pulling changes..."
RETRY
=
0
until
git pull origin
"
$branch
"
;
do
RETRY
=
$((
RETRY
+
1
))
if
[
"
$RETRY
"
-ge
"
$MAX_RETRY
"
]
;
then
echo
"❌ Failed to update '
$branch
' after
$MAX_RETRY
attempts."
break
fi
echo
"Retrying pull for '
$branch
' (
$RETRY
/
$MAX_RETRY
)..."
sleep
2
done
fi
# 允许被删除的远程分支同步
git fetch origin
"
$BRANCH
"
--depth
=
1
git checkout
"
$BRANCH
"
||
git checkout
-b
"
$BRANCH
"
origin/
"
$BRANCH
"
git pull origin
"
$BRANCH
"
cd
-
>
/dev/null
echo_content
"green"
"✅ 分支
$BRANCH
更新完成。"
}
# 克隆分支函数
clone_branch
()
{
local
repo_url
=
$1
local
branch
=
$2
local
target_dir
=
$3
echo
"Cloning branch '
$branch
' into '
$target_dir
'..."
RETRY
=
0
until
git clone
--branch
"
$branch
"
--single-branch
"
$repo_url
"
"
$target_dir
"
;
do
RETRY
=
$((
RETRY
+
1
))
if
[
"
$RETRY
"
-ge
"
$MAX_RETRY
"
]
;
then
echo
"❌ Failed to clone '
$branch
' after
$MAX_RETRY
attempts."
break
fi
echo
"Retrying clone for '
$branch
' (
$RETRY
/
$MAX_RETRY
)..."
sleep
2
done
}
Git_Token
=
QFF_7BNyjHsq_Zvfsfut
# 私有仓库需要填 Token,公有仓库留空即可
# ========== 主函数:管理全部分支 ==========
fetch_git_svr
()
{
echo_content
"green"
"📦 获取服务器端分支(支持 Token + git pull)..."
REPO_URL
=
"git@git.wkwork.xyz:LaunchDemo/0000_BD_Demo_Game_Svr.git"
# --- 配置区 ---
Git_User
=
"LaunchDeploy"
# GitHub 用户名或组织名
Git_Repo_Name
=
"wk_gameplat_svr"
BASE_DIR
=
"./svr"
MAX_RETRY
=
3
# 最大重试次数
BRANCHES
=(
"docker-base"
"docker-game"
"docker-proxy"
"bdgame"
GitHub_Repo_Branchs
=(
"1031_Game_JinSha"
)
# 主循环
for
BRANCH
in
"
${
BRANCHES
[@]
}
"
;
do
TARGET_DIR
=
"
$BASE_DIR
/
$BRANCH
"
# Token HTTPS 地址
Repo_Url
=
"https://
${
Git_Token
}
@git.wkwork.xyz/
${
Git_User
}
/
${
Git_Repo_Name
}
.git"
mkdir
-p
"
$BASE_DIR
"
for
Branch
in
"
${
GitHub_Repo_Branchs
[@]
}
"
;
do
TARGET_DIR
=
"
$BASE_DIR
/
$Branch
"
echo_content
"skyBlue"
"🌀 分支:
$Branch
"
if
[
-d
"
$TARGET_DIR
/.git"
]
;
then
update_branch
"
$R
EPO_URL
"
"
$BRANCH
"
"
$TARGET_DIR
"
update_branch
"
$R
epo_Url
"
"
$Branch
"
"
$TARGET_DIR
"
else
clone_branch
"
$R
EPO_URL
"
"
$BRANCH
"
"
$TARGET_DIR
"
clone_branch
"
$R
epo_Url
"
"
$Branch
"
"
$TARGET_DIR
"
fi
done
echo_content
"green"
"🎉 所有 Svr 分支同步完成!"
}
fetch_git_web
()
{
REPO_URL
=
"git@git.wkwork.xyz:LaunchDemo/0000_BD_Demo_Game_Web.git"
...
...
@@ -393,8 +391,7 @@ main() {
echo_content
"skyBlue"
"============================"
echo_content
"skyBlue"
" 主菜单 "
echo_content
"skyBlue"
"============================"
echo_content
"skyBlue"
"1) 检查环境"
echo_content
"skyBlue"
"2) 测试 Git 账户"
echo_content
"skyBlue"
"3) 获取 Svr"
echo_content
"skyBlue"
"4) 获取 Web"
echo_content
"skyBlue"
"5) 运行 Docker"
...
...
@@ -404,21 +401,6 @@ main() {
read
-rp
"请输入选项 [0-6]: "
choice
case
$choice
in
1
)
check_install_dependencies
check_install_NodeJs
check_install_PM2
pause
;;
2
)
if
check_git_account
;
then
echo
"✅ SSH 连接正常"
else
echo
"❌ SSH 连接失败,请检查 SSH Key 或 Git 账户配置"
exit
1
fi
pause
;;
3
)
fetch_git_svr
pause
...
...
@@ -449,8 +431,6 @@ main() {
# ======= 安装默认工具 =======
check_install_dependencies
# check_install_NodeJs
# check_install_PM2
# ======= 启动程序 =======
#
main
main
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论