当前位置:   article > 正文

Github手动推送和自动推送_如何推送github

如何推送github

手动推送

你可以按照以下步骤手动将本地仓库的更改推送到远程GitHub仓库,使用个人访问令牌进行身份验证:

1. 创建个人访问令牌

如果还没有创建个人访问令牌,可以按照以下步骤创建:

  1. 登录到你的GitHub账户。
  2. 进入 Settings 页面。
  3. 在左侧菜单中选择 Developer settings
  4. 选择 Personal access tokens,然后点击 Generate new token
  5. 设置令牌的名称和权限,至少需要 repo 权限。
  6. 点击 Generate token,并复制生成的令牌。

2. 在终端中配置Git身份验证

在终端中执行以下命令,使用生成的令牌进行身份验证:

# 进入本地仓库目录
cd /path/to/your/local/repo

# 添加所有更改
git add .

# 提交更改
git commit -m "Your commit message"

# 推送到远程仓库,使用令牌替代密码
git push https://your_personal_access_token@github.com/your_username/your_repo.git
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

确保替换以下内容:

  • your_personal_access_token:你的个人访问令牌。
  • your_username:你的GitHub用户名。
  • your_repo:你的GitHub仓库名。
  • /path/to/your/local/repo:你的本地仓库路径。
  • "Your commit message":你的提交消息。

3. 示例命令

假设你的个人访问令牌是ghp_abcd1234,GitHub用户名是fucyuan,仓库名是Drone-Papers,本地仓库路径是/home/user/projects/Drone-Papers,你可以按照以下示例操作:

# 进入本地仓库目录
cd /home/user/projects/Drone-Papers

# 添加所有更改
git add .

# 提交更改
git commit -m "Automated commit"

# 推送到远程仓库
git push https://ghp_abcd1234@github.com/fucyuan/Drone-Papers.git
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

这样,你就可以手动将本地仓库的更改推送到远程GitHub仓库了。每次需要更新时,重复这些步骤即可。

4.如何不用输入个人访问令牌

手动更新远程URL以包含令牌

你也可以手动更新Git远程URL以包含个人访问令牌。这样可以确保每次推送时都使用正确的凭据:

  1. 获取当前远程URL

    git remote get-url origin
    
    • 1
  2. 设置包含令牌的远程URL

    使用以下命令更新远程URL,将 <your_personal_access_token> 替换为你的实际令牌:

    git remote set-url origin https://<your_personal_access_token>@github.com/fucyuan/Drone-Papers.git
    
    • 1

例如,如果你的个人访问令牌是 ghp_abcd1234

git remote set-url origin https://ghp_abcd1234@github.com/fucyuan/Drone-Papers.git
  • 1
再次尝试推送

最后,如果一切顺利,你应该能够成功推送代码而不再提示输入用户名和密码。

自动推送

我们可以编写一个Shell脚本来自动化这个过程。以下是一个示例脚本,你可以根据需要进行修改:

1. 编写Shell脚本

创建一个Shell脚本,例如 auto_push.sh,并添加以下内容:

#!/bin/bash

# 本地仓库路径
LOCAL_REPO_PATH="/home/user/projects/Drone-Papers"

# 提交消息
COMMIT_MESSAGE="Automated commit"

# 进入本地仓库目录
cd $LOCAL_REPO_PATH || exit

# 检查是否有未提交的更改
if git diff-index --quiet HEAD --; then
    echo "No changes to commit"
else
    # 添加所有更改
    git add .

    # 提交更改
    git commit -m "$COMMIT_MESSAGE"

    # 推送到远程仓库
    git push origin main
fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

2. 赋予脚本执行权限

赋予脚本执行权限:

chmod +x auto_push.sh
  • 1

3. 配置Crontab定时任务

使用Crontab配置定时任务,以便自动运行这个脚本。例如,每天凌晨2点运行一次脚本:

crontab -e
  • 1

添加以下行到Crontab文件中:

0 2 * * * /path/to/auto_push.sh
  • 1

确保替换 /path/to/auto_push.sh 为你的脚本的实际路径。

4. 完整的Shell脚本示例

以下是完整的脚本示例:

#!/bin/bash

# 本地仓库路径
LOCAL_REPO_PATH="/home/user/projects/Drone-Papers"

# 提交消息
COMMIT_MESSAGE="Automated commit"

# 进入本地仓库目录
cd $LOCAL_REPO_PATH || exit

# 检查是否有未提交的更改
if git diff-index --quiet HEAD --; then
    echo "No changes to commit"
else
    echo "Changes detected, pushing to remote repository..."
    # 添加所有更改
    git add .

    # 提交更改
    git commit -m "$COMMIT_MESSAGE"

    # 推送到远程仓库
    git push origin main
fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

5. 测试脚本

在Crontab中添加任务之前,可以先手动运行脚本以确保其正常工作:

./auto_push.sh
  • 1

如果没有更改,脚本将输出 “No changes to commit” 并退出。如果有更改,脚本将自动将本地仓库的更改提交并推送到远程GitHub仓库。

通过这些步骤,你可以实现仅在有更新的情况下才推送本地仓库更改到远程GitHub仓库。

补充说明

当你运行 crontab -e 时,系统会提示你选择一个文本编辑器来编辑Crontab文件。以下是选择编辑器并添加定时任务的步骤:

1. 选择一个文本编辑器

你可以根据自己的偏好选择一个文本编辑器。以下是三个选项的解释:

  1. /bin/nano:一个易于使用的命令行文本编辑器,适合新手。
  2. /usr/bin/code:VSCode编辑器,如果你安装了VSCode并希望在图形界面中编辑。
  3. /bin/ed:一个简单的行编辑器,通常不推荐使用。

推荐选择 nano,因为它是最简单的:

1. /bin/nano        <---- easiest
  • 1

输入 1 然后按 Enter。

2. 添加定时任务

打开Crontab编辑器后,添加以下行以每天凌晨2点运行你的脚本:

0 2 * * * /path/to/auto_push.sh
  • 1

确保替换 /path/to/auto_push.sh 为你的脚本的实际路径。

3. 保存并退出编辑器

如果你使用的是 nano

  1. 输入定时任务后,按 Ctrl + X 组合键退出编辑器。
  2. 然后按 Y 键确认保存更改。
  3. 最后按 Enter 键确认文件名并保存。

完整示例

假设你的脚本路径为 /home/user/auto_push.sh,Crontab配置如下:

0 2 * * * /home/user/auto_push.sh
  • 1

检查Crontab任务

你可以使用以下命令查看当前的Crontab任务,确保任务已正确添加:

crontab -l
  • 1

这将列出所有已配置的Crontab任务。

通过这些步骤,你将能够设置一个定时任务,以便在每天凌晨2点自动运行你的脚本。

问题解决

如果系统没有提示你选择编辑器,或者你在使用 crontab -e 时遇到问题,我们可以通过手动指定编辑器来打开和编辑用户Crontab文件。以下是详细步骤:

手动指定编辑器

  1. 指定编辑器并打开Crontab编辑器

    你可以通过设置环境变量 EDITORVISUAL 来指定编辑器。以下是使用 nano 编辑器的示例:

    export EDITOR=nano
    crontab -e
    
    • 1
    • 2

    或者:

    export VISUAL=nano
    crontab -e
    
    • 1
    • 2
  2. 编辑Crontab文件

    添加你的Crontab任务:

    # 自动推送脚本
    0 2 * * * /home/fcy/auto_push.sh
    
    • 1
    • 2
  3. 保存并退出编辑器

    nano 中,按 Ctrl + X 组合键退出编辑器。然后按 Y 键确认保存更改,最后按 Enter 键确认文件名并保存。

  4. 验证Crontab任务

    使用以下命令查看当前用户的Crontab任务,确保任务已正确添加:

    crontab -l
    
    • 1

使用临时文件来编辑Crontab

如果仍然遇到问题,可以使用临时文件来编辑和加载Crontab任务:

  1. 创建一个新的Crontab文件

    在你的主目录下创建一个新的Crontab文件,例如 mycron

    nano ~/mycron
    
    • 1
  2. 添加任务到文件

    在文件中添加你的Crontab任务:

    0 2 * * * /home/fcy/auto_push.sh
    
    • 1
  3. 保存并退出编辑器

    Ctrl + X,然后按 Y 确认保存,最后按 Enter 确认文件名。

  4. 加载新的Crontab文件

    使用以下命令将 mycron 文件加载到Crontab中:

    crontab ~/mycron
    
    • 1
  5. 验证任务是否添加成功

    使用以下命令查看当前用户的Crontab任务:

    crontab -l
    
    • 1

示例操作流程

以下是完整的操作流程:

  1. 指定编辑器并打开Crontab编辑器

    export EDITOR=nano
    crontab -e
    
    • 1
    • 2
  2. 在编辑器中添加任务

    0 2 * * * /home/fcy/auto_push.sh
    
    • 1
  3. 保存并退出 nano

    • Ctrl + X
    • Y 确认保存。
    • Enter 确认文件名。
  4. 验证Crontab任务

    crontab -l
    
    • 1

通过这些步骤,你应该能够成功添加和查看Crontab任务。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/882943
推荐阅读
相关标签
  

闽ICP备14008679号