复制的git目录的文件更改将丢失

时间:2014-05-14 16:28:59

标签: git branching-and-merging

好的,所以我很确定我已经把它全部搞砸了,但是我希望有人可以告诉我我做错了什么以及正确的做法。

基本上,我做了一些改变,然后意识到我错了"分支"。所以,我想我可以简单地将我的更改文件夹复制到另一个位置,然后丢弃我未经修改的更改,切换到正确的分支,然后将我复制的文件夹放在" new"目录。但是,看起来我的待处理更改都没有复制到文件夹中。相反,文件都与原始状态匹配。即当我将复制的文件夹放到"正确的"分支,什么都没有改变......

我失去了大约一个小时的工作时间。有人可以解释一下发生了什么吗?

3 个答案:

答案 0 :(得分:0)

绝对可以将修改后的文件复制到其他分支。

但要小心!根据如何复制它的方式,您还可以复制隐藏的.git - 文件夹,其中包含本地git-repository的当前状态。因此,通过粘贴复制的隐藏git文件夹,您只需恢复对存储库所做的所有更改。

幸运的是,git提供了舒适的stash命令来实现相同的功能,而无需手动复制任何内容。


使用git stash来隐藏您的修改(它们存储在隐藏的git-backend中):

$ git stash
Saved working directory and index state WIP on master: 8ba311c Initial Commit
HEAD is now at 8ba311c Initial commit
$

然后转到您想要的分支:

$ git checkout desired-branch
Switched to branch 'desired-branch'
$

最后重新申请修改:

$ git stash apply
On branch desired-branch
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

     new file:   my-changes.txt

$

答案 1 :(得分:0)

好的......弄清楚了。我被困了#34;我未经注册的更改,然后切换到正确的分支和&#34;应用&#34;我的存在变化。

https://answers.atlassian.com/questions/181773/change-commit-code-to-other-branch-sourcetree-for-windows

答案 2 :(得分:0)

执行此操作的一种方法是在错误的分支上提交更改,在正确的分支中选择提交,并在提交之前将其他分支重置为。不涉及复制,所有相关操作的完整reflog支持。