相关疑难解决方法(0)

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

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

git squash git-squash

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

在推入Git之前组合多个提交

我在本地存储库上有一堆提交,它们在主题上相似.在推送到遥控器之前,我想将它们组合成一个提交.我该怎么做?我认为rebase这样做,但我无法理解文档.

git git-squash

373
推荐指数
7
解决办法
21万
查看次数

用于在代码审查后更新拉取请求的首选Github工作流程

我已经在Github上提交了对开源项目的更改,并收到了其中一个核心团队成员的代码审查意见.

我想考虑审核评论更新代码,然后重新提交.这样做的最佳工作流程是什么?根据我对git/github的有限知识,我可以做以下任何一项:

  1. 将代码更新为新提交,并将初始和更新的提交添加到我的pull请求中.

  2. 不知怎的(??)从我的存储库回滚旧的提交,并创建一个包含所有内容的新提交,然后为此提出拉取请求?

  3. git commit有一个修改功能,但我听说你在本地存储库之外推送提交后不应该使用它?在这种情况下,我在我的本地PC上进行了更改并推送到我的项目的github分支.这可以使用'修改'吗?

  4. 别的什么?

看起来选项2/3会很好,因为开源项目在他们的历史中只有一个提交将实现一切,但我不知道如何做到这一点.

注意:我不知道这是否会影响答案,但我没有在单独的分支中进行更改,我只是在master之上做了一次提交

git version-control github pull-request

333
推荐指数
3
解决办法
8万
查看次数

如何将两个提交合并为一个提交?

我有一个分支'firstproject'有2个提交.我想摆脱这些提交并使它们显示为单个提交.

该命令git merge --squash听起来很有希望,但是当我运行git merge --squash终端时,只会显示该命令的选项.什么是正确的命令?

Commit 1:
Added 'homepage.html'
Added 'contacts.html'

Commit 2:
Added 'homepage.php'
Added 'homepage.php'
Deleted 'homepage.html'
Deleted 'contacts.html'
Run Code Online (Sandbox Code Playgroud)

git merge branch git-svn rebase

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

Git合并提交

我是git的新手(很享受它!).在新分支开发的同时,我不断承诺我的应用程序的各种开发"状态".现在我必须检查它以供审查,但不希望所有内容都进入不同的提交(不同的注释和ID).

我怎样才能推动所有更改,就好像这是第一次?

git git-merge

41
推荐指数
2
解决办法
2万
查看次数

Git:如何从一个分支到另一个主要的提交和压缩提交?

我正在尝试将我的所有提交从当前分支重新压缩并压缩到主分支.这是我正在尝试做的事情:

git checkout -b new-feature
Run Code Online (Sandbox Code Playgroud)

在我尝试之后做了几次提交:

git rebase -i master
Run Code Online (Sandbox Code Playgroud)

在这种情况下,提交将保留在new-feature分支中

git checkout master
git rebase -i new-feature
Run Code Online (Sandbox Code Playgroud)

它给我和编辑带有noop消息的窗口.

我知道命令:

git merge --squash new-feature
Run Code Online (Sandbox Code Playgroud)

但我正在努力学习rebase命令.

git branch rebase squash

24
推荐指数
2
解决办法
3万
查看次数

Git 的交互式 rebase 中的“pick”有什么作用?

当我这样做时,我git rebase --interactive有六个基本命令:pickrewordeditsquashfixupexec

命令有什么作用pick?是cherry-pick提交还是确实如此checkout

git

14
推荐指数
2
解决办法
2万
查看次数

如何加入最后N个合并提交到一个?

在我的存储库中,我目前有这样的历史:

$ git log --oneline
<commit-id-1> Merge commit '<merged-commit-id-1>' into <branch>
<commit-id-2> Merge commit '<merged-commit-id-2>' into <branch>
...
Run Code Online (Sandbox Code Playgroud)

在哪里<merged-commit-id-1><merged-commit-id-2>我从branch之前创建当前的另一个分支合并.现在我想以某种方式加入这些合并提交:

$ git log --oneline
<commit-id> My message about huge successful merge here...
...
Run Code Online (Sandbox Code Playgroud)

我试过了

$ git rebase --preserve-merges -i HEAD~2
Run Code Online (Sandbox Code Playgroud)

ps但得到这个错误:

Refusing to squash a merge: ...
Run Code Online (Sandbox Code Playgroud)

(我也在一个新的最简单的存储库中复制它)有没有办法绕过它?

我真正想要的是能够通过原始分支(已更改)的ID合并许多提交,同时逐步解决冲突并且不引入数十个合并提交(merge --squash也不是一个选项,因为我需要保留历史).


例:

$ git init
$ echo 1 > 1; git add 1; git commit -m 1
$ git branch …
Run Code Online (Sandbox Code Playgroud)

git

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

替换git中的提交

我很久以前就提交了一个糟糕的提交,我想将它完全从git历史中删除,好像它从未发生过一样.我知道提交ID让我们说1f020.我已经尝试了git rebase并将其删除,但是在重新定位时存在很多冲突,这是不可能的.该提交是一个简单的1行代码更改,并推送一些与项目无关的文件.所以我想写一行代码更改并提交它,然后替换以某种方式用很久以前的那个替换这个新的提交.

git github

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

如何组合2'git commit's

我在本地制作了2'git commit'.但我没有推动,是否有可能编辑我的git并将这些2 git提交合并为1?

git

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