当前位置: 首页 > 知识库问答 >
问题:

git - 如何使用Git组织编程题目解题历程?

益何平
2024-03-03

如何组织分支?

最近在codewars上做题,我想使用git记录解题的历程
例如在做一道题的时候,可能经过一下历程

想了方法A,但是只有部分正确  -> 提交对方法A做出修改,AC了    -> 提交想了方法B, AC了    -> 提交改进方法B    -> 提交....

如果我都在同一个分支上进行提交的话

  • 不太容易找到一个特定问题的提交历史。
  • 一个问题的提交历史可能会被另一个问题的提交历史给打断(不再是连续的多个提交了),比如今天做了问题A,提交之后,过了几天又改进问题A的解法,但是这几天里我又提交了B、C等问题。

我想的一个方案是:

  • 对每一个问题都建立一个分支
  • 每个问题可能有不同的解法,对每个不同的解法可能还会有一些改进,那么再在每个问题分支上再建立解决方案的分支。

这样就没有了上面的问题。但是可能需要建立很多的分支,这有必要吗?这样方案有什么问题吗?有其他更好的组织分支的方案吗?

共有1个答案

杨君之
2024-03-03

使用Git组织编程题目解题历程的建议

对于你的问题,有几种方法可以使用Git来组织你的解题历程。

  1. 使用特性分支:对于每个问题,你可以创建一个特性分支。在这个分支上,你可以记录所有的解题历程,包括不同的解法和改进。当你完成一个问题的解答后,可以将这个分支合并到主分支(例如mastermain)。这样,每个问题的提交历史都是连续的,不会被其他问题的提交历史打断。
  2. 使用标签:在你的主分支上,每当你开始解决一个新问题时,可以创建一个标签来标记这个问题的开始。然后,在这个标签之后的所有提交,都是关于这个问题的解答历程。当你完成这个问题后,可以再创建一个标签来标记这个问题的结束。这样,你可以通过查看这两个标签之间的提交历史,来查看一个特定问题的解答历程。
  3. 使用子模块或子树:如果你的项目变得非常大,或者你想将每个问题的解答历程分开存储,你可以考虑使用Git的子模块或子树功能。每个问题可以作为一个独立的仓库(子模块或子树),你可以在主仓库中引用这些子仓库。这样,每个问题的解答历程都在它自己的仓库中,不会相互干扰。

关于你的方案

你的方案也是可行的,即为每个问题建立一个分支,然后在每个问题分支上再建立解决方案的分支。但是,这可能会创建大量的分支,使得管理变得复杂。另外,如果你经常需要在不同的解法之间切换,或者需要比较不同的解法,那么这种方法可能会变得不太方便。

总的来说,选择哪种方法取决于你的具体需求和偏好。你可以尝试不同的方法,看看哪种方法最适合你的工作流程。

 类似资料:
  • 当我运行新版本2.13.0.windows时。它的新命令<code>stash-p--{pathspec} 它报告错误 错误:pathspec 'AB。“dir 1/dir 2/destinationhierarchycreator . cs”与git已知的任何文件都不匹配。 然而,当我做一个,我从实际复制文件时,它会报告 如果我转到文件所在的目录并执行< code > git stash-p-d

  • 我正在努力学习git。 我的git存储库在Visual Studio Team Services上。我在Visual Studio中编码。我使用git bash。 我想通过命令行使用git(我想了解正在发生的事情)。 首先,我从Web浏览器在TFS上创建了一个新的git项目。我确实设置了ssh,这样我就可以从git bash执行命令。它起作用了。 > 当您在TFS中创建git项目时,它是在服务器上

  • 我要开发java系统,它由三个应用程序组成。这些应用程序使用相同的包。如何在IntelliJ IDEA中组织这个项目?必须在项目中所有资源都组织在一个包层次结构中,还是在库中使用不同的项目。你能告诉我专业的解决方案吗?

  • 我无法克隆带有子模块的git存储库。 这似乎是一个网络问题。因为我让不同网络上的其他用户来做,它起作用了。你们有没有遇到过类似的问题?谢谢你的帮助。

  • 本文向大家介绍解决fatal:remote error:You can't push to git://github.com/username/*.git问题的办法,包括了解决fatal:remote error:You can't push to git://github.com/username/*.git问题的办法的使用技巧和注意事项,需要的朋友参考一下 解决fatal:remote err

  • 我们基本上是在使用这里记录的Git流:http://nvie.com/posts/a-successful-git-branching-model/.现在开发人员提出了一些问题: 我们从哪里发布代码到生产?发布/修补程序分支还是主分支 我还有更多问题: 如果发布分支没有变化,为什么我们甚至需要一个?我来自ClearCase世界,我总是有这样的印象,如果没有变化,分支就不需要了。 为什么Git不经常