两台电脑使用github+pycharm同步开发
本文介绍如何在两台电脑之间通过 GitHub 和 PyCharm 实现项目的同步开发。
一、准备工作
1. 在两台电脑上安装必要工具
2. 配置 Git 环境
在两台电脑上分别配置 Git:
设置用户名和邮箱:
git config --global user.name "你的用户名" git config --global user.email "你的邮箱"
生成 SSH 密钥:
ssh-keygen -t ed25519 -C "你的邮箱"
按提示生成密钥(存储在
~/.ssh/id_ed25519
)。使用以下命令查看并复制公钥内容:
cat ~/.ssh/id_ed25519.pub
登录 GitHub,进入 Settings > SSH and GPG keys,点击 New SSH key,将公钥粘贴并保存。
测试连接:
ssh -T git@github.com
如果返回:
Hi <你的用户名>! You've successfully authenticated, but GitHub does not provide shell access.
表示配置成功。
二、创建远程仓库并上传项目
1. 创建远程仓库
- 登录 GitHub,点击右上角的 + > New repository。
- 填写仓库名称(例如
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 操作
克隆远程仓库: 如果电脑 A 尚未有项目代码:
git clone git@github.com:<你的用户名>/my_project.git cd my_project
如果电脑 A 已有代码并已推送到远程仓库,则跳过此步骤。
用 PyCharm 打开项目:
- 打开 PyCharm,点击 File > Open,选择项目目录。
电脑 B 操作
克隆远程仓库: 在电脑 B 的终端中运行:
git clone git@github.com:<你的用户名>/my_project.git cd my_project
用 PyCharm 打开项目:
- 打开 PyCharm,点击 File > Open,选择项目目录。
四、日常开发流程
1. 在电脑 A 或 B 上修改代码
使用 PyCharm 编辑代码。
在终端或 PyCharm 的 Git 工具窗口中提交更改:
git add . git commit -m "描述本次更改的内容" git push
2. 在另一台电脑同步代码
在另一台电脑上拉取最新代码:
git pull origin main
然后继续开发。
五、解决冲突
如果两台电脑同时修改了同一个文件并提交,可能会出现冲突。解决方法如下:
拉取代码时提示冲突:
git pull origin main
Git 会提示冲突的文件。
手动解决冲突: 打开冲突文件,按照以下格式解决冲突:
<<<<<<< HEAD 你的修改 ======= 另一台电脑的修改 >>>>>>> commit-hash
修改为期望的代码并保存。
标记冲突已解决并提交:
git add . git commit -m "解决冲突" git push
六、PyCharm 中内置 Git 工具的使用
- 提交代码:
- 在 PyCharm 界面右上角,点击 Commit。
- 勾选修改的文件,填写提交信息,然后点击 Commit 或 Commit and Push。
- 拉取代码:
- 点击 Git > Pull,选择远程分支,点击 OK。
- 查看分支和日志:
- 点击 Git > Log,查看提交历史和分支结构。
七、注意事项
- 保持代码同步:每次在另一台电脑开发前,先执行
git pull
拉取最新代码。 - 频繁提交:尽量将每次修改后的小更新提交到远程仓库,避免产生冲突。
- 多人协作时注意分支管理:可以为不同功能创建分支,完成后再合并到主分支。
八、分支管理
当开发新功能或进行实验时,可以使用分支来避免影响主分支。
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 提供了图形化工具:
- 点击 Merge Conflicts 提示框。
- 使用 PyCharm 的三栏界面,直观地合并冲突。
- 合并完成后,保存并提交。
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 功能:
创建一个新分支进行开发。
推送分支到远程:
git push -u origin feature-branch
在 GitHub 上发起 **Pull Request (PR)**,让团队成员进行代码审查。
审查通过后,合并分支。
十三、备份与恢复操作
1. 创建仓库副本(Fork)
- 如果你想备份项目或创建自己的分支,可以直接在 GitHub 上点击 Fork。
2. 恢复代码
如果需要回滚到某次提交:
git reset --hard <commit-id>
查看历史提交记录:
git log
十四、自动化工作流
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@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.8'
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run tests
run: pytest
2. 使用 PyCharm 的任务管理
- 在 PyCharm 中配置 Tasks & Contexts,跟踪开发任务和环境状态。