0

我对 Git 有点陌生。所以我在我的远程服务器上有了 origin/master 和 origin/upbranch。我的本地机器上也有一个主分支。我该如何设置它以便我可以从本地机器推送到原点/上分支?另外,我将如何设置从 origin/upbranch 拉入 origin/master?我可以通过静态地址访问远程服务器,但没有从远程访问本地的地址。

此外,您会为学习 Git 的人推荐任何参考资料吗?

编辑:将 origin/upstream 重命名为 origin/upbranch,因为我可能误解了它的含义。

master(本地)-> origin/upbranch(远程)-> origin/master(远程)

4

2 回答 2

0

如果您正在创建一个新分支,请跟踪它,它将自动设置。

git branch --track branch1 origin/branch1

如果要更改现有分支的跟踪,则需要修改 .git/config 文件

例子

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git://github.com/canuckistani/dotjs-addon.git
[branch "master"]
        remote = origin
        merge = refs/heads/master

如果您不习惯编辑配置文件,您可以按照下面评论中的建议尝试,即

git branch --set-upstream branch_name your_new_remote/branch_name

同样,您可以设置其他遥控器,例如上游等。

于 2012-06-20T22:58:26.333 回答
0

在这种情况下,上游是一个分支吗?它确实看起来像。我相信分支名称真的会让人感到困惑。

但要回答一些问题:

假设你有master -> origin/masterupstream -> origin/upstream。看起来您已经让本地分支机构跟踪远程分支机构。

我该如何设置它以便我可以从本地机器推送到源/上游?

切换到上游分支

 > git checkout upstream 
 ... awesome changes 
 > git commit -a -m "Did something awesome." 
 > git push origin upstream

您使用结帐切换到本地跟踪的上游分支。做一些改变。提交它们,它们将它们推回原点。

另外,我将如何设置从源/上游拉入源/主?

你不直接这样做。您必须在本地合并然后推送。

> git checkout upstream
> git pull origin upstream
> git checkout master
> git merge --no-ff upstream
> git commit -a -m "Merged upstream into master."
> git push origin master

将本地分支更改为上游。从远程分支中提取任何更改。如果存在合并问题,您必须先修复 + 提交,然后再切换回 master。切换到 master 分支并将上游的更改合并到 master 中。我关闭了快速转发,以便它创建一个新的合并提交,而不是仅仅移动 master 的指针。

提交合并,然后将其推送回远程服务器。

困惑

如果上游应该是另一个远程位置,例如起源,那么我不确切知道您要做什么,因为您将上游列为起源/上游。

据我所知,上游的名称将用于命名另一个远程位置。在这种情况下,来源将类似于上游。不掌握上游。但我仍然假设您创建了 2 个分支,一个称为 master(默认创建),一个称为 upstream,您希望在它们中工作并将上游合并到 master。

于 2012-06-21T01:02:26.303 回答