git - 如何使用远程 git 分支的更改更新本地分支,而无需“合并”提交
问题描述
我有一个远程分支,我从PC A推送了一些更改(我是唯一一个在这个分支上工作的人)。我也有PC B克隆了相同的分支(正在跟踪与 PC A 相同的远程分支),但它缺少我刚刚从PC A推送到分支的最新更改。当我git pull
在PC B上运行以获取最新更改时,git 显然抱怨“合并冲突”。由于我正在跟踪来自PC A和PC B的同一个远程分支,因此我不想每次都进行合并提交,也不想重新设置基准。我只想要PC B上的分支无需进行任何提交即可更新到远程分支的确切状态。如何在 git 中实现这一点?
解决方案
您可以通过以下方式轻松重置:
git fetch
git reset --hard @{u}
Note通常@{u}
是上游分支的简写origin/your-branch-name
。
注意:由于您有时会遇到冲突,这意味着您正在重写您的提交并强制推送。(可能使用 rebase 或修改。)这是一个非常好的工作流程(我在自己的分支上也这样做),但是,当你强制推送时,使用它是一个好习惯:
git push --force-with-lease
通过以这种方式强制推动,您不太可能意外地将您在另一台尚未看到的计算机上所做的更改吹走。如果你这样做并得到一个错误,那么你需要git fetch
比较你的本地和远程分支,看看你是否需要先重置(或使用 rebase 拉取),然后再推出最新的更改。
如果您不总是立即强制推动您的修正/变基,那么您可能还想在进行重置之前比较本地和远程,这样您就不会在本地吹走您从未推出过的东西。
推荐阅读
- javascript - 保持虚拟键盘专注
- javascript - 使用 dynamodb SET 附加到字符串集
- react-native - 如何在 React Native 应用程序中扫描信用卡上的“16 位、到期日期、3 位”?
- flutter - 如何在颤振中修复工厂 DbHelper 类?
- for-loop - 在一个 for 循环中使用 for 循环进行批处理
- mysql - MySQL 错误代码 1452 无法添加或更新子行
- ios - 在 TestFlight 的 Apple 硅 Mac 上部署 iPhone 和 iPad 应用程序
- python - Discord.py json文件而不是添加新值,json将所有值替换为一个
- python - 尝试使用另一个脚本导入模块
- c++ - 使用 OpenSSL 解密 AES 的奇怪问题,填充相同外观的垃圾,Base64 填充问题