簡體   English   中英

Git:如何確保新分支基於上游 master

[英]Git: How to ensure new branch is based on upstream master

我在 github 上犯了很多新手錯誤,因此我正在尋找一種萬無一失(我證明!)的方法來確保:

a) 我在 fork 上創建的所有新分支都基於 origin master,而不是其他某個分支,並且...

b) 我的 origin master 總是與上游 master 保持同步,並且......

c) 當/在我提交(推送?)之前,我的更改將重新基於上游主服務器。

這是我到目前為止...

創建新分支:

git fetch --all --tag
git pull upstream master
git push origin master
git checkout -b my_branch_name -t origin/master

要將我的更改存儲到該分支:

git add -A
git commit -m "Summary of what changed"
git fetch --all --tag
git pull --rebase upstream master
git push origin my_branch_name

稍后加載現有分支(例如,根據 PR 反饋進行一些其他更改):

git fetch --all --tag
git pull upstream master
git push origin master
git checkout my_branch_name -t origin/master

然后將我的更新保存到該分支:

git add -A
git commit --amend --no-edit
git fetch --all --tag
git pull --rebase upstream master
git push origin my_branch_name -f

我必須承認我並不完全理解其中一些命令的作用 - 似乎有很多方法可以做很多類似的事情,盡管有很多谷歌搜索/閱讀,我仍然是一個菜鳥。

非常感謝任何指導!

如果upstream master指的是服務器/遠程中最新的 master 分支,您可以簡單地運行以下 cmd 來創建一個新分支。

git fetch origin master
git checkout -b <new_branch> FETCH_HEAD

如果你不介意在分離的 HEAD 上工作,你也可以運行

git fetch origin master
git checkout FETCH_HEAD

設置上游后

git checkout -b branch-name
git fetch upstream
git reset --hard upstream/master
git push --set-upstream origin branch-name

要基於“當前” master分支創建功能分支,您應該執行以下步驟:

git checkout master                # switches to your local master branch
git pull origin master             # updates remote tracking branch, merges into local master
git checkout -b my_feature_branch  # create a new branch from your updated local master

請注意,新的更改總是有可能不斷進入 GitHub 上的遠程master分支。 實際上,您通常應該假設這種情況會發生,並且您需要通過合並或重新定位來處理它。

如果您想保留下游 master 中的更改,我將執行以下操作以保持下游 master 相同,但在上游 master 上創建一個新分支。

git checkout -b upstream-master
git fetch upstream
git reset --hard upstream/master
git push --set-upstream origin upstream-master

暫無
暫無

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

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