我创建了一个本地分支(XYZ),并从远程分支(ABC)签出了代码。 我的本地分支名称和远程分支名称不相同。
我将分支(XYZ)发布/推送到git。
我从中获取代码的初始远程分支(ABC)进行了一些更改。
如何将这些更改(从远程ABC分支的更改)放入我的本地分支(XYZ)并将其推送到我的远程分支(XYZ)?
我将流分支设置为ABC,并进行了git pull。所以变化来了,我可以看到有一些提交。只是感到困惑,如果我现在git push
,本地更改将转到哪里?因为我将流设置为ABC,所以它们转到ABC还是转到我之前发布/推送的XYZ分支。
请帮助我理解。翻阅了git文档,但非常困惑。
答案 0 :(得分:1)
它将推送到“跟踪的”远程分支。
使用命令git branch -vv
,您可以查看所有本地分支的哪个分支。
跟踪远程分支只能使用快捷键git push
和git 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
远程站点,并且您可以出于不同的目的(通常是拉回origin
或upstream
来引用它们从一个推到另一个)。
# for example
git pull origin master
git push upstream master
答案 3 :(得分:-1)
当您将更改从本地分支推送到远程分支时,可以指定远程分支的名称。默认情况下,它将是远程主分支。