git - Git 分支很糟糕,开发人员不知何故不再是主人的孩子——从哪里开始?
问题描述
我的 repo 很简单:master,有一个 dev 分支,还有一个 dev 的 exp 分支。有时,当我进行看似普通的合并时,git 仍然需要额外的提交,以及令牌消息“merge exp to dev”——我以为我理解了这样做的原因,但显然我不明白。
Git 开始要求对我所有的合并进行额外的提交,我认为我可以通过合并来纠正它,即从 dev 到 exp,从 master 到 dev。我猜不是。现在我有如下日志。当我在我的 exp 分支上时,我在日志中看不到 dev 或 master:
$ git log --graph --oneline
* 2302e04 (HEAD -> exp) Lock all cell key inits, not just hot
* 05b7207 Allow for asyncAfter not doing barriers properly
* 96a7da8 Merge dispatch queue improvments with bug fixes
|\
| * 61f0f3e Keep strong ref to dispatch until done with it
| * 6ce8bfe Release stepper before retiring sprites
* | d2acb67 Dedicated dispatch queues for census and clock
|/
* c466b38 (origin/exp) Remove excess async call wrappers
* c3e0562 Fix calorie intake issues
* f6528b8 More debug to catch dead Arkon carcasses
* 4f78c89 Some debug and some metabolism tweaking
* 79ea6fc Use lock properly when planting manna
当我切换到 dev 或 master 时,日志看起来有些严重错误:
$ git log --graph --oneline
* ebf5244 - (HEAD -> master, origin/dev, dev) More merge hell (23 hours ago)
|\
| * 6ce8bfe - Release stepper before retiring sprites (24 hours ago)
| * c466b38 - (origin/exp) Remove excess async call wrappers (4 days ago)
| * c3e0562 - Fix calorie intake issues (4 days ago)
* | ab18fcd - (origin/master, origin/HEAD) Still in merge hell (4 days ago)
|\ \
| |/
| * f6528b8 - More debug to catch dead Arkon carcasses (4 days ago)
| * 4f78c89 - Some debug and some metabolism tweaking (5 days ago)
| * 79ea6fc - Use lock properly when planting manna (6 days ago)
| * ed2fd20 - Fix bloom failure (6 days ago)
| * 8273def - All manna operations always run in actions (6 days ago)
* | 6ecefa9 - Merge branch 'exp' into dev, god knows why (8 days ago)
|\ \
| |/
| * de9dc5b - Fix keys transfer bug, freaking finally (8 days ago)
| * dd7c265 - Simplify cell lock mechanism (2 weeks ago)
* | c007107 - Trying to escape merge hell (8 days ago)
|\ \
| * \ 80114d2 - Merge branch 'dev' (2 weeks ago)
| |\ \
| * \ \ 218e5c9 - Merge branch 'dev' (2 weeks ago)
| |\ \ \
| * \ \ \ 5f13180 - Merge branch 'dev' (3 weeks ago)
| |\ \ \ \
| * \ \ \ \ e4150f5 - Merge branch 'dev' (4 weeks ago)
| |\ \ \ \ \
| * \ \ \ \ \ e7cd064 - Merge branch 'dev' (4 weeks ago)
| |\ \ \ \ \ \
| * \ \ \ \ \ \ 95bc8f8 - Merge branch 'dev' (6 weeks ago)
| |\ \ \ \ \ \ \
| * \ \ \ \ \ \ \ da3500d - Merge branch 'dev' (7 weeks ago)
| |\ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ 4b45133 - Merge branch 'dev' (8 weeks ago)
| |\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ a3498b7 - Grr, more weird branch merge stuff (10 weeks ago)
| |\ \ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ \ \ e9b0429 - Merge branch 'dev' (3 months ago)
| |\ \ \ \ \ \ \ \ \ \ \
:
而且我仍然无法从 dev 合并到 master,或从 exp 到 dev,而无需再次提交。我不知道是什么原因造成的。似乎分支之间的层次关系已经丢失。
我什至不知道从哪里开始解决这个问题,我不知道从哪里看。谷歌搜索“损坏的分支历史”会发现很多关于修复单个分支历史的信息,而不是关于分支之间的关系。
解决问题的最有效方法是什么?我可以搜索哪些关键字来获取相关信息?这个问题有具体的名称吗?
解决方案
推荐阅读
- python - 如何让 VSCode 始终运行 main.py
- python - Python C API:尝试使用 MSVC 的示例模块时访问冲突
- python - 为什么 Matplotlib 的颜色图的结构不同?
- c++ - x86 上需要 std::memory_order_acquire 栅栏吗?
- php - 在 Laravel 中使用 Office365 直接发送 SMTP
- r - 如何将保存为字符串的序列转换为数字?
- python - Python数据框日期加上来自另一列的月份变量
- c# - 条件过滤器检索部分对象
- r - 将两组两列融合成两行(集合中每列一行)
- c# - WPF:防止导航服务返回导航