如何压缩单个分支上的提交

时间:2020-03-24 12:19:34

标签: github

我只有一个分支,名为develop。我有大约20次提交。我想将所有这些压缩为一次提交,然后将其重命名为“初始提交”。 因此,最后,分支将有一个名为“初始提交”的提交。

我尝试过:

git rebase -i HEAD〜20

我可以选择或“ f”提交。我知道,但是保存更改后该怎么办?

有关压扁的所有信息都假定,我最初有另一个分支(主节点)。我只有并且将只有一个开发分支。

1 个答案:

答案 0 :(得分:0)

让我们将其作为问题的完整问题域:

我只有一个分支,名为develop。我有大约20次提交。我想将所有这些压缩为一次提交,然后将其重命名为“初始提交”。因此,最后,分支将有一个名为“初始提交”的提交。

您希望最近的 n 次提交是一次提交。我call这是第一类遗憾。第一类遗憾可以通过执行软重置和提交来解决。这是一个示范。首先,我将在开发分支上进行大量提交:

git init
echo "one" > file
git add .
git commit -m "one"

git branch develop
git checkout develop

echo "two" >> file
git add .
git commit -m "two"
echo "three" >> file
git add .
git commit -m "three"
echo "four" >> file
git add .
git commit -m "four"
echo "five" >> file
git add .
git commit -m "five"

git log --oneline
# 2febafe (HEAD -> develop) five
# 363ca9f four
# 429b266 three
# d46e6df two
# b8bf284 (master) one
cat file
# one
# two
# three
# four
# five

正如您所看到的,我在开发中有两个,三个,四个和五个提交。我希望这些只是一次提交。我们开始:

git reset --soft b8bf284
git add .
git commit -m "unified"

好的,让我们看看:

git log --oneline
# 408bdd1 (HEAD -> develop) unified
# b8bf284 (master) one
cat file
# one
# two
# three
# four
# five

是的,现在只有一个提交,它与master脱离了,我所做的一切(文件的所有五行)都在其中。

相关问题