git协作开发指南
创建并关联仓库
以下是在 macOS 上配置 Git 并创建、关联 GitHub
仓库的详细教程,同时默认分支名为 main
:
1. 安装 Git
如果你的 macOS 还未安装 Git,可通过 Homebrew 进行安装。若已安装,可跳过此步骤。
1 |
|
2. 配置 Git 用户名和邮箱
你需要设置自己的 Git 用户名和邮箱,这些信息会关联到你提交的代码。
1 |
|
3. 生成 SSH 密钥
为了能安全地与 GitHub 进行通信,你需要生成 SSH 密钥并将公钥添加到 GitHub 账户。
1 |
|
4. 将 SSH 公钥添加到 GitHub 账户
1 |
|
- 打开 GitHub 网站,登录你的账户。
- 点击右上角的头像,选择 “Settings”。
- 在左侧菜单中选择 “SSH and GPG keys”。
- 点击 “New SSH key”,将剪贴板中的公钥粘贴到 “Key” 字段,输入一个标题(如 “MacBook Pro”),然后点击 “Add SSH key”。 意义:GitHub 服务器借助公钥来验证你的身份,确认是你本人在操作。
5. 创建本地 Git 仓库
在本地创建一个新的项目目录,并将其初始化为 Git 仓库。
1 |
|
git init
命令会在当前目录下创建一个新的 Git 仓库,-b main
参数指定默认分支名为 main
。
6. 添加文件并提交
在项目目录下创建一些文件,然后将它们添加到暂存区并提交。
1 |
|
git add
命令把文件添加到暂存区,git commit
命令将暂存区的文件提交到本地仓库,并添加一条提交信息。
7. 在 GitHub 上创建新仓库
- 登录 GitHub 网站,点击右上角的 “+” 按钮,选择 “New repository”。
- 输入仓库名称、描述等信息,然后点击 “Create repository”。
8. 将本地仓库关联到 GitHub 仓库
1 |
|
意义:git remote add
命令将本地仓库与
GitHub 仓库关联起来,git push
命令把本地仓库的代码推送到
GitHub 仓库,-u
参数会将本地的 main
分支与远程的 main
分支关联起来,以后使用
git push
时就不需要再指定分支名了。
完成以上步骤后,你就成功在 macOS 上配置了 Git,并将本地仓库与 GitHub
仓库关联起来。之后你可以继续在本地进行开发,使用
git add
、git commit
和 git push
命令来管理和同步代码。
最后可能会出错,因为原始仓库里会有一个readme文件,需要
1 |
|
创建自己的分支,上传
下面为你详细介绍创建新分支、在新分支开发、推送新分支以及将分支合并到
main
分支的具体步骤,同时说明合并操作的相关情况。
1. 创建新分支
在本地仓库中创建新分支有两种常用方式,具体如下:
先创建分支,再切换到新分支
1 |
|
这里的 new-feature
是新分支的名称,可以根据实际开发的功能来命名。
2. 在新分支上进行开发创作
切换到新分支后,就可以像平常一样进行代码编写、修改等操作了。完成一些工作后,将修改的文件添加到暂存区并提交到本地仓库,示例如下:
1 |
|
3. 推送新分支到远程仓库
当你在本地新分支上完成一定的开发工作后,需要将新分支推送到远程仓库,以便团队成员可以查看和协作。
1 |
|
origin
是远程仓库的默认别名,new-feature
是你要推送的本地分支名称。执行
git push -u origin new-feature
后,本地的
new-feature
分支就会和远程仓库的 new-feature
分支建立关联,之后再推送该分支的更新时,直接使用 git push
即可。
4. 合并分支到 main
分支
在完成新功能的开发并测试通过后,需要将新分支合并到 main
分支。以下是具体步骤:
步骤一:切换到
main
分支并拉取最新代码
1 |
|
这一步的目的是确保本地的 main
分支是最新的,避免在合并时出现冲突。
步骤二:合并新分支到
main
分支
1 |
|
执行该命令后,Git 会尝试将 new-feature
分支的修改合并到
main
分支。如果没有冲突,合并会自动完成;如果有冲突,需要手动解决冲突。
步骤三:解决冲突(如果有)
当合并分支时出现冲突,Git 会在冲突的文件中标记出冲突的部分,你需要手动打开这些文件,根据实际情况修改冲突内容。例如,文件中可能会出现类似以下的标记:
1 |
|
1 |
|
步骤四:将合并后的
main
分支推送到远程仓库
1 |
|
成员协作
在多人协作开发场景下,为避免冲突和代码混乱,管理同学分支的合并可以采用以下流程和方法:
1. 使用代码托管平台的合并请求(Pull Request,简称 PR)功能
多数代码托管平台(如 GitHub、GitLab、Gitee 等)都提供了合并请求功能,这是管理分支合并的有效方式。
同学端操作
- 完成开发并推送分支:同学在完成自己分支(如
feature-branch
)的开发工作后,将该分支推送到远程仓库。1
git push -u origin feature-branch
- 发起合并请求:同学登录代码托管平台,在仓库页面发起从
feature-branch
到main
分支的合并请求。在发起合并请求时,通常需要填写合并请求的标题和描述,说明本次开发的功能和修改内容。
你端操作
- 审核合并请求:当收到同学的合并请求通知后,你可以在代码托管平台上查看合并请求的详细信息,包括修改的文件、代码差异等。
- 代码审查:仔细审查同学提交的代码,检查代码质量、功能实现、是否符合项目规范等。你可以在代码托管平台上对代码进行评论和反馈,提出修改建议。
- 解决冲突(如果有):如果合并请求中存在冲突,代码托管平台会提示你。你可以选择在平台上直接解决冲突,或者将代码拉取到本地进行解决。
解决冲突后,提交修改并推送到远程仓库。
1
2
3
4
5
6
7
8# 拉取远程分支
git fetch origin feature-branch
# 创建本地分支并切换到该分支
git switch -c feature-branch origin/feature-branch
# 切换到 main 分支
git switch main
# 尝试合并分支
git merge feature-branch - 批准并合并:在审核通过且解决了所有冲突后,你可以在代码托管平台上批准并合并该分支到
main
分支。
2. 定期沟通和同步
除了使用合并请求功能,定期与同学进行沟通和同步也非常重要。
- 进度沟通:定期与同学交流各自的开发进度,了解他们是否完成了开发任务,是否准备好发起合并请求。
- 问题讨论:在开发过程中,可能会遇到一些技术问题或设计问题。通过沟通和讨论,可以及时解决这些问题,避免在合并时出现更大的冲突。
3. 制定合并规则和流程
为了确保合并过程的顺利进行,建议制定明确的合并规则和流程。
- 代码规范:制定统一的代码规范,要求团队成员在开发过程中遵循这些规范。这样可以减少代码风格不一致导致的冲突。
- 测试要求:规定在发起合并请求之前,必须对代码进行充分的测试,确保代码的质量和稳定性。
- 合并时间:确定合适的合并时间,避免在项目关键时期进行大规模的合并操作,以免影响项目进度。
总结:🚀 Git 快速指令手册(GitHub 协作)
一、初始化配置
安装 Git(已装跳过)
1
brew install git
设置用户名/邮箱(全局)
1
2git config --global user.name "你的名字"
git config --global user.email "你的邮箱"生成 SSH 密钥(自定义路径示例)
1
2ssh-keygen -t rsa -b 4096 -C "注释" # 如:-C "macbook-work"
# 保存路径:/Users/你/Desktop/gitkey/id_rsa(按提示回车)加载密钥到代理
1
2eval "$(ssh-agent -s)"
ssh-add /Users/你/Desktop/gitkey/id_rsa # 替换实际路径复制公钥到 GitHub
1
pbcopy < /Users/你/Desktop/gitkey/id_rsa.pub # 粘贴到 GitHub 设置
二、创建 & 关联仓库
本地初始化仓库(默认 main 分支)
1
2mkdir 项目名 && cd 项目名
git init -b main关联远程仓库
1
git remote add origin git@github.com:你的用户名/仓库名.git
首次推送(解决远程已有文件冲突)
1
2git pull --rebase origin main # 拉取远程(如 README)
git push -u origin main # 推送本地 main
三、分支开发(单人)
创建并切换分支
1
git switch -c 分支名 # 等价:git checkout -b 分支名
提交代码
1
2git add . # 添加所有改动
git commit -m "描述提交"推送分支到远程
1
2git push -u origin 分支名 # 首次推送
git push # 后续推送
四、协作合并(负责人操作)
同学推送分支并提 PR
同学:git push -u origin 他的分支名
→ 在 GitHub 发起合并请求。你审核并合并
- 解决冲突(本地):
1
2
3
4
5git fetch origin 他的分支名 # 拉取远程分支
git switch main # 切回主分支
git merge origin/他的分支名 # 合并,手动改冲突文件
git add 冲突文件 && git commit -m "合并说明"
git push origin main # 推送到远程 - 直接在 GitHub PR 界面点击 Merge(推荐)。
- 解决冲突(本地):
删除已合并分支(可选)
1
2git branch -d 他的分支名 # 删除本地分支
git push origin --delete 他的分支名 # 删除远程分支
五、常见问题
推送被拒(远程有更新)
1
git pull --rebase origin main # 先拉取合并,再推送
合并冲突解决
手动修改文件中<<<<<<<
标记的冲突部分 →git add 冲突文件
→git commit
。
📌 极简流程图
1 |
|
记住:永远不要直接在 main 分支开发! 🔥
(全文完,按场景查指令即可)
有时候push操作出现失败的话,可能需要重新加载密钥
1 |
|