我需要一种方法来导出存储的变化到另一台计算机。

在1号电脑上我做到了

$ git stash save feature

我试图获得隐藏补丁到一个文件,然后将其导入到另一台计算机

$ git stash show -p > patch

这个命令给了我一个文件,我可以移动到另一台计算机上,这个回购是克隆的,但问题是如何将它作为一个存储再次导入。


当前回答

还要注意使用option -binary存储的本地文件,以及在导出和导入时存储的几个文件。搜索了一段时间后,我做了以下事情。

#检查所有的存储

Git藏匿清单

——option binary对于导出二进制文件很重要

Git暂存显示{0}-p——二进制> patch0

#import stash,转到新的存储库

git apply /old_repository/patch0

#然后重新保存本地更改

@{1},…, stash@ {n}

其他回答

或者,你可以复制整个本地存储(+其他本地分支,本地标签等)到另一台计算机,如下所示:

git拉出你的旧目录和新目录,以确保它们都有最新的更改(或者使用git reset—hard commit-hash确保两个回购都有相同的HEAD)。 将.git文件夹从旧的git目录复制到新的存储库

您可以在一台机器上创建补丁文件,然后可以将该补丁文件共享给另一台机器。

创建存储作为补丁

$ git stash show "stash@{0}" -p > changes.patch

“stash@{0}”是隐藏的引用。它将创建补丁文件与最新的stash。 如果你想要不同的,使用命令$ git stash list来查看你的存储列表,并选择你想要修补的一个。

应用补丁

现在,将存储文件转移到另一台机器上,并将其粘贴到项目的根文件夹中。 然后执行以下命令

$ git apply changes.patch

如果出现了错误,而你想要逆转更改

$ git apply changes.patch --reverse

Git -no-pager stash show -p >补丁

将存储的更改复制到补丁文件

Git应用路径/到/the/patch/文件

应用补丁文件中的stash

下面的shell脚本允许用户将所有的存储从一个文件夹复制到另一个文件夹。 https://gist.github.com/senthilmurukang/29b55a0c0e8694c406991799153f3c43

原文中的启动命令:

git stash show -p stash@{x} > patch_file

对我不起作用(出于某种原因,它创建了不可用的补丁文件)。相反,我不得不:

git stash apply stash@{x}
git commit

我想转移的每一笔钱然后,我将'parent' repo放置在` child' repo:///范围内,并对每个stash提交执行以下操作:

git fetch file:///path_to_parent_git && git cherry-pick commit_sha
git reset --soft HEAD^
git stash save my_new_stash_on_child

这个更复杂,但对我来说很管用。

如果您想将更改从一台机器移动到另一台机器,您可以始终在您的机器上提交更改,然后在他们的机器上进行软重置。

办公室

Git commit -m "-stash-"

厨房

git重置-软头~1