在工作脚本上修改git分支而不覆盖最新版本

时间:2017-01-25 14:01:48

标签: git

我最近开始在我的Python脚本中使用git进行版本控制(使用git,magit和emacs中的Python),我不知道如何正确分支。

假设我创建了一个名为test.py的脚本,并将其提交到我的git存储库的master分支。这个脚本可能工作正常,但我需要进行一些实质性的更改(例如,转到master.py的2.0版本)。现在,test.py很重要,因为它在cron作业中不断使用,所以我想确保在我处理test.py 2.0时我可以继续调用原始文件。

我认为我应该做的是脱离主人(调用新分支"版本2")并继续处理更新。但是,我注意到当我在version2分支下保存test.py时,我在磁盘上覆盖了保存的test.py版本(即现在我的cron作业将调用test.py的未完成版本2)是否合理?

我的问题是:我可以继续使用version2分支下的test.py而不覆盖我的cron作业调用的test.py脚本吗?我想我不知道如何处理这种情况。

2 个答案:

答案 0 :(得分:1)

您可能不应自动调用您开发的文件。解决问题的一种方法是使用git worktreeversion2分支设置单独的工作树,使您的cron作业调用的master工作树不受影响。

答案 1 :(得分:0)

您认为需要分支的假设是正确的。这意味着您可以拥有该文件的两个版本,并且可以在需要时使用它们。对test.py进行更改后,您可以使用git checkout -b [new branch name]创建新分支。如果您需要返回原始版本,只需再次结帐(git checkout master)。

如果您对新版本文件中的更改感到满意,现在可以覆盖原始文件,则可以将该分支合并到主文件中:

git checkout master
git merge [new branch]
git branch -D [new branch] --this deletes the 'version 2' branch assuming you no longer need it.