相关疑难解决方法(0)

使用Git将我的最后一次X提交压缩在一起

如何使用Git将我最后的X提交压缩成一个提交?

git squash git-squash

3294
推荐指数
38
解决办法
147万
查看次数

如果我已经开始使用rebase,如何将两个提交合并为一个?

我试图将2个提交合并为1,所以我从git准备好跟随"压缩提交与rebase".

我跑了

git rebase --interactive HEAD~2
Run Code Online (Sandbox Code Playgroud)

在生成的编辑器中,我更改picksquash然后保存退出,但是rebase因错误而失败

没有先前的提交,不能'挤压'

既然我的工作树已达到这种状态,我就无法恢复了.命令git rebase --interactive HEAD~2失败

交互式rebase已经开始

git rebase --continue失败了

没有先前的提交,不能'挤压'

git git-merge

1111
推荐指数
9
解决办法
70万
查看次数

如何使用git merge --squash?

我有一个远程Git服务器,这是我想要执行的场景:

  • 对于每个bug /功能,我创建了一个不同的Git分支

  • 我继续使用非官方的Git消息在Git分支中提交我的代码

  • 在顶级存储库中,我们必须使用官方Git消息对一个错误进行一次提交

那么如何将我的分支合并到远程分支,以便他们只为我的所有签到提交一个提交(我甚至想为此提供提交消息)?

git git-merge git-squash

1101
推荐指数
8
解决办法
52万
查看次数

在推送之前将多个提交组合成一个

这个问题不仅涉及如何完成这项任务,还涉及使用Git这样做是好还是坏.

考虑到本地我在master分支上工作最多,但我创建了一个我称之为"topical_xFeature"的主题分支.在处理"topical_xFeature"并在主分支上来回切换的过程中,事实证明我在"topical_xFeature"分支上进行了多次提交,但在每次提交之间,我没有做过推.

首先,你会考虑这种不良做法吗?每次推送每个分支坚持一次提交是不是更明智?在什么情况下,在推送之前在分支上进行多次提交会很好?

其次,如何才能最好地将topical_xFeature分支上的多个提交引入主分支以进行推送?不担心它并且只是推动多个提交被推送的推动是否是令人讨厌的,或者以某种方式将提交合并为一个然后推送不那么烦人?再说一遍,怎么做?

git workflow

121
推荐指数
5
解决办法
8万
查看次数

将我的所有提交压缩为一个用于GitHub pull请求

我在GitHub上发了一个pull请求.现在,存储库的所有者正在说要将所有提交压缩成一个.

当我键入git rebase -iNotepad打开时,其中包含以下内容:

noop

# Rebase 0b13622..0b13622 onto 0b13622
#
# 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
#
# …
Run Code Online (Sandbox Code Playgroud)

git github squash pull-request

53
推荐指数
4
解决办法
4万
查看次数

Git壁球在分支中间提交

我想在分支中间将几个提交压缩在一起而不修改前后的提交.

我有 :

A -- B -- C -- D -- E -- F -- G
|                             |
master                        dev
origin/master
Run Code Online (Sandbox Code Playgroud)

我想把它压成

A -- H -- E -- F -- G
|                   |
master              dev
origin/master
Run Code Online (Sandbox Code Playgroud)

在哪里H相当于B -- C -- D.我希望能够指定提交消息H.A是最后一次提交,因此所有提交后都可以重写,而不会弄乱服务器.我的想法是在快进之前清理历史master.

我怎样才能做到这一点 ?

PS:请注意,在我的情况下,我实际上有超过3次提交在中间压缩,但如果我能用3做,我应该能够做更多.

PPS:另外,如果可能的话,我更喜欢一个解决方案E,F并且G保持不变(主要是关于提交日期).

git git-squash

29
推荐指数
1
解决办法
6377
查看次数

如何在不跟踪远程分支的情况下压缩提交?

我有一个全新的git repo.它有三个提交.

我想将它们挤在一起,这样我的项目历史看起来很干净,而其他人则看不到我的hacky提交.

显然没有其他人看过回购,因为它是全新的,所以改变历史不是问题.我是唯一的用户.

但是git rebase -i要我跟踪一个上游分支.在我整理git日志之前,我不想发布任何内容.

如何在不跟踪上游的情况下进行交互式rebase或压缩提交?

git git-interactive-rebase

17
推荐指数
1
解决办法
2101
查看次数

组合或重新组合任意大量的提交

让我们说我的本地git log节目:

739b36d3a314483a2d4a14268612cd955c6af9fb a
...
c42fff47a257b72ab3fabaa0bcc2be9cd50d5c89 x
c4149ba120b30955a9285ed721b795cd2b82dd65 y
dce99bcc4b79622d2658208d2371ee490dff7d28 z
Run Code Online (Sandbox Code Playgroud)

我的遥控器git log显示:

c4149ba120b30955a9285ed721b795cd2b82dd65 y
dce99bcc4b79622d2658208d2371ee490dff7d28 z
Run Code Online (Sandbox Code Playgroud)

什么是最简单的方法(假设任意大量的本地提交):

527b5810cfd8f45f18ae807af1fe1e54a0312bce a ... x
c4149ba120b30955a9285ed721b795cd2b82dd65 y
dce99bcc4b79622d2658208d2371ee490dff7d28 z
Run Code Online (Sandbox Code Playgroud)

git git-rebase squash

9
推荐指数
2
解决办法
5791
查看次数

git subree push --squash不会挤压

git subtree用来组织我的git存储库.假设我有一个名为的主存储库repo和一个名为的库lib.

lib通过压缩它的历史成功地"导入"了存储库.我现在想lib通过压缩历史来回馈.这似乎不起作用:我指定--squash选项,git subtree push但在查看历史记录时,我仍然发送所有提交.

如何重现

这是一个脚本,显示了重现问题所需的最小命令:

#!/bin/bash
rm -rf lib lib-work repo

# repo is the main repository
git init repo
# lib is the 'subtreed' repository (bare to accept pushes)
git init --bare lib

git clone lib lib-work
cd lib-work
# adding a bunch of commits to lib
echo "v1" > README
git add README
git commit -m 'lib commit 1'
echo "v2" > …
Run Code Online (Sandbox Code Playgroud)

git push git-push squash git-subtree

8
推荐指数
2
解决办法
2737
查看次数

如何向上次未推送的提交添加新更改?

  • 我从在线存储库中提取了最新版本git pull origin master
  • 然后在代码库中进行了一些更改并添加了它们git add .
  • 然后创建一个新的提交git commit -m "bug x fixed"
  • 然后在代码库中进行了一些新的更改,我想将它们合并到最后一次提交(尚未推送到在线存储库)

我应该再次添加它们吗?我应该删除最后一次提交并进行新的提交吗?或者是什么?

git command-line

3
推荐指数
1
解决办法
1160
查看次数

git 合并两个连续的提交

我的分支中有以下提交。

  1. 最后一次提交
  2. 第三次提交
  3. 第二次提交
  4. 第一次提交

我怎么能把提交 3 和 2 结合起来,但是提交 2 的提交消息。这是我期待的结果

  1. 最后一次提交
  2. 第二次提交(3 合并为 2)
  3. 第一次提交

git

1
推荐指数
1
解决办法
107
查看次数