【问题标题】:reviewing commited but unpushed changes in the remote branch查看远程分支中已提交但未推送的更改
【发布时间】:2018-03-04 05:14:23
【问题描述】:

我从本地分支 (localbranch) 的 git 存储库中签出了一个分支 (remotebranch):

git checkout -b localbranch origin/remotebranch 

有权访问同一 git 存储库的人如何从远程计算机访问“本地分支”中已提交和未推送的更改?

提前谢谢你

【问题讨论】:

  • 只有当他可以访问你的机器时

标签: git git-branch git-checkout


【解决方案1】:

想要查看提交到本地 localbranch 分支(尚未推送到原始存储库)的更改的人需要对您的计算机具有某种访问权限才能克隆您的本地存储库并查看此类提交。

这意味着包含localbranch 的存储库需要在线或至少可以通过SSH 或Git 守护程序访问。如果您位于 NAT 或防火墙后面,设置可能会很困难。

【讨论】:

    【解决方案2】:

    您可以通过多种方式与其他用户共享更改,而无需推送到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
    

    【讨论】:

      猜你喜欢
      • 2015-08-16
      • 2012-09-17
      • 2013-08-31
      • 2016-07-20
      • 2021-03-14
      • 2011-01-02
      • 2018-03-29
      相关资源
      最近更新 更多