首页 > 解决方案 > 参数是什么在 Git 和 GitHub 中是什么意思?

问题描述

我是 Git 和 GitHub 的新手。我刚开始学习。这很可能是一个非常愚蠢的问题,我很抱歉提出这样的问题。所以,这是我的问题——

我对以下命令的含义<refname>和含义感到困惑:<expect>

  1. git push --force-with-lease=<refname>
  2. git push --force-with-lease=<refname>:<expect>

我知道git push --force-with-lease,在默认/没有任何指定参数的情况下,将拒绝更新分支,除非远程跟踪分支(本地分支)和远程分支指向相同的提交引用。

但是,我无法理解git push --force-with-lease这些参数与它一起使用时的工作原理,因为我不明白这些参数的确切含义。

因此,如果有人可以演示一些使用这些参数的命令的示例,并解释这些参数的确切含义,我将不胜感激。

标签: gitgithubparameters

解决方案


我在“默认情况下”中提到了--force-with-lease=<refname>:<expect>语法push --force-with-lease

如果您不提供预期值,主要问题是像 Microsoft 的 VSC 这样的编辑器具有在后台自动获取的功能,它绕过了--force-with-lease&提供的保护--force-with-lease=<refname>

当您从多个存储库编辑文件时尤其如此,这意味着多个远程“来源”(每个存储库一个)

例如,为了更加安全:

git fetch              # update 'master' from remote
git tag base master    # mark our base point
git rebase -i master   # rewrite some commits
git push --force-with-lease=master:base master:master

那将

  • 为您已经看到并愿意覆盖的上游代码版本创建一个基本标记,
  • 改写历史,
  • master 如果远程版本仍为 ,则base强制推送更改,无论您的本地remotes/origin/master已在后台更新到什么。

推荐阅读