在处理多个问题时使用 Git 分隔代码更改
Using Git to separate code changes when working on more than one issue
对于上下文:我作为单个项目的唯一开发人员工作。我最近将我的 SVN 存储库迁移到 Git,当我使用 TortoiseGit 与 TortoiseSVN 时,我首先想念的是更改列表,在 TortoiseSVN 中,它允许您对本地更改的文件进行分组并命名这些组,但仍会看到未提交的 all 更改列表。当我发现自己在准备好提交任何内容之前同时处理多个票证(错误或功能)时,我通常会这样做。
意识到 Git 做事的方式绝对不同于 SVN 方式,也许我应该在本地提交更改,或者甚至为每张票创建一个单独的分支并在它们之间切换?我只是有点担心,因为每当我做任何不寻常的事情时,SVN 通常都不会 branch/switch/merge 好,比如重命名(或移动)文件。此外,很高兴在单个分组列表中看到我所有更改的文件,更改列表为我提供了这些列表,但我在 Git.
中看不到任何方法
如果在上述情况下,普遍接受的答案是为每张票使用分支机构,我想对以下两种情况的步骤提供一些指导,请:
如何分离我当前的一组更改,总共包含 18 个文件。我是否应该从整个当前状态创建两个分支,票据 #1 的分支和票据 #2 的分支,然后以某种方式从分支 #1 中删除 #2 的更改,反之亦然?
对于我已经对一张工单进行了一些代码更改并且我必须开始处理另一张工单的新情况,我应该采取什么步骤以便我仍然可以轻松地在两者之间来回切换两者并理想地看到所有变化结合在一起?会这样吗?为当前工单的变更创建一个分支;为第二张工单的更改创建一个新分支,并在我切换工作时在它们之间切换?
在 git 中,创建和合并分支既快速又容易。分支 git.
的一大优势
因此,最佳做法是明确地为您开始的每项任务创建一个分支。即使是小任务!这样会更容易以结构化的方式工作,之后版本树也很容易理解。
我会这样做:
- 假设你在分支
master
- 为 Ticket#1 创建一个分支,
git checkout -b ticket1
- 暂存属于该工单的更改
git add file1
git commit
- 切换回 master
git checkout master
(保留关于 Ticket#2 的文件修改)
- 为 Ticket#2 创建一个分支,
git checkout -b ticket2
- 暂存属于该工单的更改
git add file2
git commit
- 现在您可以使用
git checkout ticket1
自由切换门票
是的。在git中切换分支安全、简单、快速。因此,为不同的任务在分支之间切换是完全有意义的。
对于上下文:我作为单个项目的唯一开发人员工作。我最近将我的 SVN 存储库迁移到 Git,当我使用 TortoiseGit 与 TortoiseSVN 时,我首先想念的是更改列表,在 TortoiseSVN 中,它允许您对本地更改的文件进行分组并命名这些组,但仍会看到未提交的 all 更改列表。当我发现自己在准备好提交任何内容之前同时处理多个票证(错误或功能)时,我通常会这样做。
意识到 Git 做事的方式绝对不同于 SVN 方式,也许我应该在本地提交更改,或者甚至为每张票创建一个单独的分支并在它们之间切换?我只是有点担心,因为每当我做任何不寻常的事情时,SVN 通常都不会 branch/switch/merge 好,比如重命名(或移动)文件。此外,很高兴在单个分组列表中看到我所有更改的文件,更改列表为我提供了这些列表,但我在 Git.
中看不到任何方法如果在上述情况下,普遍接受的答案是为每张票使用分支机构,我想对以下两种情况的步骤提供一些指导,请:
如何分离我当前的一组更改,总共包含 18 个文件。我是否应该从整个当前状态创建两个分支,票据 #1 的分支和票据 #2 的分支,然后以某种方式从分支 #1 中删除 #2 的更改,反之亦然?
对于我已经对一张工单进行了一些代码更改并且我必须开始处理另一张工单的新情况,我应该采取什么步骤以便我仍然可以轻松地在两者之间来回切换两者并理想地看到所有变化结合在一起?会这样吗?为当前工单的变更创建一个分支;为第二张工单的更改创建一个新分支,并在我切换工作时在它们之间切换?
在 git 中,创建和合并分支既快速又容易。分支 git.
的一大优势因此,最佳做法是明确地为您开始的每项任务创建一个分支。即使是小任务!这样会更容易以结构化的方式工作,之后版本树也很容易理解。
我会这样做:
- 假设你在分支
master
- 为 Ticket#1 创建一个分支,
git checkout -b ticket1
- 暂存属于该工单的更改
git add file1
git commit
- 切换回 master
git checkout master
(保留关于 Ticket#2 的文件修改) - 为 Ticket#2 创建一个分支,
git checkout -b ticket2
- 暂存属于该工单的更改
git add file2
git commit
- 现在您可以使用
git checkout ticket1
自由切换门票
- 假设你在分支
是的。在git中切换分支安全、简单、快速。因此,为不同的任务在分支之间切换是完全有意义的。