将存储器导出到另一台计算机
我需要一种方法将隐藏的更改导出到另一台计算机。
在Computer1上我做到了
$ git stash save feature 我试图把存储补丁到一个文件,然后将其导入到另一台计算机
 $ git stash show -p > patch 
这个命令给我一个文件,我可以移动到另一台计算机,在这个repo克隆,但问题是如何导入它作为一个藏匿处。
谢谢
您可以通过简单的运行来应用补丁文件(无需提交更改)
 git apply patchfile 
然后,您可以简单地从当前工作目录创build一个新的存储:
 git stash 
或者你可以使用你的藏匿处(在电脑1上)创build一个分支
 git stash branch stashed_changes_branch 
提交您的更改:
 git commit -a 
然后将其作为远程计算机2添加:
 git remote add pc1 user@computer1:/path/to/repo 
现在您可以使用检索远程信息
 git fetch pc1 
现在你可以用你想要的方式导入提交了。 使用git cherry-pick , git rebase或者任何你喜欢的东西…如果你想让它看起来像你刚才做的那样, 你可以使用git cherry-pick –no-commit。
如果你在计算机1和计算机2之间没有直接连接, 你可以使用远程(如github或类似的东西):
 git push origin stashed_changes_branch 
并在computer2上:
 git fetch 
或者,您可以按如下方式将整个本地存储导出到另一个compter
-   git pull你的旧的和新的git目录,以确保有最新的变化。
- 将旧的git目录中的.git文件夹复制到新的存储库中
 另一种select是将.git文件夹从一台计算机rsync .git到另一台计算机。  rsync只处理文件更改(比一个副本更快)。 
 这种方法的一个缺点是configuration也会被覆盖,如果在两台机器之间运行不同的.gitconfiguration,这可能是不希望的。 但是你可以用rsync的--exclude选项排除文件来克服这个问题。 
 总的来说,我认为一个本地的Git解决scheme是更清洁的,但是这个rsync hack对于那些可能比git更熟悉rsync的人来说可能会更好。 
原帖的启动命令:
 git stash show -p stash@{x} > patch_file 
没有为我工作(出于某种原因,它创build了不可用的补丁文件)。 相反,我不得不:
 git stash apply stash@{x} git commit 
我想转移每个藏匿。 然后,我把'父'repo放在'child'repo的file:/// reach中,并为每个存储提交做了以下操作:
 git fetch file:///path_to_parent_git && git cherry-pick commit_sha git reset --soft HEAD^ git stash save my_new_stash_on_child 
这个比较复杂,但是对我来说是个诀窍。