我使用以下命令推送到远程分支:

git push origin sandbox

如果我说

git push origin

这是在我的其他分支中也推送更改,还是只更新我的当前分支?我有三个分支:master、production和sandbox。

git推送文档对此不是很清楚,所以我想永远澄清这一点。

下面的git push命令会准确更新哪些分支和远程?

git push 
git push origin

上面的原点是一个遥控器。

我知道gitpush[remote][branch]将只将该分支推送到远程。


当前回答

我在.bashrc文件中添加了以下函数,以自动化这些任务。它执行gitpush/gitpull+当前分支的名称。

function gpush()
{
  if [[ "x$1" == "x-h" ]]; then
    cat <<EOF
Usage: gpush
git: for current branch: push changes to remote branch;
EOF
  else
    set -x
    local bname=`git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed -e "s#/# #"`
    git push ${bname}
    set +x
  fi
}

function gpull()
{
  if [[ "x$1" == "x-h" ]]; then
    cat <<EOF
Usage: gpull
git: for current branch: pull changes from
EOF
  else
    set -x
    local bname=`git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed -e "s#/# #"`
    git pull ${bname}
    set +x
  fi
}

其他回答

git推送将尝试将所有本地分支推送到远程服务器,这可能是您不希望的。我有两个方便的设置来处理这个问题:

适当地别名“gpull”和“gpush”:

在我的~/.bash_profile中

get_git_branch() {
  echo `git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
}
alias gpull='git pull origin `get_git_branch`'
alias gpush='git push origin `get_git_branch`'

因此,执行“gpush”或“gpull”将只推送我的“当前打开”分支。

我只是把它放在.gitconfig别名部分,喜欢它的工作方式:

pub = "!f() { git push -u ${1:-origin} `git symbolic-ref HEAD`; }; f"

将使用gitpub或另一个具有gitpub repo名称的repo将当前分支推送到源。美味的

我在.bashrc文件中添加了以下函数,以自动化这些任务。它执行gitpush/gitpull+当前分支的名称。

function gpush()
{
  if [[ "x$1" == "x-h" ]]; then
    cat <<EOF
Usage: gpush
git: for current branch: push changes to remote branch;
EOF
  else
    set -x
    local bname=`git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed -e "s#/# #"`
    git push ${bname}
    set +x
  fi
}

function gpull()
{
  if [[ "x$1" == "x-h" ]]; then
    cat <<EOF
Usage: gpull
git: for current branch: pull changes from
EOF
  else
    set -x
    local bname=`git rev-parse --abbrev-ref --symbolic-full-name @{u} | sed -e "s#/# #"`
    git pull ${bname}
    set +x
  fi
}

我只是将代码提交到一个分支并将其推送到github,如下所示:

git branch SimonLowMemoryExperiments
git checkout SimonLowMemoryExperiments
git add .
git commit -a -m "Lots of experimentation with identifying the memory problems"
git push origin SimonLowMemoryExperiments

git 2.37.0中的新配置

运行以设置自动设置远程,而不是更改推送默认行为

git config --global --add --bool push.autoSetupRemote true

它与push配合得很好。默认为简单的上游

参考文献:答案推特文档犯罪