簡體   English   中英

將分支推送到 github 后,是否必須手動將分支與 master 合並?

[英]Do I have to manually merge a branch with master after pushing the branch to github?

我問這個問題是因為我有點困惑(只是有點困惑)。

當我使用Pycharm (在 master 以外的分支上)時,它為我提供了提交分支的更改並將其推送到 github 的機會。

所以我就是這樣做的。

現在...

之后,我運行這個:

current branch *test

1.git pull origin master
2.git checkout master
3.git merge test

1.它告訴我一切都是最新的。 然后繼續3.它還告訴我所有最新的master

問題:

  1. 當我提交一個分支到 github 時會發生什么?
  2. 將該分支推送到 master 后,是否必須運行上面的代碼塊?

編輯

  1. 我從master branch
  2. 我運行git checkout test

出現一條消息。

switched to branch test. your branch is ahead of origin/test by 3 commits.
(use "git push" to publish your local commits)
  1. 我運行命令git pull origin master

出現一條消息,多行顯示正在更新的分支。

  1. 我重新運行命令git pull origin master

    來自http://github.com/username/project的消息出現

    • 分支主 -> FETCH_HEAD 已經是最新的
  2. 我按下綠色按鈕提交更改並推送。 彈出窗口似乎nothing to commit

  3. 我運行命令git checkout master

您的分支已經與 origin/master 保持同步

  1. 我運行命令git merge test

    都是最新的!!!

那么為什么要git merge test呢?

1. 它告訴我一切都是最新的。 然后繼續到 3。它也告訴我所有與主人的最新情況。

$ git pull origin master

這個命令相當於

$ git fetch origin master
$ git merge master

第一步從origin遠程(這是您的 GitHub 存儲庫的昵稱)中的master分支下載所有更改。 第二個命令將master (現在包括來自 GitHub 的任何更改)合並到當前分支 ( test )。 由於您可能在master上創建了分支並且沒有進行任何其他更改,因此您會收到所有內容都是最新的消息。

我不確定為什么第 3 步說所有內容都與 master 保持同步。 您可能執行了其他未在此處發布的命令,或者將相同的更改直接提交給master或之前的合並test

問題:

  1. 當我提交一個分支到 github 時會發生什么?

當您將分支推送到 GitHub 時,您會在 GitHub 存儲庫中創建該分支以及它所代表的整個更改歷史記錄。 任何其他分支都沒有任何變化,包括master

在將該分支推送到 master 后,是否必須運行上面的代碼塊?

“將一個分支推送到 master”沒有任何意義,因為master也是一個分支。 您只能將分支推送到遠程. 或者您可以一個分支合並到另一個分支。

要使用本地更改更新 GitHub 存儲庫,您有兩種選擇:

  1. 手動將您的分支合並到master ,然后將master推送到 GitHub

     $ git checkout master $ git merge test $ git push origin master

    請注意,這僅執行原始命令中的第 2 步和第 3 步。 您原來的 Step 1 將master合並到test 僅當master有更改並且您想要檢查合並沖突並在它們存在時解決它們時才需要這樣做。 相反,您想要做相反的事情:將test合並到master 這就是為什么我先結帳master然后合並test

  2. 將分支推送到 GitHub 並在您的 GitHub 存儲庫中創建拉取請求。 然后,當您合並 PR 時,GitHub 上的master將更新,您需要將更改拉回本地存儲庫:

     $ git checkout master $ git pull origin master

ps 如果您願意,您可以在 PyCharm 中執行所有這些命令的等效操作。

是的。 您必須手動合並分支。 因為在當前狀態下,您的回購中有兩個分支。 所以如果你想將新分支合並到主分支然后

git checkout master
git merge <your-new-branch>
git push -u origin master

這應該可以完成工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM