我一直在使用Git作为源代码管理工具。 目前我的工作流程很简单:
我希望通过提高其灵活性来改进此工作流程。原因是我几次遇到以下情况,我认为这是一个典型的情况:
提交后,我开始修改工作目录以添加新功能。
我编码了一段时间,让工作目录的状态在此刻为A.这里重要的是状态A工作目录尚未准备好提交,因为新功能尚未完成。
此时我意识到首先执行重构会更好。承认这一点,有时在代码修改过程中需要进行重构。
现在我需要从HEAD重新开始并首先进行重构。但我不想失去代码HEAD的修改 - >状态A.所以基本上我需要:
我相信这是分支可以帮助我的地方,但是我在解决正确的git命令时遇到了问题。我很困惑的事实是,在提交后更改工作目录时我需要创建一个分支,而我不知道正确的方法可以解决这个问题。
根据Git命令描述上述工作流程的正确方法是什么?
答案 0 :(得分:2)
你想要git stash。当您的工作目录处于您尚未准备提交的中间状态时,请运行'git stash'或'git stash save“some text”'。这会将您的工作目录恢复为HEAD。现在进行更改并提交。然后运行'git stash pop',您之前的中间工作将合并到工作目录中。你可以有多个藏匿处;列出他们gith'git stash list'。 ('some text'将标识它们。如果不提供任何消息,则使用最后一个提交日志。)
另见'git add --patch'和git add'--interactive'
答案 1 :(得分:2)
当您启动新功能时,请创建一个新分支,然后在那里工作。当您认为需要重构您未使用的代码时,请切换回master(或其他专用分支)并执行此操作。完成后,将重构分支合并回master。然后在更新的主数据库之上重新设置功能分支。
答案 2 :(得分:0)