git一键push的脚本

借着ai帮助写了以下脚本,希望能运行当前脚本后,直接完成add/commit/push 3条命令,

适用于频繁需要git push的情形,

如果写得有错误,请各位大佬指正,

1,使用的ssh模式进行push,https有的时候连不上git

2,需要提前添加本机ssh key到GitHub仓库

3,"# Check write permission" 是检查是否具有写权限,如果你的账户在当前目录又写权限,这一段可以删除

4,可以在运行此脚本时,后面添加git commit内容,如果直接运行脚本(即脚本后不加任何内容),则commit内容是当前时间戳

5,xxx/yyy.git 的解释

bash 复制代码
# Ensure remote is SSHsudo git remote set-url origin [url=mailto:git@github.com]git@github.com[/url]:xxx/yyy.git
echo "Using SSH remote..."

这一段的"[url=mailto:git@github.com]git@github.com[/url]:xxx/yyy.git"内容,是你需要push的仓库,xxx是GitHub用户名,yyy是仓库名

6 如下是脚本全文:

bash 复制代码
#!/bin/bash
#Git auto commit & push (SSH) with write permission check
REPO_DIR=$(pwd)
GIT_DIR="$REPO_DIR/.git"

# Check write permission
if [ ! -w "$GIT_DIR" ]; then
    echo "Error: You do not have write permission for the Git repository."
    echo "Run: sudo chown -R $(whoami) $REPO_DIR"
    exit 1
fi

# Check for changes (including untracked files)
#if sudo git diff --cached --quiet && sudo git diff --quiet; then
if [ -z "$(sudo git status --porcelain)" ]; then
    echo "No changes detected, skipping commit."
else
    if [ $# -eq 0 ]; then
        msg="Auto commit on $(date +%Y-%m-%d %H:%M:%S)"
    else
        msg="$*"
    fi
    echo "Adding changes..."
    sudo git add .
    echo "Committing changes..."
    sudo git commit -m "$msg"
fi

# Get current branch
branch=$(sudo git rev-parse --abbrev-ref HEAD)
echo "Current branch: $branch"

# Ensure remote is SSH
sudo git remote set-url origin [url=mailto:git@github.com]git@github.com[/url]:xxx/yyy.git
echo "Using SSH remote..."

# Test SSH connection
ssh -T [url=mailto:git@github.com]git@github.com[/url] 2>&1 | grep -q "successfully authenticated"
if [ $? -ne 0 ]; then
    echo "SSH not working. Check your SSH key."
    exit 1
fi

# Push
sudo git push origin "$branch"

if [ $? -eq 0 ]; then
    echo "Push successful!"
else
    echo "Push failed. Check SSH key or network."
fi
相关推荐
muddjsv1 天前
Git 代码同步与协作的核心命令全解析
git
历程里程碑1 天前
2. Git版本回退全攻略:轻松掌握代码时光机
大数据·c++·git·elasticsearch·搜索引擎·github·全文检索
果然_1 天前
为什么你的 PR 总是多出一堆奇怪的 commit?90% 的人都踩过这个 Git 坑
前端·git
yyuuuzz1 天前
独立站搭建:从入门到避坑实战
前端·git·github
splage1 天前
Nginx 反向代理之upstream模块以及完整配置反向代理示例
git·nginx·github
阿崽meitoufa1 天前
hermes-agent安装到本地 Git方法
git·hermes·hermes-agent
云攀登者-望正茂1 天前
特性分支合并develop引发的污染问题
git
就叫年华吧丶1 天前
Git Bash、CMD 与 PowerShell 的区别详解
linux·git·命令行·powershell·cmd·gitbash
白玉cfc2 天前
Git提交规范
git·github
电化学仪器白超2 天前
小乌龟Git全程图形化操作指南:嵌入式本地版本管理与Gitee私有云备份实战
git·python·单片机·嵌入式硬件·物联网·gitee·自动化