推送到远程 Git 存储库而不记录单个本地更改

菜鸟09

我想以这样一种方式将更改推送到远程 Git 存储库,即不会远程记录自上次拉取以来对本地存储库产生影响的所有提交。

实际上,"big change 2"一旦我推送到远程注册表中,就应该忘记多个本地更改日志消息(或总结,例如如下例所示)。许多“小”本地提交应该显示为一个“大”远程提交。所以我想阅读这样的日志消息:

git log remote branch
# big change 1
git log branch
# small change 1
# small change 2
# big change 2
git push remote branch
git log remote branch
# big change 1
# big change 2

这是否可以通过git命令实现,如果可以,如何实现?

另一个节点

是的,这叫做压扁。为此,我通常使用交互式 rebase 功能。

首先,在最旧的提交之前找到你想要成为压缩提交的一部分的提交:

$ git log --oneline
701c7f8 (HEAD -> master) commit c
4c0270a commit b
8ca1f6e commit a
bb0a92c (origin/master) previous commit

然后做git rebase -i <commit>

$ git rebase -i bb0a92c

您配置的编辑器将打开,向您显示作为 rebase 操作一部分的提交列表,从最旧的开始:

pick 8ca1f6e commit a
pick 4c0270a commit b
pick 701c7f8 commit c

# Rebase bb0a92c..701c7f8 onto bb0a92c (3 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit

将前三行更改为如下所示:

pick 8ca1f6e commit a
squash 4c0270a commit b
squash 701c7f8 commit c

或者,实际上,第一个字母就足够了:

pick 8ca1f6e commit a
s 4c0270a commit b
s 701c7f8 commit c

保存并退出编辑器。另一个编辑器实例会给你编辑提交信息为生成的挤压提交最终的结果将是一个包含提交提交的变化的机会8ca1f6e4c0270a701c7f8

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Git将标签推送到远程存储库?

来自分类Dev

是否可以将git stash推送到远程存储库?

来自分类Dev

如何使用Git初始推送到远程存储库?

来自分类Dev

Git重设-硬并推送到远程存储库

来自分类Dev

使用PyGithub和Python将本地git存储库推送到用户的远程git存储库

来自分类Dev

无法将我的本地git存储库推送到远程存储库

来自分类Dev

git,如何将本地分支推送到特定的远程

来自分类Dev

将更改推送到Git中的特定远程分支

来自分类Dev

将Git远程“推送到”更改为默认值

来自分类Dev

在 Git 中推送到远程后如何更改提交消息

来自分类Dev

将文件添加到本地 git 存储库,然后推送到远程:不起作用

来自分类Dev

Git:将本地文件推送到远程存储库中的其他文件名

来自分类Dev

如何将新的本地分支推送到远程Git存储库并进行跟踪?

来自分类Dev

Visual Studio代码-连接到远程Git存储库,并将本地文件推送到新的远程存储库

来自分类Dev

将git存储库推送到具有历史记录的远程颠覆

来自分类Dev

如何在不添加远程的情况下将提交推送到 git 存储库?

来自分类Dev

为什么我的远程Git存储库在推送到它后仍未提交更改?

来自分类Dev

是否需要gitosis或gitolite才能通过HTTP / HTTPS将更改推送到远程git存储库?

来自分类Dev

Git-将当前的Heroku存储库推送到远程github存储库

来自分类Dev

Git 推送被拒绝推送到远程

来自分类Dev

推送到远程存储库

来自分类Dev

将未提交的本地git更改推送到新的远程fork

来自分类Dev

Git推送到远程的新存储库,即时进行初始化

来自分类Dev

git push将完整且独立的分支推送到远程存储库

来自分类Dev

强制推送到远程存储库后无法执行git恢复

来自分类Dev

推送到远程存储库(例如Google Source Repositories)时缺少git标签

来自分类Dev

如何将修订后的提交推送到远程Git存储库?

来自分类Dev

撤消已被推送到远程存储库的Git中的特定提交

来自分类Dev

Git没有将新文件推送到远程存储库

Related 相关文章

  1. 1

    如何使用Git将标签推送到远程存储库?

  2. 2

    是否可以将git stash推送到远程存储库?

  3. 3

    如何使用Git初始推送到远程存储库?

  4. 4

    Git重设-硬并推送到远程存储库

  5. 5

    使用PyGithub和Python将本地git存储库推送到用户的远程git存储库

  6. 6

    无法将我的本地git存储库推送到远程存储库

  7. 7

    git,如何将本地分支推送到特定的远程

  8. 8

    将更改推送到Git中的特定远程分支

  9. 9

    将Git远程“推送到”更改为默认值

  10. 10

    在 Git 中推送到远程后如何更改提交消息

  11. 11

    将文件添加到本地 git 存储库,然后推送到远程:不起作用

  12. 12

    Git:将本地文件推送到远程存储库中的其他文件名

  13. 13

    如何将新的本地分支推送到远程Git存储库并进行跟踪?

  14. 14

    Visual Studio代码-连接到远程Git存储库,并将本地文件推送到新的远程存储库

  15. 15

    将git存储库推送到具有历史记录的远程颠覆

  16. 16

    如何在不添加远程的情况下将提交推送到 git 存储库?

  17. 17

    为什么我的远程Git存储库在推送到它后仍未提交更改?

  18. 18

    是否需要gitosis或gitolite才能通过HTTP / HTTPS将更改推送到远程git存储库?

  19. 19

    Git-将当前的Heroku存储库推送到远程github存储库

  20. 20

    Git 推送被拒绝推送到远程

  21. 21

    推送到远程存储库

  22. 22

    将未提交的本地git更改推送到新的远程fork

  23. 23

    Git推送到远程的新存储库,即时进行初始化

  24. 24

    git push将完整且独立的分支推送到远程存储库

  25. 25

    强制推送到远程存储库后无法执行git恢复

  26. 26

    推送到远程存储库(例如Google Source Repositories)时缺少git标签

  27. 27

    如何将修订后的提交推送到远程Git存储库?

  28. 28

    撤消已被推送到远程存储库的Git中的特定提交

  29. 29

    Git没有将新文件推送到远程存储库

热门标签

归档