我开始从NASM源文件重写一些Perl程序。我已经对自己的working copy做了一些提交,我想知道我是否应该而不是git pull
,如果我应该做git rebase
。
我几乎已经决定我应该做git rebase
,但我不知道如何重新设计我的存储库以实现这种效果,或者即使它是可能的。
答案 0 :(得分:6)
这是可能的,Git Magic教程将解释如何做到这一点。但如果有人看到你的分支,那就不安全了。即使没有其他人见过您的分支,我也请您重新考虑。
重新定位的目的是重写历史记录以便存储库 反映了您认为软件应该发展的方式 它实际上的方式。什么时候这很重要?当你是一个 分布式开发团队的初级成员,而您没有 提交权限 - 而你所能做的就是向一个提交补丁 看门人并希望他们被接受。为了最大化机会 接受,你想重写历史,使你的补丁 尽可能清洁和清洁。开发模型听起来很熟悉吗?
Manoj Srivastava写了fairly thoughtful analysis of rebase-vs-merge。
答案 1 :(得分:2)
git log
git reset HEAD^
下次我建议您执行git fetch
,然后再执行第3步。
我建议你创建一个当前git repo的小tarball,以防rebase出错。当你感到更自信时(通常你可以使用git修复几乎所有内容,但有时候tarball会更快),你会减少这种情况。
答案 2 :(得分:1)
我过去使用以下方法取得了成功:
对于这种方法,我添加了以下别名:
up = pull --rebase origin
从远程仓库中提取更改时:
YMMV
答案 3 :(得分:0)
您应该可以通过更改分支来撤消上次合并:
git branch your-changes <reflog of "Reworked test files...">
git branch -f master remotes/origin/master
之后你可以尝试变基。
答案 4 :(得分:0)
作为Dustin回复的后续内容,它应该是“git config --global branch.master.rebase true”。