您可以通过多种方式与其他用户共享更改,而无需推送到origin 上的remotebranch。
当您说“未推送”时,这可能仅表示您还不想更新 origin 上的 remotebranch,或者您可能特别不希望这些提交在 origin 上可见;所以这会影响你的选择。
最简单(我会说最典型)的事情就是在origin 上创建一个不同的分支。通常,如果您在创建 localbranch 时就知道会这样做,那么您的开始可能会略有不同,例如
git checkout remotebranch
创建本地分支跟踪origin/remotebranch,然后
git checkout -b localbranch
然后您可以将localbranch 推送到origin/localbranch 而不会影响remotebranch。 (即使您从 origin/remotebranch 创建了 localbranch,只要您正确设置跟踪或使用正确的 refspecs,您仍然可以完成这项工作。)
稍后您可以将localbranch bakc 合并到remotebranch(如果没有其他人修改过remotebranch,可能使用快进)。
但同样,这只有在您愿意将提交放在源上时才可行。如果您想仅与审核提交的人分享提交,那么您仍然有几个选择。
正如 Claudio 所建议的,您可以让您的合作者将您的本地仓库作为远程仓库添加到他们的本地仓库中。这取决于您的存储库是否可以使用 git 理解的协议从他们的计算机访问;当他们取回你的作品时,它要求你在线。
您可以通过创建包含本地更改的包来解决这些问题。
git bundle create my_changes.bundle origin/remotebranch..localbranch
然后您将my_changes.bundle 发送(电子邮件、ftp 等)给您的合作者,他们可以将其视为只读遥控器
git remote add bundle /local/path/to/my_changes.bundle