【问题标题】:Not to commit previous commits, I want just to add a commit that takes all the other changes made on the other branch I merged?不提交以前的提交,我只想添加一个提交,该提交包含在我合并的另一个分支上所做的所有其他更改?
【发布时间】:2019-10-29 12:44:50
【问题描述】:

我想获得更改,但不想发布我在测试分支上所做的所有提交......我想要的是在合并后,接受这些更改并在主服务器上提交(一次),而不是发布所有那些提交。

谢谢

我没有尝试过任何事情,因为我想确定该怎么做。那我再推。

git merge test
git status

您的分支比 'origin/master' 领先 6 次提交

【问题讨论】:

    标签: git github commit git-commit


    【解决方案1】:

    你可以压缩你的提交,但我更喜欢重新提交的简单性。我在这里为感兴趣的人发布解决方案:

    git checkout test
    git reset --soft origin/master
    git commit -m "message for this whole feature"
    git push origin HEAD
    

    然后test-branch 将被推送到远程,您的合并请求test > master 将仅包含上面的一个提交。

    【讨论】:

    • 这不会影响我的合作伙伴之前在 master 分支上所做的提交吗? thx 因为 master 分支有一些其他人已经提交的更改。请回答,以便我可以尝试您告诉我的内容
    • 当我执行“git reset --soft origin/master”时,我得到了未提交的更改,即使它们似乎是绿色的,这意味着我还没有添加它们或类似的东西......是这正常吗?
    • @ReynaldRamirezdeLuna --soft 标志,与默认模式--mixed 不同,保持索引中的更改(添加、暂存、缓存,无论您习惯如何称呼它)。你在哪里看到这个“绿色”?在命令行中,当您执行 git status -sb 时,您更改的文件应该在它们前面显示一个绿色字母(分阶段更改)而不是红色字母(未分阶段更改)。
    • 谢谢!让我们摇滚吧!
    • @ReynaldRamirezdeLuna 如果没有任何参数,它将显示所有历史记录,但可能会稍微不方便阅读。尝试git log origin/master..(注意点)专注于有趣的部分,并使用您需要的任何格式选项来输出与您最相关的信息(pretty formats)。
    【解决方案2】:
    git merge test --squash
    git commit -m "foo bar"
    

    使用--squash,更改会被合并,而提交不会。

    【讨论】:

      猜你喜欢
      • 2018-05-29
      • 2022-11-28
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 2013-07-31
      • 2018-03-12
      • 2016-06-04
      相关资源
      最近更新 更多