1

对于上下文:我作为单个项目的唯一开发人员工作。我最近将我的 SVN 存储库迁移到 Git,在使用 TortoiseGit 与 TortoiseSVN 时,我首先想念的是更改列表,在 TortoiseSVN 中,它允许您对本地更改的文件进行分组并命名这些组,但仍然可以看到所有更改的列表未提交的。当我发现自己在准备提交任何事情之前同时处理多个工单(错误或功能)时,我通常会这样做。

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

如果在上述情况下,普遍接受的答案是为每张工单使用一个分支,我想要一些关于以下两种情况的步骤的指导,请:

  1. 如何分离我当前的一组更改,总共包含 18 个文件。我是否应该从整个当前状态创建两个分支,Ticket #1 分支和 Ticket #2 分支,然后以某种方式从分支 #1 中删除 #2 的更改,反之亦然?

  2. 对于我已经对一张票进行了一些代码更改并且我必须开始处理另一张票的新情况,我应该采取哪些步骤以便我仍然可以轻松地在两者之间来回切换并理想地查看所有更改的组合?会这样吗?为当前工单的更改创建一个分支;为第二张票的更改创建一个新的 master 分支,并在我切换工作时在它们之间切换?

4

1 回答 1

3

在 git 中,创建和合并分支既快速又简单。分支是 git 的一大优势。

因此,最佳实践是明确地为您着手的每项任务创建一个分支。即使是小任务!这将使以结构化方式工作更容易,并且之后版本树将易于理解。

  1. 我会这样做:

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

于 2016-11-04T22:28:58.030 回答