如何在服务器上克隆、pull、push GitHub私有项目

诸神缄默不语-个人优快云博文目录

情况是这样的,我直接用git clone命令后,会提示让我输入GitHub账号密码,我输入后它还是显示克隆失败,并显示:

Cloning into 'folder_name'...
Username for 'https://github.com': user_name
Password for 'https://user_name@github.com': 
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/user_name/folder_name.git/'

也就是说现在不支持仅用账号密码来克隆GitHub项目了,解决方案是在输入密码时改为输入personal access token。获取personal access token的方式:

  1. 进入https://github.com/settings/personal-access-tokens/new
  2. 创建personal access token:在这里插入图片描述选择项目范围在这里插入图片描述接下来选择操作范围,我就选了能commit、pull request之类的功能,因为感觉也不需要别的功能。
  3. 生成personal access token后点击这个图标即可复制:在这里插入图片描述

在这里插入图片描述

要将 GitHub 上的项目克隆服务器,通常可以通过以下几种方式实现,具体取决于你的服务器环境和自动化需求。 ### 1. 直接在服务器上使用 `git clone` 这是最基础也是最常见的方式,适用于大多数 Linux 服务器环境。 1. 登录到你的服务器。 2. 安装 Git(如果尚未安装): ```bash sudo apt-get update sudo apt-get install git ``` 3. 在目标目录中执行克隆命令: ```bash git clone https://github.com/username/repository.git ``` 如果项目私有的,建议使用 SSH 方式克隆: ```bash git clone git@github.com:username/repository.git ``` ### 2. 使用 SSH 密钥认证 如果你要克隆的仓库是私有仓库,你需要在服务器上配置 SSH 密钥。 1. 在服务器上生成 SSH 密钥: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 2. 将生成的公钥(`~/.ssh/id_rsa.pub`)添加到 GitHub 账户的 SSH 密钥设置中。 3. 测试 SSH 连接: ```bash ssh -T git@github.com ``` 4. 成功后即可使用 `git clone` 命令克隆私有仓库。 ### 3. 使用 CI/CD 工具实现自动化部署 你可以使用 GitHub Actions 等 CI/CD 工具将代码自动部署到服务器。以下是一个使用 GitHub Actions 部署到远程服务器的示例工作流: ```yaml name: Deploy to Server on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Set up SSH Agent uses: webfactory/ssh-agent@v0.7.0 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Deploy via SSH run: | ssh -o StrictHostKeyChecking=no ${{ secrets.USERNAME }}@${{ secrets.SERVER_IP }} "cd /path/to/project && git pull origin main" ``` 在 GitHub 仓库的 Secrets 中配置好服务器的 SSH 私钥、用户名和 IP 地址,即可实现自动部署。 ### 4. 使用 `rsync` 同步文件 如果你希望将构建好的文件同步到服务器,可以结合 SSH 和 `rsync` 命令实现: ```bash rsync -av -e "ssh -p 22" --delete public/ user@server_ip:/path/to/remote/directory ``` 你可以在 GitHub Actions 中结合 `rsync` 实现更灵活的部署策略,如引用 [^4] 所示。 ### 5. 使用 Webhook 实现手动触发部署 你也可以配置 GitHub Webhook,在每次推送代码后触发服务器上的部署脚本。 1. 在服务器上创建一个接收 Webhook 的脚本,例如使用 Python 的 Flask 框架: ```python from flask import Flask, request import subprocess app = Flask(__name__) @app.route('/webhook', methods=['POST']) def webhook(): repo_path = '/path/to/your/repo' subprocess.run(['git', 'pull', 'origin', 'main'], cwd=repo_path) return 'OK', 200 if __name__ == '__main__': app.run(port=8000) ``` 2. 在 GitHub 仓库的 Settings > Webhooks 中添加一个新的 Webhook,指向你的服务器地址,例如:`http://your_server_ip:8000/webhook`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸神缄默不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值