![](/img/trans.png)
[英]How to update my working Git branch from another branch (develop) ? using github Desktop App
[英]How to update my working Git branch from another branch (develop)?
一個月前,我從主develop
分支創建了一個名為feature1
的新分支。
⇒ git branch
develop
* feature1
我已經在feature1
上工作了一個月,並且已經推動了很多變化來develop
。
如何使用develop
的最新提交更新我當前的分支feature1
?
我不想結帳master
並將我的feature1
分支合並到其中。 我也不想使用git cherry-pick
手動將提交從develop
移動到feature1
。
我該怎么做呢?
您只需將開發合並到功能1:
git checkout feature1
git merge develop
無需涉及其他分支,例如 master。
首先,您需要更新您的開發分支,然后檢查您的功能並合並/重新設置它。
git checkout develop
git pull
git checkout feature/myfeature
現在您可以決定是否運行:
git merge develop
git rebase develop
merge
:保留分支中的所有提交歷史記錄,如果您的部分提交有很多有趣的內容,這很重要。
rebase
: rebase 意味着從feature
中刪除提交歷史,而不是從develop
中獲得歷史; 在某些團隊中,此選項是強制性的。
准備好后,您可以推送到自己的分支(例如拉取請求)
git push origin feature/myfeature
這個用例對於保持更新您的 PR 分支非常有幫助。 首先,我建議您首先獲取遠程更改,即git fetch
然后從develop
合並或變基,但從遠程更改,例如
git rebase -i origin/develop
或者
git merge origin/develop
這樣,您將更新您的 PR 分支,而無需在分支之間來回切換。
如果您不希望develop
頭和feature1
頭都合並到feature1
中,而是希望在使用develop
的最新編輯“更新” feature1
分支時保持每個分支頭不同,請不要使用 fast-forward :
git pull
git co feature1
git pull
git merge --no-ff develop
git push
我個人每次執行合並時都嘗試使用--no-ff
,因為在我看來它可以保持歷史非常干凈。
分支機構:
開發 ====> 開發
功能1 ====> 工作
步驟 1從站點發送 Git
檢查您正在同步的分支
git status
為提交添加文件
git add .
帶有描述的提交
git commit -m "COMMENT"
發送到您同步的分支
git push
步驟 2將更新后的工作分支與 DEV(開發)同步 - 將工作分支與開發分支同步(更新開發分支)
與遙控器同步並切換到DEV分支
git checkout DEV
請求合並您正在與 feature1 分支同步的分支
git merge feature1
將當前分支與 feature1 分支合並
git push
第 3步 GIT 查找遠程 - 從更新的開發分支更新工作分支
連接到參考分支
git checkout DEV
搜索更改
git pull
與您的工作分支同步
git checkout feature1
請求合並與 DEV 分支同步的分支
git merge DEV
將當前分支與 DEV 分支合並
git push
我做了一個新的分支為我的代碼就像一個月前,我創建從開發分支特征1支。
⇒ git branch
develop
* feature1
我已經使用Feature1了一個月,並且許多更改都被推送到了開發分支上,如何使用開發一個的最新提交來更新當前的分支Feature1 ?
我不想簽出master並合並我的feature1分支。 我也不想使用git cherry-pick來將提交從develop手動移動到feature1。
有什么幫助嗎?
為了避免使用簡單的合並從開發中提交,我發現更簡單(技術較少)的方法是特別是如果你已經推送:
feature1_b
feature1
合並到feature1_b
feature1
因此,當您將feature1_b
的 PR 轉為開發時,它只會包含您的新更改,而不是整個提交歷史。
如果您還沒有推送,那么@stackdave 的答案是一個很好的答案。
$ git checkout <another-branch> <path-to-file> [<one-more-file> ...]
$ git status
$ git commit -m "Merged file from another branch"
然后根據您的要求運行合並或變基
我找到了解決方案。 簽出上一個分支並拉取新分支https://stackoverflow.com/a/71306254/17779236
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.