我试图理解一个项目,它有助于通过使用gitk来看待它的演变.我做的是检查第一次提交,理解代码,运行测试,转到下一次提交并重复.我目前的工作流程是通过哈希检查提交
git checkout 79cd6
Run Code Online (Sandbox Code Playgroud)
但我想要的是另一个分支,我可以执行自己的更改,并允许我合并来自主分支的提交,但不需要找到提交哈希.理想的工作流程:
git checkout -b <newbranch> <first commit id of master>
git <command to move head of current branch to next commit of master>
Run Code Online (Sandbox Code Playgroud)
我知道这是一个老问题,但我想做同样的事情并找到答案,所以我想我会分享.
for commit in $(git rev-list master --reverse)
do
git checkout $commit
read
done
Run Code Online (Sandbox Code Playgroud)
在一个窗口中执行此操作.它将从您的初始提交开始,并在每次您输入时提前一次.然后在不同的shell中进行测试等.
它与线性历史完美配合,但我不太确定它将如何处理合并等.我相信这是合理的,但你的里程可能会有所不同.
你可以写一个小 shell 脚本。一个脚本将运行git log --pretty=oneline | awk '{print $1;}'
。第二个脚本(称之为它step
或其他什么)将使用head
, tail
, wc -l
。然后使用 读取文件的最后一行tail
,找出文件中有多少行,并从文件中删除最后一行。丑陋,当然,但它可以完成工作。:)(如果你想不那么难看,可以truncate(1)
直接砍掉文件的最后一行,而不是总是创建新的临时文件。)
归档时间: |
|
查看次数: |
1830 次 |
最近记录: |