git学习整理
冲突解决:
如果分支上的冲突太复杂,就无法适用于在Web编辑器中解决了, 这时候可以通过命令行检查它然后解决冲突
- 克隆仓库,使用最新的主分支上面的代码.
git pull origin main
2. 切换到拉取请求的分支(就是你开发功能的那个分支)
代码语言:bash复制 git checkout "你的分支的名称"
3. 将该分支合并主分支中
代码语言:bash复制 git merge main
4. 在编辑器中进行修复.修复完毕,进行推送]
代码语言:bash复制 git push -u origin "你的分支的名称"
开发新功能
在开发新功能之前,进行适当的 Git 准备工作是非常重要的。以下是推荐的步骤:
1. 更新本地仓库
确保你的本地仓库是最新的:
代码语言:bash复制 git checkout main
git pull origin main
2. 创建新分支
为新功能创建一个新的分支:
代码语言:bash复制 git checkout -b feature/your-feature-name
将 your-feature-name
替换为描述性名称。
3. 开发新功能
在新分支上进行开发。
4. 定期提交更改
在开发过程中,定期提交你的更改:
代码语言:bash复制 git add .
git commit -m "描述你的更改"
5. 解决冲突
如果在开发过程中需要合并主分支的更改,确保解决任何冲突:
代码语言:bash复制 git checkout main
git pull origin main
git checkout feature/your-feature-name
git merge main
6. 测试功能
在完成开发后,确保测试新功能以确认其正常工作。
7. 提交最终更改
当功能开发和测试完成后,进行最终提交:
代码语言:bash复制git add .
git commit -m "完成新功能"
8. 推送分支
将新分支推送到远程仓库:
代码语言:basic复制git push origin feature/your-feature-name
9. 创建合并请求(PR)
在远程仓库中创建合并请求,将新功能合并到主分支。
10. 代码审查
等待团队成员进行代码审查,解决任何反馈问题。
11. 合并到主分支
在合并请求通过后,将功能合并到主分支。
12. 清理分支
合并后,可以删除功能分支:
代码语言:bash复制git branch -d feature/your-feature-name
git push origin --delete feature/your-feature-name
按照这些步骤进行准备,可以确保新功能的开发流程顺利进行。
当你看到“Already up to date”的消息时,表示当前分支已经包含了 main
分支的所有更改,没有新的更改需要合并。这意味着:
- 当前分支与
main
分支同步:你已经在当前分支上包含了main
分支的所有提交。 - 没有需要合并的更改:没有新的更改需要合并到当前分支。
接下来的步骤
如果你想继续开发,可以:
- 继续开发新功能,或者
- 切换到其他分支进行其他工作。
如果你需要将其他功能分支的更改合并到 main
,请确保切换到 main
并执行合并操作。
每次开发新功能的时候, 不要基于原来的功能继续开发新功能, 这可能在个人开发中是常见的, 但在团队协作中, 每个单独的分支(功能模块独立), 都不应该包含其他分支上的代码, 所以我们需要pull一下, 然后checkout 一下. 然后开发
Code Review
进行代码审查(Code Review)通常包括以下步骤:
- 查看拉取请求:
- 打开 GitHub 上的拉取请求(Pull Request)。
- 阅读描述和变更的内容,了解更改的目的。
- 检查代码差异:
- 在“Files changed”标签中查看具体的代码更改。
- 注意代码的逻辑、风格和一致性,确保符合团队的编码规范。
- 测试代码:
- 在本地拉取分支并运行相关测试,确保新代码没有引入错误。
- 手动测试功能,验证其是否按预期工作。
- 提供反馈:
- 在代码行旁边添加评论,指出问题或建议改进的地方。
- 如果一切正常,可以表示同意合并。
- 合并拉取请求:
- 如果所有问题都已解决,并且代码质量符合要求,可以选择合并拉取请求。
- 记录和跟踪:
- 在合并后,确保记录审查过程和反馈,以便未来参考。
工具和实践
- 使用 GitHub 的评论功能:可以直接在代码行上添加评论。
- 使用代码审查工具:一些团队使用专门的工具(如 Gerrit、Phabricator)来进行更复杂的审查流程。
- 设定审查标准:团队应制定明确的审查标准,以确保一致性和有效性。
通过这些步骤,可以有效地进行代码审查,确保代码质量和团队协作的顺畅。
Main 分支领先本地
当你准备推送你的更改到 main
分支,但发现该分支已经有新的提交时,你需要先拉取最新的更改并合并到你的本地分支上,然后再推送你的更改。以下是详细的步骤:
- 切换到
main
分支: git checkout main - 拉取最新的更改: git pull origin main
- 切换回你的分支: git checkout your-branch
- 合并
main
分支的最新更改到你的分支: git merge main - 解决任何可能的合并冲突: 如果有合并冲突,Git 会提示你解决它们。你可以使用文本编辑器打开冲突的文件,手动解决冲突后,再用
git add
命令将解决后的文件添加到暂存区。 - 继续完成合并:
git commit --amend
这个命令会将解决冲突后的更改合并到最近的一个提交中。如果需要重新写提交信息,可以在命令后加上
-m "新提交信息"
。 - 推送你的更改: git push origin your-branch 如果之前没有设置过跟踪远程分支,可能会提示你设置远程跟踪分支,你可以使用如下命令: git push -u origin your-branch
如果你的更改与 main
分支上的更改之间没有冲突,那么你只需要执行前几步即可。如果有冲突,务必解决冲突后再继续。
请注意,如果你的更改与 main
分支上的更改之间存在冲突,你可能需要重新考虑你的提交信息,因为合并过程中可能会包含解决冲突的内容。在这种情况下,你可以使用 --amend
选项更新提交信息,或者创建一个新的提交来记录解决冲突的过程。
希望这些步骤能帮助你成功地将你的更改合并到 main
分支!
新功能开发
在本地新建一个分支开发自己的功能的步骤如下:
1. 从主分支拉取最新代码
确保你在本地仓库中,并且工作区是干净的(没有未提交的更改)。然后,执行以下命令:
代码语言:bash复制git checkout main # 切换到主分支,通常是main或master
git pull origin main # 拉取主分支的最新代码
2. 新建一个分支
在本地新建一个开发分支。建议使用有意义的名称,比如包含你的任务或功能的名称。
代码语言:bash复制git checkout -b my-feature-branch # 创建并切换到新分支,my-feature-branch是你的分支名称
3. 开发你的功能
在新分支上进行开发工作。完成后,提交你的更改。
代码语言:bash复制# 进行一些更改
git add . # 添加更改到暂存区
git commit -m "Add new feature" # 提交更改
4. 推送到远程仓库
将你的新分支推送到远程仓库,以便可以与团队成员共享或创建一个合并请求。
代码语言:bash复制git push origin my-feature-branch # 将新分支推送到远程仓库
5. 创建合并请求 (Pull Request)
在远程仓库(例如GitHub, GitLab等)上创建一个合并请求,要求将你的新分支合并到主分支。详细的步骤会根据使用的平台有所不同,一般都是登录到代码托管平台,在你的分支页面上选择创建合并请求。
示例
以下是从头到尾的示例操作:
代码语言:bash复制# 切换到主分支并拉取最新代码
git checkout main
git pull origin main
# 新建并切换到一个新的功能分支
git checkout -b feature/my-new-feature
# 进行开发工作...
# 假设你做了一些更改
# 添加和提交更改
git add .
git commit -m "Add new feature"
# 将新分支推送到远程仓库
git push origin feature/my-new-feature
# 登录到代码托管平台,创建一个合并请求
通过上述步骤,你可以在本地创建一个新的分支,进行功能开发,然后推送到远程仓库并创建合并请求。
取消对某个文件的追踪
代码语言:bash复制git rm --cached <filename>
继续之前分支代码的开发(本地删除情况下)
如果你之前的功能分支代码已经推送到远程,但本地已经删除,你可以通过以下步骤恢复开发:
- 拉取远程分支: 首先,确保你本地的仓库是最新的。使用以下命令拉取远程分支: git fetch origin
- 查看远程分支: 列出所有远程分支,找到你之前的功能分支: git branch -r
- 检出远程分支: 使用以下命令检出远程的功能分支(假设分支名为
feature-branch
): git checkout -b feature-branch origin/feature-branch - 继续开发: 现在你可以在本地继续开发这个功能分支了。
- 提交和推送: 开发完成后,记得提交并推送你的更改: git add . git commit -m "Your commit message" git push origin feature-branch