1

我正在开发一个功能(在我的本地 master 分支上), git status 显示我有 3 个未提交的修改文件。没关系。然后我注意到现场网站上的一个错误。我想放弃我目前的工作,并为这个错误创建一个快速修复。

我从远程仓库的 master 创建了一个分支: git checkout -b quickfix origin/master

但是 git status 显示我有 3 个修改过的文件。这是为什么?我没有对任何文件进行更新,只从远程创建了分支。

我只想从 remote/master 获得一个干净的分支,我可以开始使用 quickfix。

4

2 回答 2

1

您应该stash进行更改,以便将它们存储在“浮动”提交中,然后您可以在修复错误后将它们应用回来:

$ git stash save "Working on ... - going to bugfix"
$ git status --short # should show only untracked files
$ git checkout bugfix
# work work work
$ git add file1
$ git commit
$ git push # probably a merge and that
$ git checkout master
$ git stash pop # applies the last stash's changes to working copy
于 2012-12-13T17:36:56.060 回答
0

Git 不会因为你切换了一个分支而删除文件——这很好,你不想丢失它们。这就是我要做的(从分支开始:

git add --all
git stash
git checkout quickfix
# do all the work you need to fix the problem and commit 
git checkout master
git stash pop # apply stashed work and remove it 

Git stash 会保存您所做的更改,您可以在修复其他内容后重新应用它们(您可以将隐藏的工作应用到不同的分支,如果需要,可以多次应用)。

于 2012-12-13T17:37:44.163 回答