跳到主要内容

两台电脑使用github+pycharm同步开发


两台电脑使用github+pycharm同步开发

本文介绍如何在两台电脑之间通过 GitHub 和 PyCharm 实现项目的同步开发。


一、准备工作

1. 在两台电脑上安装必要工具

  • Git:下载并安装 Git。
  • PyCharm:下载并安装 PyCharm。
  • GitHub 账号:确保已经注册并拥有 GitHub 账号。

2. 配置 Git 环境

在两台电脑上分别配置 Git:

  1. 设置用户名和邮箱:
    git config --global user.name "你的用户名"
    git config --global user.email "你的邮箱"
  2. 生成 SSH 密钥:
    ssh-keygen -t ed25519 -C "你的邮箱"
    • 按提示生成密钥(存储在 ~/.ssh/id_ed25519)。
    • 使用以下命令查看并复制公钥内容:
      cat ~/.ssh/id_ed25519.pub
    • 登录 GitHub,进入 Settings > SSH and GPG keys,点击 New SSH key,将公钥粘贴并保存。
  3. 测试连接:
    ssh -T git@github.com
    如果返回:
    Hi <你的用户名>! You've successfully authenticated, but GitHub does not provide shell access.
    表示配置成功。

二、创建远程仓库并上传项目

1. 创建远程仓库

  1. 登录 GitHub,点击右上角的 + > New repository。
  2. 填写仓库名称(例如 my_project),选择 Public 或 Private,然后点击 Create repository。

2. 将本地项目上传到远程仓库

在已存在的项目目录中初始化 Git,并推送到远程仓库:

cd /path/to/your/project
git init  # 初始化
git add .  # 提交所有文件到暂存区
git commit -m "Initial commit"  # 提交到当前分支
git branch -M main # 将当前分支重命名为main,github默认分支为main
git remote add origin git@github.com:<你的用户名>/my_project.git  # 绑定远程仓库
git push -u origin main # 将 main 分支推送到远程仓库,并建立本地与远程分支的关联,添加 -u 参数后,本地的 main 分支会与远程的 main 分支关联起来。这样,后续执行 git pull 或 git push 时,不需要再指定分支名称

三、在两台电脑上同步项目

电脑 A 操作

  1. 克隆远程仓库: 如果电脑 A 尚未有项目代码:
    git clone git@github.com:<你的用户名>/my_project.git
    cd my_project
    如果电脑 A 已有代码并已推送到远程仓库,则跳过此步骤。
  2. 用 PyCharm 打开项目:
    • 打开 PyCharm,点击 File > Open,选择项目目录。

电脑 B 操作

  1. 克隆远程仓库: 在电脑 B 的终端中运行:
    git clone git@github.com:<你的用户名>/my_project.git
    cd my_project
  2. 用 PyCharm 打开项目:
    • 打开 PyCharm,点击 File > Open,选择项目目录。

四、日常开发流程

1. 在电脑 A 或 B 上修改代码

  1. 使用 PyCharm 编辑代码。
  2. 在终端或 PyCharm 的 Git 工具窗口中提交更改:
    git add .
    git commit -m "描述本次更改的内容"
    git push

2. 在另一台电脑同步代码

在另一台电脑上拉取最新代码:

git pull origin main

然后继续开发。


五、解决冲突

如果两台电脑同时修改了同一个文件并提交,可能会出现冲突。解决方法如下:

  1. 拉取代码时提示冲突:
    git pull origin main
    Git 会提示冲突的文件。
  2. 手动解决冲突: 打开冲突文件,按照以下格式解决冲突:
    <<<<<<< HEAD
    你的修改
    =======
    另一台电脑的修改
    >>>>>>> commit-hash
    修改为期望的代码并保存。
  3. 标记冲突已解决并提交:
    git add .
    git commit -m "解决冲突"
    git push

六、PyCharm 中内置 Git 工具的使用

  1. 提交代码:
    • 在 PyCharm 界面右上角,点击 Commit。
    • 勾选修改的文件,填写提交信息,然后点击 Commit 或 Commit and Push。
  2. 拉取代码:
    • 点击 Git > Pull,选择远程分支,点击 OK。
  3. 查看分支和日志:
    • 点击 Git > Log,查看提交历史和分支结构。

七、注意事项

  1. 保持代码同步:每次在另一台电脑开发前,先执行 git pull 拉取最新代码。
  2. 频繁提交:尽量将每次修改后的小更新提交到远程仓库,避免产生冲突。
  3. 多人协作时注意分支管理:可以为不同功能创建分支,完成后再合并到主分支。

八、分支管理

当开发新功能或进行实验时,可以使用分支来避免影响主分支。

1. 创建和切换分支

  • 创建新分支:
    git branch feature-branch
  • 切换到新分支:
    git checkout feature-branch
    或直接创建并切换:
    git checkout -b feature-branch

2. 合并分支

  • 切换到主分支:
    git checkout main
  • 合并新功能分支:
    git merge feature-branch

3. 删除分支

  • 删除本地分支:
    git branch -d feature-branch
  • 删除远程分支:
    git push origin --delete feature-branch

九、处理多人协作的冲突

如果你在两台电脑之外,还与其他人协作开发,可以通过以下方式优化工作流。

1. 定期拉取最新代码

在本地开发前,确保代码是最新的:

git pull origin main

2. 使用 rebase 整理提交历史

在同步远程分支时,你可以选择 rebase 方式,使提交历史更加整洁:

git pull --rebase origin main

3. 使用标签管理版本

当一个功能开发完成后,可以添加一个标签:

git tag -a v1.0 -m "Version 1.0 release"
git push origin v1.0

十、PyCharm 的一些高级 Git 功能

1. 可视化查看分支

  • 在 PyCharm 界面右下角,点击 Git 分支名称,可以查看和切换分支。
  • 打开 Git > Log,可以看到分支结构图和提交历史。

2. 解决冲突

当拉取代码遇到冲突时,PyCharm 提供了图形化工具:

  1. 点击 Merge Conflicts 提示框。
  2. 使用 PyCharm 的三栏界面,直观地合并冲突。
  3. 合并完成后,保存并提交。

3. 使用变基(Rebase)

  • 在 PyCharm 中,选择 VCS > Git > Rebase,可以直观地重新整理提交。

十一、优化开发体验

1. 配置 .gitignore

避免将不必要的文件推送到远程仓库。比如 Python 项目常用的 .gitignore 文件:

__pycache__/
*.pyc
*.pyo
*.log
.idea/
.vscode/
.DS_Store

将 .gitignore 文件添加到项目根目录,然后提交:

git add .gitignore
git commit -m "Add .gitignore"
git push

2. 提高拉取速度

如果仓库较大,可以通过浅克隆(仅克隆最近的提交历史)加快速度:

git clone --depth 1 git@github.com:<你的用户名>/my_project.git

3. 使用 SSH 配置多个远程地址

如果有多个远程仓库,可以配置多个 remote 地址:

git remote add backup git@github.com:<你的用户名>/my_project_backup.git

十二、代码评审(Code Review)和协作工具

如果需要团队协作,可以用 GitHub 的 Pull Request 功能:

  1. 创建一个新分支进行开发。
  2. 推送分支到远程:
    git push -u origin feature-branch
  3. 在 GitHub 上发起 Pull Request (PR),让团队成员进行代码审查。
  4. 审查通过后,合并分支。

十三、备份与恢复操作

1. 额外备份仓库

  • Fork 更适合基于别人的仓库继续开发,不应把它当成唯一备份。自己的项目如果需要额外备份,可以增加第二个远程仓库,或者定期备份整个 Git 仓库。

2. 恢复代码

先查看提交历史:

git log --oneline --decorate --graph

如果某个已经推送的提交需要撤销,优先使用 git revert 创建一个反向提交,不改写共享历史:

git revert <commit-id>

git reset --hard 会直接丢弃当前工作区和暂存区修改,不适合作为日常“恢复代码”的默认方法;确实需要重写本地历史时,先确认没有未保存内容再使用。


十四、自动化工作流

1. 使用 GitHub Actions 自动化任务

你可以在 GitHub 上配置 GitHub Actions,实现以下功能:

  • 自动运行测试代码。
  • 部署代码到服务器。

示例 .github/workflows/main.yml 文件:

name: CI/CD Pipeline

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v7

      - name: Setup Python
        uses: actions/setup-python@v7
        with:
          python-version: '3.12'

      - name: Install dependencies
        run: pip install -r requirements.txt

      - name: Run tests
        run: pytest

2. 使用 PyCharm 的任务管理

  • 在 PyCharm 中配置 Tasks & Contexts,跟踪开发任务和环境状态。

文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
赏
评论

评论将在接近此处时加载,也可点击立即加载。

  目录