切换到 git config push.default current 有什么影响?
What are the implications of switching to git config push.default current?
我有一个 Bash 函数来防止在没有上游分支的情况下推送到远程存储库(例如 GitHub)时出错。您可能熟悉此错误:
$ git checkout -b test
$ git push
fatal: The current branch test has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin test
为了解决这个问题,我所做的是拦截对 git push
的任何调用,看看我是否收到与没有上游分支相关的错误。如果出现该错误,我的终端将自动为我执行它,而不是复制并粘贴上面建议的命令。
如果你好奇的话,这是代码:
https://github.com/arturoherrero/dotfiles/blob/6f517a0b7287ac61174dfd2b6c9ee5bf9a9c2e96/system/git.sh#L22-L34
我当前的 Git 配置是 push.default simple
,但今天我才意识到 我可以使用 push.default current
来实现相同的行为(删除我的自定义代码)。
参考。 https://www.kernel.org/pub/software/scm/git/docs/git-config.html
current - push the current branch to update a branch with the same
name on the receiving end. Works in both central and non-central
workflows.
simple - in centralized workflow, work like upstream with an added
safety to refuse to push if the upstream branch’s name is different
from the local one.
When pushing to a remote that is different from the remote you
normally pull from, work as current. This is the safest option and is
suited for beginners.
This mode has become the default in Git 2.0.
那么,切换到 git config push.default current
意味着什么?我想了解一些可能出现问题的情况,因为 Git 有不同的行为。
这意味着当您推送到任何回购时,git 将假定分支名称对应。如果你只推送到一个远程(origin
)并且你总是对远程和本地的同一个分支使用相同的名称,那么就没问题了。如果您想设置其他类型的分支映射 - 例如,如果本地功能分支 feature_1
应该转到远程分支 dev/features/feature_1
或类似的东西 - 那么您就不想使用 simple
作为你的 push.default
.
实际上没有任何隐藏的含义;您发布的文档解释了该行为,如果这是您想要的行为,您可以使用它。
我有一个 Bash 函数来防止在没有上游分支的情况下推送到远程存储库(例如 GitHub)时出错。您可能熟悉此错误:
$ git checkout -b test
$ git push
fatal: The current branch test has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin test
为了解决这个问题,我所做的是拦截对 git push
的任何调用,看看我是否收到与没有上游分支相关的错误。如果出现该错误,我的终端将自动为我执行它,而不是复制并粘贴上面建议的命令。
如果你好奇的话,这是代码: https://github.com/arturoherrero/dotfiles/blob/6f517a0b7287ac61174dfd2b6c9ee5bf9a9c2e96/system/git.sh#L22-L34
我当前的 Git 配置是 push.default simple
,但今天我才意识到 我可以使用 push.default current
来实现相同的行为(删除我的自定义代码)。
参考。 https://www.kernel.org/pub/software/scm/git/docs/git-config.html
current - push the current branch to update a branch with the same name on the receiving end. Works in both central and non-central workflows.
simple - in centralized workflow, work like upstream with an added safety to refuse to push if the upstream branch’s name is different from the local one.
When pushing to a remote that is different from the remote you normally pull from, work as current. This is the safest option and is suited for beginners.
This mode has become the default in Git 2.0.
那么,切换到 git config push.default current
意味着什么?我想了解一些可能出现问题的情况,因为 Git 有不同的行为。
这意味着当您推送到任何回购时,git 将假定分支名称对应。如果你只推送到一个远程(origin
)并且你总是对远程和本地的同一个分支使用相同的名称,那么就没问题了。如果您想设置其他类型的分支映射 - 例如,如果本地功能分支 feature_1
应该转到远程分支 dev/features/feature_1
或类似的东西 - 那么您就不想使用 simple
作为你的 push.default
.
实际上没有任何隐藏的含义;您发布的文档解释了该行为,如果这是您想要的行为,您可以使用它。