首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何浏览git存储库?

如何浏览git存储库?
EN

Stack Overflow用户
提问于 2010-07-21 12:10:33
回答 4查看 2.5K关注 0票数 12

我正在尝试理解一个项目,它有助于通过使用gitk来查看它的演变。我所做的是检查第一次提交,理解代码,运行测试,转到下一次提交并重复。我当前的工作流程是通过它的散列来签出提交

代码语言:javascript
复制
git checkout 79cd6

但我想要的是另一个分支,在那里我可以执行我自己的更改,并允许我合并来自主分支的提交,而不需要找到提交散列。理想化工作流程:

代码语言:javascript
复制
git checkout -b <newbranch> <first commit id of master>
git <command to move head of current branch to next commit of master>
EN

回答 4

Stack Overflow用户

发布于 2013-10-11 07:31:59

我知道这是一个有点老的问题,但我想做同样的事情,并找到一个答案,所以我想分享一下。

代码语言:javascript
复制
for commit in $(git rev-list master --reverse)
do
    git checkout $commit
    read
done

在一个窗口中完成此操作。它将从您的初始提交开始,并在您每次按回车键时前进一次。然后在不同的shell中进行测试等。

它可以完美地处理线性历史,但我不太确定它将如何处理合并之类的事情。我相信这是合理的,但你的里程可能会有一点不同。

票数 13
EN

Stack Overflow用户

发布于 2010-07-21 23:09:09

将其另存为~/bin/git-next或路径中的其他位置:

代码语言:javascript
复制
#!/bin/bash
git co $(git rev-list --children --all | awk "/^$(git rev-parse @\{0})/ { print \$2; }")

这将检出当前修订的第一个子项。

它在大型回购上会非常慢,但它可以完成这项工作。

您可以根据需要对其进行修改以处理分支。

票数 3
EN

Stack Overflow用户

发布于 2010-07-21 12:28:33

您可以编写一个小的shell脚本。一个脚本将运行git log --pretty=oneline | awk '{print $1;}'。第二个脚本(称为step或其他什么)将使用headtailwc -l。然后使用tail读取文件的最后一行,找出文件中有多少行,并从文件中删除最后一行。丑陋,当然,但它可以做这件事。:) (如果你想让它看起来不那么难看,它可以使用truncate(1)去掉文件的最后一行,而不是总是创建新的临时文件。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3296260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档