相关疑难解决方法(0)

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

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

git squash git-squash

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

git reset --soft的实际用途?

我一直在用git工作一个多月.事实上我昨天才第一次使用复位,但软复位对我来说仍然没有多大意义.

据我所知,我可以使用软重置编辑提交而不改变索引或工作目录git commit --amend.

这两个命令是否真的相同(reset --softvs commit --amend)?有任何理由在实际中使用其中一个吗?更重要的是,reset --soft除了修改提交之外还有其他用途吗?

git

117
推荐指数
8
解决办法
17万
查看次数

git rebase分支与所有子分支

是否可以使用git中的所有子分支来重新分支一个分支?

我经常使用分支作为快速/可变标记来标记某些提交.

* master
*
* featureA-finished
*
* origin/master
Run Code Online (Sandbox Code Playgroud)

现在我想rebase -i master进入origin/master,改变/重新提交提交featureA-finished^

之后git rebase -i --onto origin/master origin/master master,我基本上希望历史是:

* master
*
* featureA-finished
* (changed/reworded)
* origin/master
Run Code Online (Sandbox Code Playgroud)

但我得到的是:

* master
*
* (same changeset as featureA-finished)
* (changed/reworded)
| * featureA-finished
|.* (original commit i wanted to edit)
* origin/master
Run Code Online (Sandbox Code Playgroud)

有没有办法绕过它,还是我坚持在新的重新提交的作品上重新创建分支?

git branch rebase

17
推荐指数
2
解决办法
3321
查看次数

Git 交互式变基:如何自动移动其他分支(引用)?

有时我想做一个变基,并确保其他引用更新到新结构,而无需手动重置或多次变基。

有没有一种方法可以一次性完成,以便 git rebase 可以将引用更新为在 rebase 之前选择并具有引用的新提交?

一个例子:

Rebase前的情况:

* abc3... commit3 (branch:a, HEAD) 
* abc2... commit2 
* abc1... commit1 (branch:b)
* abc0... base commmit (branch:master)
Run Code Online (Sandbox Code Playgroud)

然后执行 Rebase master -i: pick abc3, abc1, abc2

结果将如下所示:(branch:b 保留在自己的提交分支中)

* abc6... commit2 (branch:a, HEAD) 
* abc5... commit1   
* abc4... commit3
|
| * abc1... commit1 (branch:b)
|/
* abc0... base commmit (branch:master)
Run Code Online (Sandbox Code Playgroud)

我希望结果看起来像:(分支:b 更新为新提交)

* abc6... commit2 (branch:a, HEAD) 
* abc5... commit1 (branch:b)
* abc4... commit3
* abc0... base commmit (branch:master)
Run Code Online (Sandbox Code Playgroud)

git rebase

7
推荐指数
2
解决办法
1875
查看次数

标签 统计

git ×4

rebase ×2

branch ×1

git-squash ×1

squash ×1