簡體   English   中英

Git:管理分支機構

[英]Git: Managing Branches

我想用頭來“同步”一個遠程分支,這樣當我最終合並它時,它不會讓人頭疼。 因此,我想嘗試將頭部更改拉入我的分支,看看它有多么不同。

如何在Git中完成以下工作流程?

  1. 結賬遠程分支。
  2. 一旦我檢查出來,將變化從頭部拉入其中。
  3. 編輯一些分支
  4. 將分支(現在與HEAD非常相似)推回到同一分支的遠程版本(不影響頭部)。

任何關於更好的工作流程以完成同樣事情的提示都將非常有用。

這都是非常基本的東西:

# make sure your notion of the remote is up to date
git fetch origin
# create and check out a branch, at the same place as the remote master branch
git checkout -b origin-master origin/master
# merge your local master
git merge master
# test, edit away, hack hack hack
git add ...
git commit ...
# push back to origin
git push origin origin-master:master

術語說明:

  • 拉取是抓取和合並的組合。 當你在當地的分支機構運營時,沒有必要去取,所以你要合並,而不是拉動。

  • HEAD並不代表您認為的含義。 (也許你是一個cvs / svn人。)HEAD只是當前檢出的提交(通常通過分支名稱引用)。 所以你沒有合並HEAD,你正在合並那個分支。 我在這里稱它為主人。

至於你關於更好的工作流程做同樣事情的問題......好吧,這很難回答。 你的目標有點含糊不清。 你說“慢慢”同步並引用“最終合並它”,但是你概述的步驟一次完成所有這些,所以......好吧,它們都被合並了。 以后什么也沒做。 如果你想以增量方式進行,你可以簡單地重復我給出的步驟,在歷史記錄中選擇中間提交以便每次合並。 你還想要合並的方向還有點不清楚。也許你真的想從你的分支開始,並將遠程資料合並到其中?

 git checkout -b master-merging master
 git fetch origin
 git merge origin/master
 # test, hack, commit, push...
 git push origin master-merging:master

或者使用增量合並:

 git checkout -b master-merging master
 git fetch origin
 git merge origin/master~20    # 20 commits before origin/master
 # test, hack, commit
 git merge origin/master~10    # 10 commits before origin/master
 # test, hack, commit
 git merge origin/master
 # test, hack, commit, push...

暫無
暫無

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

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