我一直在用github犯下很多新手的错误,因此我寻求一种万无一失的(我证明!)方法来确保:
a)我在fork上创建的所有新分支都基于origin master,而不是其他分支,并且......
b)我的原始主人总是与上游大师保持同步,并且......
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
我必须承认我并不完全理解其中一些命令的作用 - 似乎有很多方法可以做很多类似的声音,尽管有很多谷歌搜索/阅读我仍然是一个新手
非常感谢任何指导!
答案 0 :(得分:5)
设置上游之后
git checkout -b branch-name
git fetch upstream
git reset --hard upstream/master
git push --set-upstream origin branch-name
答案 1 :(得分:3)
根据"当前"创建功能分支。 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
分支。实际上,你通常应该假设这种情况会发生,你需要通过合并或变基来处理它。
答案 2 :(得分:2)
如果upstream master
引用服务器/远程中的最新主分支,则只需运行以下cmd即可创建新分支。
git fetch origin master
git checkout -b <new_branch> FETCH_HEAD
如果你不介意在分离的HEAD上工作,你也可以运行
git fetch origin master
git checkout FETCH_HEAD
答案 3 :(得分:0)
如果您要保留下游主服务器的更改,我会执行以下操作以使下游主服务器保持相同但在上游主服务器上创建新分支。
git checkout -b upstream-master
git fetch upstream
git revert --hard upstream/master
git push --set-upstream origin upstream-master