在处理多个问题时,使用Git分隔代码更改

时间:2016-11-04 22:04:30

标签: git tortoisegit changelist

对于上下文:我是单个项目的唯一开发人员。我最近将我的SVN回购迁移到Git,在使用TortoiseGit和TortoiseSVN时我首先想到的是更改列表,在TortoiseSVN中,它允许您对本地更改的文件进行分组并命名这些组,但仍然会看到未提交的所有更改。我通常会在我准备提交任何内容之前同时处理多个故障单(错误或功能)时执行此操作。

实现Git的做事方式肯定不同于SVN的方式,也许我应该在本地提交更改,甚至为每张票创建一个单独的分支并在它们之间切换?我只是有点担心,因为每当我做任何与众不同的事情时,SVN通常都没有分支/切换/合并,比如重命名(或移动)文件。此外,很高兴在单个分组列表中看到我所有已更改的文件,这些更改列表给了我但是我在Git中没有看到任何方法。

如果在上述情况下,普遍接受的答案是为每张票使用分支,我想对以下两种情况的步骤提供一些指导,请:

  1. 如何分离当前包含18个文件的更改集。我应该从整个当前状态分支两个分支,分支机票#1和分支机票#2,然后以某种方式从分支#1中删除#2的更改,反之亦然?

  2. 对于我已经对一张票只进行了一些代码更改的新情况,我必须开始处理不同的票证,我应该采取哪些步骤,以便我仍然可以轻松地在两者之间来回切换看到所有变化加在一起会这样吗?为当前故障单的更改创建分支;从主人那里为第二张票的更改创建一个新的分支,并在我切换工作时在它们之间切换?

1 个答案:

答案 0 :(得分:3)

在git中,创建和合并分支都快速而简单。分享git的一大优势。

因此,最佳实践是为您开始的每项任务定义创建分支。即使是小任务!这样可以更容易地以结构化的方式工作,之后版本树将很容易理解。

  1. 我会这样做:

    1. 假设您在分行master
    2. 为Ticket#1 git checkout -b ticket1
    3. 创建一个分支
    4. 暂存属于该故障单的更改git add file1
    5. git commit
    6. 切换回主git checkout master(保留有关故障单#2的文件修改)
    7. 为Ticket#2 git checkout -b ticket2
    8. 创建一个分支
    9. 暂存属于该故障单的更改git add file2
    10. git commit
    11. 现在,您可以使用git checkout ticket1
    12. 在门票之间自由切换
  2. 是。在git中,切换分支是安全,简单和快速的。因此,在不同任务的分支之间切换是完全有意义的。