Answers:
您只需运行以下命令即可应用补丁文件(尚未提交更改)
git apply patchfile
然后,您可以简单地从当前工作目录中创建一个新的存储:
git stash
git stash show "stash@{0}" -p > patch而不是OP的第二个shell命令。
stash@{0}..
或者,您可以使用以下方式从存储中创建分支(在计算机1上):
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 stash;您可以使用git cherry-pick --no-commit。
如果您在computer1和computer2之间没有直接连接;您可以使用遥控器(例如github或类似的东西):
git push origin stashed_changes_branch
在计算机2上:
git fetch
git stash list --oneline),因此从技术上讲,您不必将散件应用于新的提交对象。换句话说,不需要创建新分支。但是,至少可以说,直接将隐藏项推到远程是很难的。
您可以从一台计算机上将存储文件创建为补丁文件,然后可以将该补丁文件共享给另一台计算机。
创建存储作为补丁
$ git stash show "stash@{0}" -p > changes.patch
“ stash @ {0}”是存储的参考。它将创建具有最新存储的补丁文件。如果您要使用另一命令$ git stash list,请使用命令查看存储的列表,然后选择要修补的存储。
应用补丁
现在,将该存储区转移到另一台计算机上,并将其粘贴到项目的根文件夹中。然后运行此命令
$ git apply changes.patch
如果有错误,您想撤消更改
$ git apply changes.patch --reverse
原始帖子中的启动命令:
git stash show -p stash@{x} > patch_file
不适用于我(由于某种原因,它创建了无法使用的补丁文件)。相反,我必须:
git stash apply stash@{x}
git commit
我想转移的每个藏匿处。然后,将“父”存储库放置在“子”存储库的file:///范围内,并对每个存储提交执行以下操作:
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 stash save现在已被弃用,而赞成git stash push