gpt4 book ai didi

从未 merge 的文件的 git 日志

转载 作者:行者123 更新时间:2023-12-04 13:29:43 27 4
gpt4 key购买 nike

背景
我最近在 merge 期间遇到了一个意外未 merge 的文档文件的问题。
无论出于何种原因,我搞砸了 merge 并有效地删除了文件(和其他几个文件),因为我忘记了它们的存在。
现在我想查看我的历史记录,看看是否有任何其他 merge 出错。
复制问题

git init
echo "file a" > a
git add a
git commit -m "file a added"

git checkout -b branch_c
echo "file c" > c
git add c
git commit -m "file c added"

git checkout master
git checkout -b branch_b
echo "file b" > b
git add b
git commit -m "file b added"

# For whatever reason we forgot to merge file c and forgot about it
git merge --no-commit branch_c
git reset c
git commit -m "merge branch c, but forgot file c"
git clean -fxd
# Commands such as git-log fail to show that files were excluded from merges
git log --name-status --all

如何列出从未 merge 到某个分支的文件? 有没有办法使用 git-log以便它显示未 merge 的文件?

最佳答案

从您附加的脚本开始,我想到的第一件事是将完全 merge 与部分 merge 进行比较。然后,根据您要检查的 merge 提交数量,您甚至可以创建自定义脚本。顺便一提,
checkout 到要检查的 merge 提交的第一个父项

git checkout branch_b^
通过创建一个新分支( temp_branch )从分离的头部退出并进行完全 merge 。
git checkout -b temp_branch
git merge -m "full merge with all files" branch_c
现在您可以将两棵树与 git diff-tree 进行比较
git diff-tree --compact-summary HEAD branch_b
返回这样的东西:
 c (gone) | 1 -
1 file changed, 1 deletion(-)
除了 --compact-summary 之外的许多选项可用。
最后,删除临时分支( git branch -D )。
老实说,我不知道 git log足以显示未 merge 的文件,但这对我来说似乎是一个合理的解决方案。

关于从未 merge 的文件的 git 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65853222/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com