Git:如果在未完成的工作中,如何在另一个分支中进行更改并返回?

时间:2017-07-04 15:48:18

标签: git

我的团队正在使用一个非常简单的Git工作流程。每个人都在同一个分支中发展。我想知道当我处于工作中并且需要修复错误时,我应该做的一系列命令。

以下是我的情况:

  1. 我的本地主分支中的未提交的提交更改
  2. 未经修改的修改文件
  3. 需要修复origin / master分支中的错误
  4. 我没有附加到主人的另一个分支
  5. 需要推送解决问题的这些文件
  6. 回去工作
  7. 我正在同事的同一个分支工作。

    有些用户指出git stash会解决它,所以这是一个重复的问题。我对此提出异议,因为我甚至都不知道这个功能存在。该功能解决了我的问题,但我相信这个问题是有效的,因为我从另一个角度提出这个问题。

4 个答案:

答案 0 :(得分:2)

你必须藏匿文件

  1. git stash添加像往常一样
  2. 的内容
  3. git checkout main将其存储以供日后使用
  4. git commit开展工作
  5. git checkout your_branch在主分支中提交您的更改
  6. 完成该分支后,
  7. git stash pop返回
  8. (^\[\s?.{1,15}\s?.{1,15}\s?\]\,$) 带回您的作品

答案 1 :(得分:2)

其他答案使用git stash,我同意这是标准技术,但这是另一个"模拟"一个存储(并且有一个备份,因为存储在你的reflog中没有保存;加上你的主分支将没有你未跟踪的文件)。

以下是您应该采取的步骤:

1. git add .; git commit -m "All files saved" // commit your work in current branch
2. git checkout main // go to main branch
3. git add .; git commit -m "Finished fixing bug" // fix bug and commit
4. git push remote main // push your main branch to remote; do a fetch and merge, etc if needed
5. git checkout my_branch // come back to your branch
6. git reset HEAD^ // go back from your dummy commit

这也会保存您未跟踪的文件。

或者,使用git stash -u,它还会存储未跟踪的文件。

答案 2 :(得分:0)

您需要隐藏更改:

git stash save "will come back in 5 minutes"
git checkout blahblah
jadajadajada
git checkout where-i-was
git stash pop

你回到了你的位置

答案 3 :(得分:0)

git stash可能是您正在寻找的内容。

使用git stash暂时存储您对跟踪文件所做的更改。走开,在另一个分支上工作。然后回来做git stash pop

需要记忆。你必须记住,你把东西藏起来了。

或者你可以提交你的工作,在另一个分支上工作,然后回来git reset HEAD^将分支置于之前的状态。所以实际上把一个藏在上下文中。只要你不推动这项工作正在进行中,那么你就可以了。