Questions tagged «git-rebase»

使用git-rebase命令,您可以从一个分支获取更改,然后在另一个分支的顶部重播它们。

2
如何在合并的更改基础上重新设置当前分支的更改?
好的。如果我在一个分支上(例如working),并且想要合并另一个分支(例如master)中的更改,那么我git-merge master在working分支上运行该命令,并且所有更改都被合并而无需重新建立历史记录。如果我运行git-rebase master,则将更改其中的更改以master将其放在working分支的顶部。但是,如果我想合并来自的更改,master但将更改working重新设置在最上面怎么办?我怎么做?能做到吗 我可以git-rebase working在master分支上运行,以将更改放在master分支的顶部,但是我希望能够在working分支中执行此操作,而且我不知道该如何做。我能想到的最接近的方法是从中创建一个新分支master,然后working在此基础上重新存储更改,但随后我将拥有一个新分支,而不是更改working分支。
144 git  merge  rebase  git-rebase 

9
正在重新设定基准。无法提交。如何进行或停止(中止)?
当我跑步时: git status 我看到了: rebase in progress; onto 9c168a5 You are currently rebasing branch 'master' on '9c168a5'. (all conflicts fixed: run "git rebase --continue") nothing to commit, working directory clean 当我做: ls `git rev-parse --git-dir` | grep rebase || echo no rebase 我看到:rebase-apply 我不能承诺出身。 git branch 显示: * (no branch, …
139 git  git-rebase 

4
如何在交互式编辑期间从vim中终止git rebase
当我进行交互式变基时,例如 git rebase -i HEAD~3 重新基准化交互式编辑器(在我的情况下为vim)打开,让我编辑要重新基准化的提交 pick c843ea2 Set Vim column limit to 80 (OS X) pick fc32eac Add Bash alias for `pbcopy` (OS X) .... 如果现在我决定要中止rebase并使用:qrebase 退出vim,则无论如何都要启动。我1.9.0.msysgit.0在Windows上使用git版本。 当然,我可以删除所有pick行,但是如果我将更长的历史记录作为基准,则可能要做很多事情。还有另一种方法吗? 如何退出rebase交互式编辑器(vim)并中止rebase?
138 git  vim  git-rebase 

5
更改Git上的旧提交消息
我试图按照此处的说明编辑旧的提交消息。 问题是,现在,当我尝试运行rebase -i HEAD~5时说interactive rebase already started。 因此,我尝试:git rebase --continue但是收到此错误: error: Ref refs/heads/master is at 7c1645b447a8ea86ee143dd08400710c419b945b but expected c7577b53d05c91026b9906b6d29c1cf44117d6ba fatal: Cannot lock the ref 'refs/heads/master'. 有任何想法吗?

4
git rebase合并冲突无法继续
我正在尝试使'dev'变基以赶上'master'分支。 $ git checkout dev $ git rebase master First, rewinding head to replay your work on top of it... Applying: Corrected compilation problems that came from conversion from SVN. Using index info to reconstruct a base tree... M src/com/.... <stdin>:125: trailing whitespace. /** <stdin>:126: trailing whitespace. * <stdin>:127: trailing …
131 git  git-rebase 

6
重新设定基准后无法推送至分支
我们使用git,并且有一个master分支和一个developer分支。我需要添加一个新功能,然后将提交重新分配到主服务器,然后将主服务器推送到CI服务器。 问题是,如果我在重定基期间遇到冲突,则在重定基完成后,我无法推送到我的远程开发人员分支(在Github上),直到我拉开我的远程分支为止。这将导致重复提交。没有冲突时,按预期方式工作。 问题:在重新设置基准并解决冲突后,如何在不创建重复提交的情况下同步本地和远程开发人员分支 建立: // master branch is the main branch git checkout master git checkout -b myNewFeature // I will work on this at work and at home git push origin myNewFeature // work work work on myNewFeature // master branch has been updated and will conflict with myNewFeature …

1
我如何git rebase第一个提交?
我曾经git init创建一个新的仓库,然后进行了三次提交。现在,我想重新定位以回去修改我的第一次提交,但是如果我这样做,git rebase -i HEAD~3它会抱怨!如果我尝试使用相同的方法,HEAD~2那还是可以的,但是只能让我重新排列最后两个提交。 如何引用“有任何提交之前的提交”或返回并插入一个空提交?
128 git  git-rebase 

3
如何改写第一个git commit消息?
我有一棵包含3个命令的工作树: ➜〜myproject git :(主) git log commit a99cce8240495de29254b5df8745e41815db5a75 Author: My Name <my@mail.com> Date: Thu Aug 16 00:59:05 2012 +0200 .gitignore edits commit 5bccda674c7ca51e849741290530a0d48efd69e8 Author: My Name <my@mail.com> Date: Mon Aug 13 01:36:39 2012 +0200 Create .gitignore file commit 6707a66191c84ec6fbf148f8f1c3e8ac83453ae3 Author: My Name <my@mail.com> Date: Mon Aug 13 01:13:05 2012 +0200 …

2
Git rebase失败,“您对以下文件的本地更改将被合并覆盖”。没有本地变化?
这是我试图将我的bugfix分支合并到我的master分支中以准备将其推向上游的笔录。自从bugfix分支创建以来,已经在上游进行了一些上游更改,现在拒绝重新设置基准。 引发错误的文件在打开时不会进行比较。没有添加,删除或重命名文件。什么都不会被忽略,没有任何事情会被追踪,暂存或暂存。我完全为失败原因而感到困惑。 我在OS X 10.6.6和git 1.7.4上 .-(/Volumes/joshua/www/txfunds)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(joshua@Kusanagi)- `--> git rebase bug586-test master-test First, rewinding head to replay your work on top of it... Applying: - comiitting code related to api permissions Using index info to reconstruct a base tree... Falling back to patching base and 3-way merge... error: Your local …
104 git  git-rebase 

4
Git:如何在'git reset'之后重用/保留提交消息?
正如吉特用户经常我遇到的情况,我需要在不适合的方式来返工一个或更多的提交--amend或rebase -i与修正的提交。通常我会做类似的事情 git reset HEAD~1 # hack, fix, hack git commit -a # argh .. do I need to retype my message? 我非常认真地对待明智的编写提交消息。它们通常包含较大的文本,并带有更改的引用和说明。到目前为止,我对冗长的过程非常恼火,因为它需要通过未排序的git reflog,git log复制和粘贴过程来恢复我的旧提交消息。 有更好的解决方案吗?如果我的提交不止一次,怎么办? 编辑:对此进行了一点思考之后,我认为我正在寻找的是类似git stash的提交消息功能,其中修正/修改提交不合适。


3
在重新设置git分支的同时更改时间戳
我已经在分支中重新组织了提交,然后才将其公开,导致提交的时间戳混合在一起。我希望它们全都在今天,而间隔只有几秒钟。 显然,这些时间戳也不正确,但是由于这是公开发行的时间,所以我宁愿选择时间复杂的历史。 那么,如何在重新基准化时告诉git创建新的时间戳?
97 git  git-rebase 

4
git从历史记录中删除合并提交
我的Git历史记录如下: 我想把紫色的东西压成一个。我不想在我的提交日志中再次看到它们。 我尝试做一个git rebase -i 1,但是即使1在蓝色分支上(参见图片),我仍然看到紫色分支上的每个提交。 如何完全删除紫色分支(从提交日志中)?

3
我需要弹出并丢弃master分支中的“中间”提交。我该怎么做?
例如,在下面的master分支中,我只需要丢弃提交af5c7bf16e6f04321f966b4231371b21475bc4da,这是由于先前的重新设置而导致的第二次提交: commit 60b413512e616997c8b929012cf9ca56bf5c9113 Author: Luca G. Soave <luca.soave@gmail.com> Date: Tue Apr 12 23:50:15 2011 +0200 add generic config/initializers/omniauth.example.rb commit af5c7bf16e6f04321f966b4231371b21475bc4da Author: Luca G. Soave <luca.soave@gmail.com> Date: Fri Apr 22 00:15:50 2011 +0200 show github user info if logged commit e6523efada4d75084e81971c4dc2aec621d45530 Author: Luca G. Soave <luca.soave@gmail.com> Date: Fri Apr 22 17:20:48 …

6
如何在不需要强制推送的情况下使用git rebase?
为了实现git nirvana,我花了一整天的时间学习如何在当前合并的情况下利用rebase。 在运行我认为是git 101的流程(我在下面说明)时,必须push --force将更改推回原点。 我不是唯一的一个-我知道,这是覆盖地面(见1,2,3,4,5),我理解的技术原因,为什么力是必要的。我的问题是这样的---有歌声底垫的赞美很多(多)发表的博客以及它如何改变他们的生活(见1,2,3,4,列出了几个),但他们没有提到push --force是的一部分他们的流量。但是,几乎所有对现有stackoverflow问题的回答都说“是的,如果您要重新设置基础,您必须使用push --force”。 考虑到rebase拥护者的数量和宗教信仰,我必须相信使用'push --force'并不是rebase流程的固有部分,并且如果人们经常不得不强迫自己推送,那么他们在做错事。 push --force是件坏事。 这就是我的流程。 没有力量我能以什么方式获得相同的结果? 简单的例子 两个分支: v1.0-版本分支,仅包含补丁 大师 -下一个主要版本的所有内容。 我有一些补丁提交,还有一些针对下一个发行版的提交。 我想将这些修补程序合并到我的母版中,以使它们不会在下一发行版中丢失。启蒙前我会简单地: git checkout master git merge v1.0 但是现在我正在尝试 git checkout master git rebase v1.0 所以现在我在这里: 的时间: git push 没有骰子。
92 git  git-rebase 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.