Ale*_*lec 5 git version-control github git-fork
我有一个带有两个远程控制器的本地git repo:,upstream原始主repo和origin我的GitHub分支。
我想基于创建新分支upstream/master,将其推送到originPR,并定期从中引入新更改upstream/master。
有没有一种方法可以设置我的分支机构,使其在默认情况下发生?即:
$ git checkout -b my-new-branch --some-other-flags
$ git maybe some other command
# branch 'my-new-branch' points to 'upstream/master' and is checked out
# make changes, git commit
$ git push # pushes to origin/my-new-branch
$ git pull # pulls from upstream/master
Run Code Online (Sandbox Code Playgroud)
以下似乎有效:
git config push.default current && git config remote.pushdefault origin
然后,使用git checkout -b new-branch upstream/master.
git push推到origin/my-branch,git pull拉出upstream/master。
对于基于其他本地分支而不是上游/主分支的分支,事情似乎有点棘手。我可以git config branch.autoSetupMerge always,但是分支会从它们开始的本地分支中拉出,而不是upstream/master. 或者我可以在创建分支时将上游设置为upstream/master显式-u。我不确定哪个更合适。
另一个烦恼是,当我签出有更改的分支时,git 有时会告诉我:
您的分支领先于 'upstream/master' 7 次提交。(使用“git push”来发布你的本地提交)
但A)它的罚款,我是我前进的上游,我等着合并在一个PR这些变化,以及B)更重要的是,git push将推动new-branch在原点,而不是master在上游。
但这并不总是发生,所以我认为这里还缺少一些其他变量。
创建分支后,您需要将其推送到上游并进行设置,以便您local可以跟踪remote.
您可以按如下方式执行此操作(假设您已经在 master 分支中):
// Create and checkout the new branch
git checkout -b <your_branch_nane>
// Push new branch upstream and set it to track remote branch
git push -u origin <your_branch_name>
Run Code Online (Sandbox Code Playgroud)
这会将你的新分支推向上游;该-u参数将其设置为跟踪远程分支。论证-u只是--set-upstream论证的捷径。
您可以阅读有关使用远程分支的更多信息。
| 归档时间: |
|
| 查看次数: |
587 次 |
| 最近记录: |