【问题标题】:Git Push Upstream Branch TrackingGit推送上游分支跟踪
【发布时间】:2020-09-26 04:34:35
【问题描述】:

我一直在向自己介绍 git,但如果我要与其他人一起参与一个项目,我无法理解如何组装我的工作流程。

假设我的任务是为现有代码库创建新的更新。我会首先从远程存储库中提取,创建一个新分支,进行更改,提交,合并到我自己的主存储库,最后推送到远程存储库。但是,一旦我的队友查看了代码并认为它​​很好,我希望将我所做的更改合并到远程仓库中。因此,在这种情况下,理想情况下,我可以在主版本的远程存储库上创建另一个分支,并将我在本地所做的更改推送到该分支,以便我的队友可以查看它。一旦他们认为没问题,我希望能够将远程仓库上的那个分支合并到主版本中。

所以就我的命令而言,它看起来像:

git pull 
git checkout -b new_update_branch
//make changes to code, etc.
git add *
git commit -m "update finished"
git checkout master
git merge new_update_branch
//somehow push the changes to a new branch on the remote repository
//i.e. create a branch on the remote repository too
//teammates look at this branch on the remote repository and ok it
git push origin master 

我将如何在远程存储库上创建一个分支,这样它也不会影响 master?

【问题讨论】:

    标签: git git-push


    【解决方案1】:

    理想情况下,您不应将您的更改从您的 featuredevelopment 分支合并到您的 local master 分支并直接更新 remote master

    在从本地的 master 中创建新的 featuredevelopment 分支之前,请将 local master 更新为 remote master

    #If you are not already in master then run the next command otherwise you can skip
    git checkout master 
    
    git pull origin master
    

    现在local masterremote master 是最新的,创建一个分支,您将在其中处理新更改以实现新功能

    git checkout -b feature
    

    现在您将切换到feature 分支。在这里进行所有需要的更改,一旦完成更改,您就可以在本地将更改提交到 feature 分支。

    git add .
    git commit -m "Commit message"
    

    一旦提交成功,您可以将更改推送到remote feature 分支,而不是直接合并到您的local master

    git push origin feature
    

    所有更改现在都推送到remote feature 分支。现在是时候向 master 分支提出 Pull Request 了,这样其他队友或其他合作者将能够看到正在进行的所有更改。 他们将根据他们的审查采取适当的行动。

    一旦审阅者对所做的更改感到满意,那么您的代码更改将被合并到远程master。 如果他们对更改不满意并且需要进行一些改进,那么您可能必须在 local feature 分支中进行相应的更改并推送到 remote feature 分支。并将进行审核。

    这样只有被批准的代码会被合并到你远程仓库的master,并且不会被污染。

    另外请确保每当您要处理新功能时,请创建一个具有不同名称的新分支,这样即使您的功能分支也不会受到污染。还要尽量保持每个功能分支对于每个功能都是独立的,以便进一步跟踪和解决任何问题。

    希望这有助于解决您面临的问题。

    【讨论】:

    • 是的,谢谢你,这清楚了很多。我还有两个问题:git push origin feature 是否会自动在远程存储库中创建一个新分支以及我/我的队友如何将origin/featureorigin/master 合并?
    • 是的,如果没有同名的远程分支,那么它会自动在远程创建一个新分支,如果已经存在,则将更改推送到该分支。所以来到下一个问题,有一个 PR 的概念,一旦提出 PR,你可以要求队友审查更改。它提供了一个很棒的功能,即仅突出显示更改,并使审阅者的生活变得轻松。在该 PR 本身中,可以选择将更改合并到目标 (master)。提升 PR 时可以选择源分支和目标分支。
    • 要了解更多关于拉取请求的信息,请通过this
    • 我正在研究 git push -u origin feature -u 标志与标准 git push 的作用到底有什么不同?
    • 它实际上为您设置了上游。请查看this 以更好地了解git push -u
    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 2014-02-04
    • 2018-02-12
    • 1970-01-01
    • 2016-02-22
    • 2019-03-08
    • 2023-01-14
    • 2018-02-17
    相关资源
    最近更新 更多