我对我的GIT工作流(我是新手)的意见很感兴趣,以及如何确定我的哪些更改尚未合并/推送到适当的存储库。首先,我的当前系统如下:
remote.master
|
|
V
local.master
| | |
V V V
branch branch branch
对于一个新的任务,我会从远程主分支拉取到本地主分支,创建一个新的分支并检出。在处理任务时,我可能会进行各种提交,也许会切换到其他任务,然后当准备好时,会从远程主分支拉取到本地主分支,将我的分支合并到本地主分支,最后推送到远程主分支。
所以有两个问题:对于小团队来说,这是否过度设计?省略本地分支是否更有意义?如果是这样,some advice建议会有“快进”问题(我理解为使远程主分支中的更改不可区分)或者大量提交,具有潜在的意外时间戳,并且难以解析。
第二,假设上述工作流程:我有时频繁地在不同任务之间切换。我想要一个屏幕,显示给我:
'branch 01' -> partially merged to local.master
'branch 04' -> notmerged to local.master
'local.master' -> partially merged to remote.master
有时我会忘记各种功能是否已经合并,以及合并到了哪里。我绝对不想逐个分支地尝试通过“git diff”或其他命令来推断这些信息。我目前在Windows上使用Tortoise GIT,但也可以考虑其他图形界面的替代方案。我有时会使用shell,但更喜欢UI。有没有一种方法可以获得这些信息?
git branch
仅显示本地分支。但我认为你可能认为分支比它们实际上更重要:它们实际上只是一种类似于“便笺”的东西,粘贴到特定的提交上。当你将某些内容提交到分支时,这会添加一个新的提交并将便笺向前移动。实际的分支始终是根据提交图动态确定的。用户需要保持分支标签名称合理。 - torek