Git - 将存储库与签出分支同步的最简单方法

2023-12-09

我的工作流程基本上是:

  • 在我的台式电脑上创建一个存储库
  • 对其进行一些工作并提交更改
  • 克隆到我的笔记本电脑上
  • 致力于此,提交更改

现在我想将更改与我的桌面同步。试git push desktop.local:~/my-repo会失败,因为master 分支已经签出。我知道有两种解决方案:

  1. 在我的电脑上的另一个目录中创建第三个裸存储库,并从那里更新两个工作副本。但是签出两个工作副本的单个中央存储库听起来就像……SVN!除了笨拙之外,因为我不能只使用svn update and svn commit要与此中央存储库同步 - 需要额外的步骤才能根据提交到 Git 中工作副本的更改实际更新中央存储库。

  2. 推送到一个单独的分支并将该分支合并到我的桌面工作副本中。这还不算太糟糕,但是...

...我不明白的是:如果我只是 SSH 到台式电脑并发出git pull laptop.local:~/my-repo, 有用!它将提交的更改拉入并更新签出的主分支,不问任何问题。为什么不能git push自己做这个吗?

所以这是我的问题:是否有一个命令的作用与ssh- 进入我的台式电脑并发出pull?


问题是,当你试图推动时,你会同时做两个动作。 第一个是更新 git 树,第二个是更新笔记本电脑上的工作目录。因此,在推送过程中存在一种隐式的“签出”,而 git 拒绝这样做,这是正确的。 想象一下,如果有人真的在您的台式电脑上工作,会发生什么。 当您执行 SSH 时,情况有所不同,您位于工作目录中,您对所做的一切负责,因此可以做任何您想做的事情,删除文件,“拉取”。因此,在某种程度上,推送不允许您(默认情况下)弄乱远程计算机,这似乎很正常。

Update

如果您将 receive.denyCurrentBranch 设置为ignore,则可以推送,但您仍然必须将工作目录与代码的“最新”版本(您刚刚推送的版本)“同步”。这意味着您仍然有 2 个命令在每台计算机上运行一个

如果您确实只想运行一个命令,请使用 shell 的功能并创建一个别名,该别名可以从台式计算机执行 git pull

alias remote_pull=ssh <desktop> "cd <path>; git pull"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git - 将存储库与签出分支同步的最简单方法 的相关文章

  • Visual Studio Code 内置故事,用于查看 git 提交历史记录并对其内容进行比较

    In this https stackoverflow com questions 37899765 how can i view the git history in visual studio code 60013101 noredir
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa
  • Spring Cloud Config - 不允许使用 git-upload-pack

    我有一个在 docker 环境中运行的 spring boot 应用程序 它连接到 Git 存储库以获取应用程序的配置 我的问题是 当尝试获取 properties 文件时 应用程序有时会出错 这很奇怪 因为如果我更改用户和密码 同一个应用
  • TortoiseGit - 更改默认合并消息

    系统描述 Windows 7的 git版本2 10 1 windows 1 乌龟Git 2 3 0 0 I want 合并提交消息在不同的情况下有所不同fully自动方式 no manual amend Summary 在windows上
  • 尝试配置 GIT 时 Eclipse 没有响应

    Windows 10 专业版 64 位SSD金士顿 i5 4690Eclipse 版本 全部工作空间 空问题 每次我尝试配置 TEAM gt GIT gt 配置或尝试导入 创建本地 远程 git 时 Eclipse 都会冻结 直到我强制用任
  • GIT 和 Ruby:如何从 ruby​​ 脚本内部取消设置 GIT_DIR 变量?

    我编写了一个非常简单的 部署 脚本作为我的post update挂钩到我的裸 git 存储库中 变量如下 live domain mydomain com staging domain stage mydomain com git repo
  • 如何获取 git 存储库中所有文件的计数?

    如何获取 git 存储库中当前所有文件的计数 您可以使用以下命令获取 git 存储库中所有跟踪文件的计数 git ls files wc l 命令分解 The git ls files命令本身打印出存储库中所有跟踪文件的列表 每行一个 Th
  • 删除 Xcode 项目的源代码控制

    我在 Xcode 项目上使用源代码控制已经有一段时间了 但现在我不想使用源代码控制 如何从 Xcode 中的项目中删除源代码控制 有三种方法 方法 1 将禁用所有项目的源代码管理 方法 2 将删除所有项目的单个存储库的链接 方法 3 将删除
  • 如果您使用 CocoaPods,您的 .gitignore 中会包含什么内容?

    我从事 iOS 开发已经几个月了 刚刚了解到有前途的可可豆荚 http cocoapods org 用于依赖管理的库 我在个人项目上尝试过 添加了依赖项Kiwi https github com allending Kiwi到我的 Podf
  • 结帐时出现 Git 错误:“致命:引用不是树”

    当我决定弄清楚为什么我正在从事的项目如此重要时 这一切就开始了 我运行了以下脚本 git rev list objects all git cat file batch check objecttype objectname objects
  • Git 删除其他人从远程所做的最后提交

    所以 我的情况是 错误地 我已经授予某人对我的分支的承诺 现在 在我的本地 我已经进行了提交 当我尝试将其推送到远程时 它显示远程在前面 因为对方已经将他的代码推送到了这个分支并进行了多次提交 现在 我可以从远程删除这些提交而不将拉取到本地
  • 如何在源代码管理中存储 Visual Studio 的调试配置

    Visual Studio 的调试配置存储在 user文件是用户特定的并且传统上被源代码管理忽略 我对工作目录参数感兴趣 我需要它在程序员的机器上保持一致 并且它具有以下价值 outDir而不是默认的 ProjectDir 我怎样才能解决这
  • Git:忽略版本控制文件

    gitignore 文件对于忽略一些我们不想控制的文件非常有用 不幸的是 当文件已处于版本控制之下时 它无法使用 例如 我的 gitignore 已添加到 git 中 文件可能与我的同事想要的不同 例如我想忽略 Vim 文件 每当我对此文件
  • 为什么 git 在每次合并时都运行“git gc --auto”?

    今天 git 开始表现得很有趣 嗯 比平时更有趣 坚持运行git gc每次合并后 即使它们是背靠背的 C Projects my current project gt git pull remote Counting objects 31
  • 如何在现有裸存储库中创建引用日志信息

    您可能已经知道 默认情况下 git 不会为新的裸存储库启用引用日志更新 问题是 我有一个很长的历史存储库 但它是在我设置 logAllRefUpdates 标志之前创建的 现在我希望其他应用程序可以使用该信息 如何通过对现有存储库进行最少的
  • Git - 使用过滤器分支删除带有空变更集的提交

    如何使用 git filter branch 删除没有变更集的提交 我使用以下方法重写了我的 git 历史记录 git filter branch tree filter rm r f my folder f HEAD 效果很好 但现在我有
  • 使用nodegit切换分支/标签

    我整个早上都在尝试打开现有的存储库并使用 nodegit 更改分支或标签 文档内容很丰富 但似乎已经过时了 关于我做错了什么有什么想法吗 var NodeGit require nodegit var open NodeGit Reposi
  • git 清除远程仓库

    如果我将错误的初始提交 或多个 推送到远程存储库 并且只想清除 销毁它 我可以通过命令来完成吗 将其从服务器中完全删除非常重要 这样它就不会占用磁盘空间 例如 今天我推送了一个完整的 Visual Studio 项目 其中包含 dll sd
  • 如何在 git 中将我的功能分支变基到开发分支,尽可能减少冲突?

    我的功能分支已超过大约 30 次或更多提交 与此同时 在开发分支中 其他开发人员还推出了一些其他功能 因此 每次在开发中发布新功能时 我都会被要求 将开发分支重新建立到我的功能分支上 解决冲突 如有 继续在您的功能分支中开发 问题 第二步就
  • Git 忽略本地文件更改

    我都尝试过 git update index assume unchanged config myconfig and editing git info exclude并添加config myconfig 然而 当我执行 git pull

随机推荐

  • Selenium 调试:元素在点 (X,Y) 处不可单击

    我试着刮这个site通过硒 我想单击 下一页 按钮 为此我这样做 driver find element by class name pagination r click 它适用于许多页面 但不适用于所有页面 我收到此错误 WebDrive
  • 开玩笑: toBeInstanceOf(Object) 失败

    只是检查我们是否正在导出对象失败 如下所示 import as Foo from foo describe Foo gt test should export an object gt expect Foo toBeInstanceOf O
  • 基于字符向量重新排序数据框

    我认为这应该非常简单 但我找不到办法做到这一点 我想根据一个因素重新排序数据框 到目前为止我能找到的所有答案都提供了逻辑排序 但这是任意的 并且是数字和字母的混合 也许这是一个问题 因为它是factor not a vector 但向量的答
  • 在Python中获取音频输入设备列表

    如何使用 Python 以这种格式获取 Linux 中的音频输入设备列表hw 0 1 我已经使用 pyaudio 尝试了以下操作 def getaudiodevices p pyaudio PyAudio print p get defau
  • 如何构建netty-transport-native-epoll-4.0.32.Final-linux-x86_64.jar?

    我在 netty 中使用本机 epoll 传输 并且能够从存储库下载 netty transport native epoll 4 0 32 jar 不过我还需要 netty transport native epoll 4 0 32 Fi
  • Xamarin 跨平台证书固定

    我正在使用 Xamarin 设计一个应用程序 我想通过使用证书固定来提高我们的安全性 但我找不到办法做到这一点 我可以使用 android 的本机方法来做到这一点 但我想知道是否有跨平台的解决方案 甚至是 Windows Phone 的解决
  • 在 Web 应用程序中创建和下载巨大 ZIP(来自多个 BLOB)的最佳实践

    我需要从我的 Web 应用程序执行大量文件下载 显然 这将是一个长期运行的操作 它将被用于每年一次 每个客户 所以时间不是问题 除非超时 但我可以通过创建某种形式的 keepalive 心跳来处理 我知道如何创建一个隐藏的iframe并与它
  • 以编程方式将应用程序添加到 Windows 防火墙

    我有一个通过 ClickOnce 安装和更新的应用程序 该应用程序通过 FTP 下载文件 因此需要添加为 Windows 防火墙的例外 由于 ClickOnce 的工作方式 EXE 的路径会随着每次更新而变化 因此异常也需要更改 对防火墙进
  • bash-求行中数字的平均值

    我正在尝试逐行读取文件并找到每行中数字的平均值 我收到错误 expr non numeric argument 我已将问题范围缩小到 sum expr sum i 但我不确定为什么代码不起作用 while read a rows do fo
  • 如何安排 C# Windows 服务每天运行一个方法? [复制]

    这个问题在这里已经有答案了 可能的重复 如何安排 C Windows 服务每天执行任务 我正在创建一个 C Windows 服务 但我没有找到让计时器每天在 App Config 文件中指定的特定时间触发方法的最佳方法 例如 每天早上 6
  • 运行libsandbox

    我目前正在开发一个在线 C C 汇编编译器 我偶然发现了一个名为 libsandbox 的好软件 这使我能够运行在线编写的代码 对其进行编译并拦截系统调用 如果有 首先 我对 Linux 环境还是个新手 我已经下载了 tar gz 解压它
  • Facebook Login Graph API 返回错误的个人资料图片 URL

    我通过调用使用 Facebook 图形 API它返回我期望的 json 响应 像这样的东西 id 1234567890987654321 email xxxxxx u0040example com name xxxx xxxx first
  • C# 无符号字节加密到 Java 有符号字节解密

    我有一个 C 加密应用程序我的部分文件 因为它们是大文件 使用 RijndaelManaged 因此 我将文件转换为字节数组并仅加密其中的一部分 然后我想使用Java解密该文件 所以我必须解密仅文件的一部分 指那些字节 在 C 中加密 问题
  • Google QUERY 公式包含下拉列表中的“全部”

    我有 3 个单独的下拉菜单来在我的 Google 表格中生成以下 QUERY 函数 QUERY HISOP Training A2 D select A B C D where A contains M5 and C contains M6
  • 将字符串变量传递给 MySQL,作为元组失败

    使用新购买的 RaspberryPi 我对 Python MySQL 非常陌生 所以请原谅我发布的天真问题 我已经看过很多关于此问题的问答 但我似乎无法理解 为什么 这会失败 我收到错误 必须是字符串或只读缓冲区 而不是元组 如果我用 TY
  • 批处理命令删除文件夹中除一个文件之外的所有内容(子文件夹和文件)

    首先 过去已经回答过类似的问题 但不完全是我的问题 在其他一些解决方案中 建议隐藏文件夹 文件和更改属性 但我不希望这样做 除非没有更简单的方法可用 另外 我已经尝试了这里建议的解决方案 以及其他几个 MS DOS命令删除除一个之外的所有文
  • 使用 TEXT_DETECTION 来自 Cloud Vision API 的结果区域设置

    我在用着npm node cloud vision api API 正确检测文档的语言 但结果字符以与区域设置不对应的西方字符子集返回 我假设它们应该以 UTF 8 字符返回 但所有区域设置特定字符都映射到基本西方字符子集 例如 Warto
  • 如何查看 HttpWebRequest 类发送的原始 HTTP 请求?

    我知道你们都会回答 使用像 Fiddler 这样的调试代理服务器 但事情没那么简单 这是我的情况 我有一些代码在服务器上运行 位于 ASP NET 页面代码隐藏 aspx cs 中 它 除其他外 建立了到another服务器 抓取一些东西
  • 创建注册表项时出现 UnauthorizedAccessException

    我正在研究如何添加shortcut在我的应用程序的 Windows 上下文菜单中 我碰到this文章 我尝试了一下 这是它用来在注册表中创建密钥的代码 private void btnAddMenu Click object sender
  • Git - 将存储库与签出分支同步的最简单方法

    我的工作流程基本上是 在我的台式电脑上创建一个存储库 对其进行一些工作并提交更改 克隆到我的笔记本电脑上 致力于此 提交更改 现在我想将更改与我的桌面同步 试git push desktop local my repo会失败 因为maste