切换到git config push.default当前有什么影响?

时间:2017-09-12 12:02:07

标签: git bash push git-push

我有一个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 - 推送当前分支以使用相同的更新分支   接收端的名称。适用于中央和非中央   工作流程。

  •   
  • 简单 - 在集中式工作流程中,像上游一样添加工作   如果上游分支的名称不同,则拒绝推送的安全性   来自当地的。

         

    当推到与遥控器不同的遥控器时   通常来自,作为当前工作。这是最安全的选择   适合初学者。

         

    此模式已成为Git 2.0中的默认模式。

  •   

那么,切换到git config push.default current会有什么影响?我想了解一些我可能遇到问题的可能情况,因为Git有不同的行为。

1 个答案:

答案 0 :(得分:3)

这意味着当你推送到任何仓库时,git会假设分支名称对应。如果您只是推送到一个远程(origin)并且您始终在远程和本地的同一分支使用相同的名称,那么它会没问题。如果要设置其他类型的分支映射 - 例如,如果本地功能分支feature_1应该转到远程分支dev/features/feature_1或类似的东西 - 那么您不希望使用{{1} }作为simple

没有任何隐藏的含义;您发布的文档解释了行为,如果这是您想要的行为,则可以使用它。