检查远程分支中的已提交但未按下的更改

时间:2017-09-22 15:07:02

标签: git git-branch git-checkout

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

git checkout -b localbranch origin/remotebranch 

有权访问同一个git存储库的人如何访问来自远程计算机的“localbranch”中的提交和未注册更改?

提前谢谢

2 个答案:

答案 0 :(得分:0)

希望查看已提交到本地localbranch分支(尚未推送到原始存储库)的更改的人需要对您的计算机进行某种访问才能克隆本地存储库并查看此类提交

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

答案 1 :(得分:0)

您可以通过多种方式与其他用户分享更改,而无需转到remotebranch上的origin

当您说“未推送”时,这可能仅表示您还不想更新remotebranch上的origin,或者您可能特别不希望这些提交在{ {1}};所以这会影响你的选择。

最简单的(我会说最典型的)事情就是在origin上创建一个不同的分支。通常,如果您在创建origin时知道自己会这样做,则可能会略有不同,例如

localbranch

创建本地分支跟踪git checkout remotebranch ,然后

origin/remotebranch

然后,您可以将git checkout -b localbranch 推送到localbranch,而不会影响origin/localbranch。 (即使您从remotebranch创建了localbranch,只要您正确设置跟踪或使用正确的refspec,您仍然可以完成此工作。)

稍后您可以将origin/remotebranch bakc合并到localbranch(如果没有人修改remotebranch,可能会使用快进。)

但是,如果您愿意将提交置于原点,那么这是唯一可行的。如果您想与将要审核它们的人共享提交 ,那么您仍有几个选项。

正如克劳迪奥建议的那样,你可以让你的合作者将你的本地仓库作为遥控器添加到他们的本地仓库。这取决于你的repo是否可以使用git理解的协议从他们的计算机访问;并且它要求你在他们取得你的工作时上网。

您可以通过创建包含本地更改的包来解决这些问题。

remotebranch

然后你发送(电子邮件,ftp,无论如何)git bundle create my_changes.bundle origin/remotebranch..localbranch 给你的合作者,他们可以把它当作只读遥控器来对待

my_changes.bundle