Mac 版 Github 如何同步?

2024-02-01

根据Mac 版 Github 博客公告 https://github.com/blog/878-announcing-github-for-mac,

一旦您准备好共享您的提交或拉入远程提交,只需按“同步分支”按钮即可。我们将执行更智能的版本pull --rebase && push这会减少合并提交,但不会重写您的合并。

什么是“更智能版本”pull --rebase && push?他们到底在做什么?是否可以在命令行上做这个“更聪明”的事情?


博文“在 Git 中重新调整合并提交的基础 http://notes.envato.com/developers/rebasing-merge-commits-in-git/" (from 格伦·马德恩 https://github.com/geelen)说明了危险git pull --rebase 当您进行本地合并时:

如果你做一个git pull --rebase of master在之上origin/master现在,你会删除您的本地合并.
rebase 后见下图:不再有合并提交。

出于很多原因,这很糟糕。

  • 其一,功能提交实际上是重复的,而实际上我只想对合并进行变基。如果您稍后再次合并功能分支,则两次提交都将出现在历史记录中master.
  • And origin/feature,应该已经完成​​并在master,悬空。
    与遵循良好的分支/合并模型所获得的令人惊叹的历史不同,您实际上已经获得了误导性的历史。
    例如,如果有人看上面的树枝origin,就会出现origin/feature hasn’t已合并到 master 中,尽管它已经合并了!如果该人随后进行部署,可能会导致各种问题。这都是坏消息。

这就是 Github for (Mac|Windows) 会检测并避免的情况。

如果您没有及时检测到,同一篇博文提到了以下恢复:

[master] git reset --hard origin/master
HEAD is now at 9f3e34d sneaky extra commit
[master] git merge --no-ff feature

实际解决方案:

您可以达到想要的结果:

而不是使用git pull --rebase, use a git fetch origin and git rebase -p origin/master

我想“更聪明的版本”pull --rebase是“fetch + rebase 保留合并”的组合。

Glen https://github.com/geelen还提出了以下别名 https://gist.github.com/590895反驳这样一个事实:该命令序列将不再使用与本地分支关联的跟踪信息。

function git_current_branch() {
  git symbolic-ref HEAD 2> /dev/null | sed -e 's/refs\/heads\///'
}

alias gpthis='git push origin HEAD:$(git_current_branch)'
alias grb='git rebase -p'
alias gup='git fetch origin && grb origin/$(git_current_branch)'

杰森风化 https://stackoverflow.com/users/3736/jason-weathered发布了一个“http://jasoncodes.com/posts/gup-git-rebase http://jasoncodes.com/posts/gup-git-rebase”,但现在指的是git-up https://github.com/aanand/git-up, from 阿南德·普拉萨德 https://github.com/aanand.

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

Mac 版 Github 如何同步? 的相关文章

  • Git 将开发分支与生产版本的主分支合并

    我正在使用 Git 进行代码版本控制 我有一个开发分支 我正在其中进行所有肮脏的开发 每次我向世界发布生产版本时 我都想将其放在我的 master 分支下 问题是 每当我合并开发和 master 时 master 都会收到所有开发历史记录
  • Git 存储库错误并显示消息,它不是存储库...但它是

    我有一个 git repo 去年我一直在同一个盒子上使用 今天我跑步git status并得到错误消息 fatal Not a git repository or any parent up to mount parent home Sto
  • GIT:无效路径“.editorconfig”

    从 master 克隆项目时出现以下错误 错误 无效路径 editorconfig 致命 无法签出工作树 警告 克隆成功 但结账失败 您可以使用 git status 检查签出的内容 并使用 git Restore source HEAD
  • Git Add - 致命:添加文件失败

    我的 git cmd exe 窗口如下所示 git add NextFolder error unable to create temporary file No such file or directory error NextFolde
  • 将存储库移至另一台计算机

    我已将存储库从计算机 A 移至计算机 B 我已验证等待推送的提交仍在 B 上 但整个存储库 每个文件 均未暂存 我不想添加它们并将它们作为提交推送 因为从复制存储库到粘贴它 我没有更改每个文件 当我移动存储库时 它只有等待推送的提交 而不是
  • 禁止 Gerrit 推送到 refs/for/master

    我已经更新了所有项目昨天获得访问权限 人们说他们今天早上无法将更改推送到存储库 当我恢复访问权限后 他们仍然无法将更改推送到存储库 只能clone工作正常 在将更改推送到远程存储库时 它表示 remote rejected HEAD gt
  • 在 Windows 上从源代码构建 PhantomJS-2

    我正在尝试基于这些在 Windows 8 1 x64 上从源代码构建 PhantomJS 2 的开发版本指示 https github com ariya phantomjs wiki PhantomJS 2 但是我收到以下错误 mingw
  • 使用 git filter-branch 然后 git push --force 清除大文件后,远程(Gitlab)上的 Git 存储库大小仍然很大

    我已按照 Gitlab 文档中有关 使用 Git 减少存储库大小 的说明进行操作 通过从历史记录中清除大文件 https docs gitlab com ee user project repository reducing the rep
  • 具有私有 git 存储库的 Cocoapods

    我想添加到podfile私有git存储库 例如 pod MyLibrary git gt email protected cdn cgi l email protection perfect top library git branch g
  • 无法从 Git 扩展向 GitHub 进行身份验证?

    我只是在 Visual Studio 2010 中设置 Git 扩展 但无法真正使其工作 我无法进行身份验证 在 Git Extensions 中 如果我选择 Plugins gt GitHub 我可以添加用户 密码 API 令牌并选择 S
  • 使用 pygithub3 for Python 获取存储库信息

    我正在尝试通过给定 Github 用户名来访问每个存储库中使用的语言 为了做到这一点 到目前为止我的Python代码是 from pygithub3 import Github username raw input Please enter
  • Azure Devops Pipeline YAML 中的 Git 标记名称

    Summary 如何获取 Azure Devops Pipeline YAML 文件中当前 git 标签的名称 我想做什么 我正在 Azure Devops 中设置构建管道 创建新的 git 标签时会触发管道 然后我想构建 docker 镜
  • 从远程获取上个月在 git 分支上提交的文件列表

    我正在尝试获取上个月在 master 分支的 github 存储库上更改的所有文件的列表 我的本地克隆没有可以追溯到那么远的日志 因此当我运行以下命令时 git diff stat 1 month ago 我收到一条警告消息和一小部分更改
  • “git merge --squash”的正确用例是什么?

    有些人喜欢git merge squash由于以下原因 压缩到单个提交使您有机会清理混乱的 WIP 提交 并为您要合并的更改提供良好的理由 https coderwall com p qkrmjq git merge squash http
  • 仅将单个文件放入 git 子模块/存储库中

    我在 git 源代码存储库中有一个特定文件 其中包含生产设置 密码 我想限制此文件 以便只有制作团队的成员才能看到它 但是 我想控制它的变化 我考虑过在 git 中使用子模块 然后限制对新存储库的访问 然而 git 似乎需要子模块的整个子目
  • 如何从 github 安装需要构建步骤的 npm 包,例如什么时候分叉一个库?

    假设您使用类似的库vue3 datepicker https www npmjs com package vue3 datepicker 您意识到您需要自定义某些内容 并且作为第一步 您想要使用它的自定义分支 问题是 当包被推送到 npm
  • 我可以获取两次提交之间 git 子文件夹中已更改文件的列表吗?

    我有一个包含许多文件夹的 git 存储库 我需要找出在两次提交之间这些文件夹之一中的哪些文件发生了更改 有没有一个好的方法来做到这一点 我想你可以坚持走最后的路git diff git diff HEAD HEAD special fold
  • 在 git 中管理 schema.rb 的首选方法是什么?

    我不想添加schema rb to gitignore 因为我希望能够从该文件加载新的数据库架构 然而 保持检查状态会导致各种虚假冲突 而这些冲突很容易通过新的解决方案解决 db migrate reset 基本上我想要一种方法 将 sch
  • Git 与人工制品

    刚刚完成 NPM 和 Bower 的 Artifactory 设置 它非常容易使用 您只需更改存储库 URL 一切就正常了 查看有关如何让 Artifactory 与 github vcs 一起使用的文档 它看起来过于复杂 我想知道是否有人
  • GitHub - 指定时间的存储库状态

    我是使用 git 版本控制工具的初学者 我想在指定时间 例如 2013 年 10 月 5 日 下载存储库状态 文件 我怎样才能做到这一点 截至 2019 年 5 月 不确定何时引入 您可以简单地按以下格式添加日期 HEAD 2019 04

随机推荐

  • 行、记录和元组有什么区别? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java - 对于通用数据类型 Stack,new Stack[N] 是否等同于 new Stack[N]?

    Is new Stack 注意Stack 可以分配给Stack
  • 无法连接到远程 JMX

    我在远程主机上有一个 tomcat 应用程序 需要通过 JConsole 连接它 应用程序以参数开始 IP ifconfig eth0 grep inet addr cut d f2 cut d f1 Dcom sun management
  • ALSA中句号的含义

    我在 Linux 上使用 ALSA 和音频应用程序 我发现很棒的文档解释了如何使用它 1 http www linuxjournal com article 6735 page 0 1 and this one http users sus
  • gnuplot/ awk:为过滤后的数据绘制条形图

    我使用 gnuplot 结合 AWK 根据以下输入数据绘制 2D 条形图 Acceptor DonorH Donor Frames Frac AvgDist AvgAng lig 608 O3 HIE 163 HE2 HIE 163 NE2
  • Tensorflow 2.0 中 KerasLayer 的 TimeDistributed

    我正在尝试使用来自tensorflow hub的预训练模型构建CNN RNN base model hub KerasLayer https tfhub dev google imagenet resnet v2 50 feature ve
  • 如何使用Material-UI Grid进行SPA(负边距问题)

    我试图只使用Grid创建一个SPA 我已经习惯了material uiGrid并经常使用它 但是在我的新项目中我不确定我做错了什么 现在这就是问题所在 右侧有一个边距和一个水平滚动条 我知道负边距限制 但如果我对父元素应用填充 如文档所述
  • 如何以编程方式迭代 Word 文档中的下标、上标和方程

    我有一些 Word 文档 每个文档都包含数百页的科学数据 其中包括 化学式 H2SO4 具有所有正确的下标和上标 科学数字 使用上标格式化的指数 很多数学方程 使用Word 中的数学方程编辑器编写 问题是 以 Word 形式存储这些数据对我
  • Python从Json字符串中提取元素

    我有一个 Json 字符串 我可以从中提取一些组件 例如formatted address lat lng 但我无法提取其他组件的特征 值 例如交叉路口 政治 国家 行政区级别1 行政区级别2 行政区级别3 行政区级别4 行政区级别5 口语
  • 增量前和增量后的java评估

    你能一步步解释一下java是如何评估的吗 1 y 的值 int x 5 int y x x 2 这种情况下y的值 int x 5 int y x 3 x 好吧 操作数是从左到右计算的 并且在每种情况下都是 a 的结果postfix运算是递增
  • 转移 Github 组织所有权

    有一种方法可以转移github中存储库的所有权 但是有没有一种方法可以完全转移组织的所有权呢 Github 目前拥有一种向组织的所有者团队添加多人的方法 而且 最初创建组织的用户也可以将任何所有者从团队中删除 有没有办法删除该用户 并将完全
  • 在更新语句中使用表值函数

    我正在尝试执行以下更新语句 Update belege2 Set Preis Einh x Preis Aktion x Aktion PreisHerk x PreisHerk FROM dbo GetPreis belege2 prod
  • 属性选择器中有关空格的规则是什么?

    我正在阅读规范属性选择器 http www w3 org TR css3 selectors attribute selectors 但我找不到任何说明是否允许空格的内容 我猜它在开始 运算符之前和之后以及结束时是允许的 它是否正确 语法中
  • 无需单击 EditText 即可显示键盘

    我在 AlertDialog 上使用自定义布局 自定义布局有一个 EditText 文件 我用它来获取手机 当我显示 AlertDialog 时 为了让键盘输入电话号码 您必须单击 EditText 字段 有没有办法让键盘在我调出Alert
  • NPM 将依赖项安装在错误的位置

    我只是运行一个简单的npm install morgan在一个文件夹中 由于某种原因 它将所有子依赖项添加到父文件夹中 参见附图 是的 这是 npm 3 x 中的新功能 您可以在这里阅读 https github com npm npm r
  • 如何通过log4j控制日志文件的每日滚动和最大文件大小?

    我想创建可以在第二天开始时滚动的日志文件 或者如果达到指定的文件大小 并且日志文件必须包含在日期文件夹内 文件夹的格式是YYYYMMDD 20111103 mylogfile log 是否可以通过 Log4j 来做到这一点而不实现自定义类
  • 如何从gitlab存储中完全删除大文件

    I had a project rar文件大小为 350 MB 不幸的是我提交了它并将其推送到远程gitlab 现在gitlab存储空间为500 MB 如何从 gitlab 存储中删除该文件 我尝试过这些 git filter branch
  • Chrome 禁用网站的 SSL 检查? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我因将非 https 网站作为 https 访问而收到此警告 尝试通过将该命令添加到快捷方式目标来禁用它 但它不起作用 C Program
  • 如何在firebase上执行sql“LIKE”操作?

    我正在使用 firebase 进行数据存储 数据结构是这样的 products product1 name chocolate product2 name chochocho 我想对此数据执行自动完成操作 通常我会这样编写查询 select
  • Mac 版 Github 如何同步?

    根据Mac 版 Github 博客公告 https github com blog 878 announcing github for mac 一旦您准备好共享您的提交或拉入远程提交 只需按 同步分支 按钮即可 我们将执行更智能的版本pul