草庐IT

rebase-apply

全部标签

git rebase 不改变提交时间戳

在保留提交时间戳的同时执行gitrebase是否有意义?我认为结果是新分支不一定按时间顺序有提交日期。这理论上可能吗?(例如,使用管道命令;只是好奇)如果理论上可行,那么在实践中是否可以使用rebase而不更改时间戳?例如,假设我有以下树:master|:::oldbranch:/oldcommit现在,如果我将oldbranchrebase到master,提交日期将从1984年2月更改为2010年6月。是否可以更改该行为以便提交时间戳是不是变了?最终我会得到:oldbranch/master|:这有意义吗?在git中甚至允许有一个历史记录,其中旧提交有一个更新的提交作为父提交吗?

git - 如何让 Git pull 默认为我的所有存储库使用 rebase?

有没有办法设置主机Git存储库,以便从其(本地)克隆完成的任何gitpull默认使用--rebase?通过在StackOverflow上搜索,我了解了branch.autosetuprebase,但它需要为每个克隆单独配置。我的项目流程是这样设置的,我们先pulldevelop分支,然后再merge一个功能分支到它。此pull几乎总是使用--rebase,所以我想弄清楚这是否可以是默认设置。 最佳答案 默认pull行为现在有3个不同级别的配置。从最一般到最细粒度它们是:1。pull.rebase将其设置为true意味着gitpull

git - 在 git 中,fetch 与 pull 有何不同,merge 与 rebase 有何不同?

我只是不明白这一点。我在网上和书籍上阅读了很多东西,但有些东西并没有留在我的脑海里。有人可以给我以下的虚拟版本吗:gitfetch与pullgitmerge与rebase 最佳答案 获取与pullfetch将从远程*分支下载任何更改,更新您的存储库数据,但保持本地*分支不变。pull将执行fetch并将更改merge到您的本地分支。有什么区别?pull使用pull分支的更改更新您的本地分支。fetch不会推进您的本地分支。merge与rebase鉴于以下历史:C---D---Elocal/A---B---F---Gremotemer

git - Mercurial : How to do a rebase like git's rebase

在Git中我可以这样做:1.Startworkingonnewfeature:$gitco-bnewfeature-123#(alocalfeaturedevelopmentbranch)doafewcommits(M,N,O)masterA---B---C\newfeature-123M---N---O2.Pullnewchangesfromupstreammaster:$gitpull(masterupdatedwithff-commits)masterA---B---C---D---E---F\newfeature-123M---N---O3.Rebaseoffmastersot

git rebase : "error: cannot stat ' file': Permission denied"

我正在使用git,并进行了一次小提交,然后进行了一次大提交。我决定在推送它们之前使用gitrebase将两个提交压缩在一起。(我以前从未这样做过。)所以我做了:gitrebase-iHEAD~2这给了我我的编辑器,我在其中选择了较早的提交并压缩了较晚的提交。当我保存时,git说:error:cannotstat'filename':PermissiondeniedCouldnotapplysha1forlatercommit...initiallineoftextforthatcommit现在:当我执行gitlog时,没有提交出现。gitstatus告诉我“当前不在任何分支上”。一个文

git - 什么时候应该使用 git pull --rebase?

我知道有些人默认使用gitpull--rebase而其他人则坚持从不使用它。我相信我理解merge和rebase之间的区别,但我试图将其放在gitpull的上下文中。只是不想看到很多merge提交消息,还是有其他问题? 最佳答案 我想就gitpull--rebase的实际含义提供一个不同的视角,因为它有时似乎会迷失。如果您曾经使用过Subversion(或CVS),您可能已经习惯了svnupdate的行为。如果您有更改要提交并且由于上游已进行更改而导致提交失败,则您svnupdate。Subversion通过将上游更改与您的更改me

git - 如何将本地分支 rebase 到远程主机

我有一个来自远程存储库remote_repo主分支的克隆项目。我创建了一个新分支并提交给该分支。其他程序员将remote_repo推送到master分支。我现在需要将我的本地分支RBrebase到remote_repo的master分支上。如何做到这一点?向终端输入什么命令? 最佳答案 首先从上游存储库中获取新的master,然后将你的工作分支rebase:gitfetchorigin#Updatesorigin/mastergitrebaseorigin/master#Rebasescurrentbranchontoorigin/

功能分支 rebase 后 Git 推送被拒绝

好吧,我以为这是一个简单的git场景,我错过了什么?我有一个master分支和一个feature分支。我在master上做了一些工作,在feature上做了一些工作,然后在master上做了一些工作。我最终得到这样的结果(字典顺序意味着提交的顺序):A--B--C------F--G(master)\D--E(feature)我对gitpushoriginmaster保持远程master更新没有问题,对gitpushorigin功能也没有问题(当打开feature)为我的feature工作维护远程备份。到目前为止,我们都很好。但现在我想在master上的F--G提交之上对feature

git - git stash pop 和 git stash apply 的区别

我使用gitstashpop已经有一段时间了。我最近发现了gitstashapply命令。当我试用它时,它似乎与gitstashpop一样工作。gitstashpop和gitstashapply有什么区别? 最佳答案 gitstashpop丢弃应用后的(默认情况下最顶层的)stash,而gitstashapply保留它在存储列表中以便以后可能重用(或者你可以gitstashdrop它)。除非在gitstashpop之后发生冲突,否则会发生这种情况,在这种情况下,它不会删除存储,让它的行为与gitstashapply完全相同。另一种看

git - 如果我已经开始 rebase ,如何将两个提交 merge 为一个?

我正在尝试将2个提交merge为1个,所以我遵循了“squashingcommitswithrebase”fromgitready.我跑了gitrebase--interactiveHEAD~2在生成的编辑器中,我将pick更改为squash,然后保存退出,但rebase失败并出现错误Cannot'squash'withoutapreviouscommit现在我的工作树已经达到这种状态,我很难恢复。命令gitrebase--interactiveHEAD~2失败:Interactiverebasealreadystarted和gitrebase--continue失败Cannot'sq