Git push将把我的更改推送到哪个分支?

时间:2019-03-14 15:32:21

标签: git github

我创建了一个本地分支(XYZ),并从远程分支(ABC)签出了代码。 我的本地分支名称和远程分支名称不相同。

我将分支(XYZ)发布/推送到git。

我从中获取代码的初始远程分支(ABC)进行了一些更改。

如何将这些更改(从远程ABC分支的更改)放入我的本地分支(XYZ)并将其推送到我的远程分支(XYZ)?

我将流分支设置为ABC,并进行了git pull。所以变化来了,我可以看到有一些提交。只是感到困惑,如果我现在git push,本地更改将转到哪里?因为我将流设置为ABC,所以它们转到ABC还是转到我之前发布/推送的XYZ分支。

请帮助我理解。翻阅了git文档,但非常困惑。

4 个答案:

答案 0 :(得分:1)

它将推送到“跟踪的”远程分支。

使用命令git branch -vv,您可以查看所有本地分支的哪个分支。

跟踪远程分支只能使用快捷键git pushgit push <name-of-remote>,而git知道要更新哪个远程分支。

但是您始终可以使用完整的命令行git push <name-of-remote> <name-of-the-branch-you-want>,这将在远程存储库中创建此分支。

这可能很有用,但应谨慎使用,因为这很容易造成混乱……

答案 1 :(得分:0)

关于如何将ABC转换为XYZ

ABC 中签出后,您需要执行 git pull origin ABC ,以确保您的本地分支机构 XYZ >已完全更新。

此后,执行 git checkout XYZ ,最后使用命令 git merge ABC 合并 XYZ 。如果您有冲突,则会显示一条消息警告您,要求您在合并完成之前解决冲突。

如果您按下 XYZ 分支,则会将本地分支发送到远程仓库。

git - the simple guide网站上有一个很好的入门教程。

答案 2 :(得分:0)

您确实可以设置不同的遥控器,例如,一个要从中拉出,另一个要向其中推入。如果您已经有了遥控器,请从中拉出一个遥控器,然后添加一个遥控器:

git remote add upstream <url_of_upstream_git_server>

它不会覆盖您从中拉出的origin远程站点,并且您可以出于不同的目的(通常是拉回originupstream来引用它们从一个推到另一个)。

# for example
git pull origin master
git push upstream master

答案 3 :(得分:-1)

当您将更改从本地分支推送到远程分支时,可以指定远程分支的名称。默认情况下,它将是远程主分支。