我一直在用github犯很多菜鸟错误,结果我正在寻找一种万无一失的方法(确保我安全!),以确保:
a)我在fork上创建的所有新分支均基于原始主文件,而不是其他某些分支,并且...
b)我的原始母版始终与上游母版保持最新,并且...
c)当我提交(推送?)时/之前,我的更改将重新基于上游主服务器。
到目前为止,这就是我所拥有的...
要创建新分支:
git fetch --all --tag
git pull upstream master
git push origin master
git checkout -b my_branch_name -t origin/master
Run Code Online (Sandbox Code Playgroud)
要将我的更改存储到该分支:
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
Run Code Online (Sandbox Code Playgroud)
要在以后加载现有分支(例如,根据PR反馈进行一些其他更改):
git fetch --all --tag
git pull upstream master
git push origin master
git checkout my_branch_name -t origin/master
Run Code Online (Sandbox Code Playgroud)
然后将更新保存到该分支:
git add -A
git commit --amend --no-edit
git fetch --all --tag
git pull --rebase upstream master
git push origin my_branch_name -f
Run Code Online (Sandbox Code Playgroud)
我必须承认我不完全理解其中一些命令的功能-似乎有很多方法可以执行许多相似的操作,尽管有很多谷歌搜索/阅读工作,但我仍然是菜鸟。
任何指导非常感谢!
如果upstream master
指的是服务器/远程中最新的 master 分支,您可以简单地运行以下 cmd 来创建一个新分支。
git fetch origin master
git checkout -b <new_branch> FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
如果你不介意在分离的 HEAD 上工作,你也可以运行
git fetch origin master
git checkout FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
设置上游后
git checkout -b branch-name
git fetch upstream
git reset --hard upstream/master
git push --set-upstream origin branch-name
Run Code Online (Sandbox Code Playgroud)
要基于“当前”分支创建功能分支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
Run Code Online (Sandbox Code Playgroud)
请注意,新的更改始终有可能不断进入master
GitHub 上的远程分支。实际上,您通常应该假设这种情况将会发生,并且您需要通过合并或变基来处理它。
归档时间: |
|
查看次数: |
3258 次 |
最近记录: |