我正在研究一些快速更新票证。我们决定在主分支中执行此操作,并将代码直接推送到存储库。但我最终做的不仅仅是快速更新,我们意识到这将影响很多地方。在进行更新时,我已经将我的代码提交到本地主分支。现在,我们决定不能将此代码直接推送到 master,因为我们最终没有足够的时间来测试。我们将创建单独的分支并使用此更改推送此分支,并在发布后合并它们并进行测试。
我的问题 - 如果我将从当前的主分支创建新分支并推送该新分支,这是否会影响我们的主分支?(因为我已经在本地承诺了主分支(
我将按照以下步骤操作:
git branch upgrade_branch
git checkout upgrade_branch
git add (all upgrade work)
git commit -m "upgrade for xxxx"
git checkout master
git push origin upgrade_branch
提前谢谢你!
只要你避免要求上游(origin
(Git仓库更新其master
,你就会没事的。 您概述的步骤应该运行良好。 但是,您可能希望在创建新分支后重新调整自己的master
分支名称,这样您就不能要求origin
存储库调整其master
。
此特定序列:
git branch upgrade_branch git checkout upgrade_branch
可以缩短为:
git checkout -b upgrade_branch
然后,您可以按照概述进行添加和提交。 执行后:
git checkout master
,你可以运行git status
。 如果这说明您的master
领先于origin/master
,您可以使用git reset --hard origin/master
将您自己的master
倒回到origin/master
标识的相同提交。 这意味着即使您不小心跑git push origin master
,也不会发生任何事情。
如果push.default
设置为simple
(这是通常情况(,则需要使用:
git push -u origin upgrade_branch
最初是为了在 Git 上创建新的分支upgrade_branch
在origin
.
注意:理解这一点的方法是每个 Git 都有自己的分支名称。您的分支名称不必与其名称相同。 通常,您将使用与他们相同的分支名称,因为记住您的分支名称fred
对应于他们的分支wilma
,您的barney
与他们betty
相对应,依此类推,但原则上,至少,您的名称和它们的名称是完全不同的。 因此,即使您更改了master
,也不会对他们的master
产生影响,除非您的 Git 调用他们的 Git 并要求他们更改他们的Git。
这就是git push
的意义所在:你的 Git 调用其他一些 Git,在需要时给他们新的提交,然后要求或告诉他们更改一些名字。 您要求或告诉他们更改的名称由您决定,git push
时间,git push origin update_branch
要求他们根据您的姓名更改(或创建(他们的名字update_branch
update_branch
。