Git如何在分支之间传输更改?

3
如果我在主分支上添加了一些东西,然后决定将其放入一个特意创建的分支中,称为“some-branch”。
现在,这些在主分支中更改的新文件变成了绿色。我不想在主分支中提交它们,而是在我忘记在进行更改之前创建的新分支中提交。
那么如何将更改提交到另一个分支?

1
绿色在哪里?如果在 git status 中出现,那意味着它们已经被暂存,而不是实际提交。您可以切换到新分支并进行提交。 - Ry-
在编辑器中的绿色 - 我的意思是它们已经被修改,但尚未添加。 - Raz Buchnik
1
@Raz,你在说什么编辑器?请尽量使用正确的Git术语。git status的输出是什么? - bolov
如果你只是在工作目录中进行了更改,那么说你“将某些东西添加到主分支”是不正确的。你没有添加任何东西到主分支。你在修改工作目录中的文件时,所检出的主分支几乎是完全无关的事实。 - William Pursell
打开了 index.html -> 写入: <p>你好</p>。哦,糟糕,我忘记在一个我还没创建的特定分支中添加它。我只需要将 <p> 从主分支带到新分支。我还没有进行任何 git 注释,甚至没有 git add。 - Raz Buchnik
3个回答

4
只要分支没有冲突的更改,您就可以使用git checkout检出带有这些更改的新分支(无需提交),它们将保留。

但我不希望它们留在主分支中,只想留在新分支中。 - Raz Buchnik
2
我的意思是它们将保持未暂存状态。 未暂存的更改与任何分支都不相关。 - SLaks
没错,它是有效的。但是我在主分支中创建的新文件夹现在仍然是空的,而在我将其添加到新分支中时,它已经有了内容。我不得不手动从主分支中删除它。 - Raz Buchnik
创建一个文件夹并不会自动将其置于“主分支”上。如果您创建了一个文件夹并切换分支,该文件夹将保留在原地。 - evolutionxbox

3

请尝试以下操作:

1. git reset (if changes are staged/added for commit)  
2. git checkout -b newbranch  
or  
git checkout newbranch (if branch is already there)  

另一种方法:
1. git reset  (if changes are staged/added for commit)  
2. git stash    
3. git checkout -b newbranch or git checkout newbranch if branch is already there.  
4. git stash pop  

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接