Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何区分git中的一些小变化和日常变化?_Python_Git_Pycharm - Fatal编程技术网

Python 如何区分git中的一些小变化和日常变化?

Python 如何区分git中的一些小变化和日常变化?,python,git,pycharm,Python,Git,Pycharm,我使用Pycharm以探索性的方式在一个主要的私有Python项目上工作了几个月。 我使用git跟踪该项目中的更改。 我是唯一一个为那个项目做出贡献的人 通常,我大约每天提交一次对该项目的更改 现在,我想在每次执行代码时跟踪代码的更改(背景是有时我会丢失使用哪个版本的代码获得的中间结果) 因此,我希望在脚本执行结束时对所有更改的文件执行gitcommit 由于现在每次提交都只会收到一条“技术”提交消息,因此我想将这些“技术”提交与我大致每天执行一次的其他提交区分开来(见上文)。背景是,我仍然希望

我使用Pycharm以探索性的方式在一个主要的私有Python项目上工作了几个月。 我使用
git
跟踪该项目中的更改。 我是唯一一个为那个项目做出贡献的人

通常,我大约每天提交一次对该项目的更改

现在,我想在每次执行代码时跟踪代码的更改(背景是有时我会丢失使用哪个版本的代码获得的中间结果)

因此,我希望在脚本执行结束时对所有更改的文件执行
git
commit

由于现在每次提交都只会收到一条“技术”提交消息,因此我想将这些“技术”提交与我大致每天执行一次的其他提交区分开来(见上文)。背景是,我仍然希望看到和比较彼此每天的差异。技术上的投入可能会导致每天几十次,并且会阻碍我看到随着时间的推移所发生的重大变化

git
提供了哪些技术来区分技术提交和日常提交


分支可能是一种有效的方法吗?如果是,我以后会删除这些分支吗?(我是一名git新手)

我认为,即使您单独从事这个项目,采用典型的github流方法并开始使用分支仍然是一个好主意

我们的想法是,根据所使用的Git实体,将您的“技术”提交(许多是全天发布的)与您的每日提交(很少不止一次)区分开来:

  • 您的主代码保留在
    master
    分支中
  • 您的每日提交将保持“正常”提交到特定的长期运行分支(
    develope
    是一个常用名称)
  • 您的“一天一次”提交成为合并提交,将
    develope
    中的所有更改推入
    master
    分支
这允许您保存历史记录,但可以清楚地看到这两种类型之间的区别。您可以选择“无快进”方法,以便每个合并提交都与“常规”提交明显不同


如果你真的不希望所有的历史都在那里(正如@安东特所说的那样,可能会有很多承诺),你可能会考虑在合并或重新建立时,“挤压”那些提交,如描述的。

< p>你可以使用分支,是的。在执行脚本化的自动提交时,只需使用一个工作分支,然后当您要对历史记录进行提交时,切换到主分支

要将最终更改作为单个提交重新添加,一种方法是在完成更改后软重置历史记录。所以你会:

git reset prev-real-commit
它将历史跳回到新批wip自动提交之前,但不会接触文件,因此不会丢失工作。然后,您可以正常地对更改进行新的提交

这种技术也可以在没有分支的情况下工作。不过,使用分支可能仍然很好,这样您就可以轻松地检查新wip提交之前的版本

Git还具有重定基址功能,允许将多个提交压缩到一个提交并重写消息。但是对于您描述的工作流,我认为简单地重置自动提交并重新执行正常提交更好

另外,建议在自动提交的消息中添加一些标签也是很好的


也就是说,我通常只提交在正常开发流程中需要的检查点。最好是每小时一次,而不是一天一次。小的原子提交是好的。如果您想记录和管理更大范围的工作,可以使用功能分支和GitHub拉请求。

只需在消息中添加一个关键字,用于此脚本生成的提交(例如:“[commitbot]”…)在他的例子中,他最终会得到几十个毫无意义的历史自动提交,尽管每次他运行代码进行测试时,脚本都会添加一个新的提交。啊,在合并中的壁球不允许修复,但是我不确定对于100个无意义的提交会有多方便。“啊,在合并中的壁球不允许修复”——但是,在这个特殊的情况下,人们可能会认为OH很酷,<代码> git提交-修复< <代码> >这可能是这个案例的最佳解决方案。