- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
正如标题所示。我最近尝试运行一个 git rebase 命令,该命令与 Git pro 的 rebase 部分具有相反的效果。也许我解释错了,但这让我发疯,因为我认为应该发生的事情失败了,我需要知道哪里出了问题。
我提到的部分在 More Interesting Rebases 下,特别是当您将 server work 分支 rebase 到 master 分支时的示例。 Git Rebasing.
我的解释方式是服务器工作将粘贴在主工作之上,这显然是根据插图发生的情况。
我在本地机器上有两个分支,分别名为 OTWO-3196(Capistrano 配置)和 origin/orgs_phase_2。我打算做的是让 origin/orgs_phase_2 工作基于我的 OTWO-3196(Capistrano 配置)工作。我在终端中输入了这个命令:
git rebase OTWO-3196(basebranch) origin/orgs_phase_2(topicbranch)
我认为将 orgs_phase_2 工作放在 OTWO-3196(Capistrano 工作)上,而不是将 OTWO-3196(Capistrano 工作)放在 orgs_phase_2 上。这与我想要的完全相反。
但是这个命令有效:
git rebase origin/orgs_phase_2 OTWO-3196
这将 origin/orgs_phase_2 的工作放到了 OTWO-3196 上。
我是不是理解错了命令?书有错吗?究竟发生了什么?多一双眼睛会很有帮助。谢谢。
最佳答案
我不知道你做了什么,或者你认为你做了什么,但是 origin/orgs_phase_2
是一个远程跟踪分支。它的唯一目的是指示上次与后者通信时名为 orgs_phase_2
的分支引用指向远程仓库中名为 origin
的位置。这种引用可以移动的唯一方法是通过获取或推送。特别是,您不能 rebase 远程跟踪分支。
此外,Pro Git 书是正确的。 您 得到了 git-rebase
语法倒退。 Git 的 rebase
就像那本书中宣传的那样工作,
git rebase [basebranch] [topicbranch]
checks out the topic branch [...] for you and replays it onto the base branch [...]
在 git-rebase
手册页中,
Assume the following history exists and the current branch is "topic":
A---B---C topic
/
D---E---F---G masterFrom this point, the result of either of the following commands:
git rebase master
git rebase master topicwould be:
A'--B'--C' topic
/
D---E---F---G master
为了修正想法,这里有一个你可以在家里重现的小例子:
#!/bin/bash
# set things up
cd ~/Desktop
mkdir test
cd test
git init
# write an initial shopping list
printf "4 pears\n" > shopping.txt
printf "3 lemons\n" >> shopping.txt
printf "1 stalk of celery\n" >> shopping.txt
printf "4 bananas\n" >> shopping.txt
# make a first commit on master
git add shopping.txt
git commit -m "add shopping list"
# modify the shopping list and make a second commit on master
sed -i '' 's/4 pears/4 apples/' shopping.txt
git add shopping.txt
git commit -m "replace pears by apples"
# create and check out a new branch called "kidscominghome"
git checkout -b kidscominghome
# make two more commits on kidscominghome
printf "16 pots of yoghurt\n" >> shopping.txt
git add shopping.txt
git commit -m "add yoghurt"
printf "beer\n" >> shopping.txt
git add shopping.txt
git commit -m "add beer"
# check out master, modify the file, and make one more commit
git checkout master
sed -i '' 's/stalk of celery/cauliflower/' shopping.txt
git add shopping.txt
git commit -m "replace celery by cauliflower"
在这个阶段,输出
git log --graph --decorate --oneline --all
应该是
* 5a0e340 (HEAD, master) replace celery by cauliflower
| * d3d22d0 (kidscominghome) add beer
| * edd730d add yoghurt
|/
* 7dc55b7 replace pears by apples
* 7079948 add shopping list
这是一个显示相同历史的更好看的图表:
现在,如果你跑
git rebase master kidscominghome
然后运行相同的 git log
命令,您应该会看到
* 2acf37d (HEAD, kidscominghome) add beer
* dfac4a8 add yoghurt
* 5a0e340 (master) replace celery by cauliflower
* 7dc55b7 replace pears by apples
* 7079948 add shopping list
同样,这是一个显示相同历史的更好看的图表:
如广告所示,kidscominghome
分支已被 check out ,只能从 kidcominghome
访问的提交已在 master
之上重播>;不是相反!
关于git - Pro Git 书是否向后提供了 git-rebase 的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25531921/
我想在 iOS 设备上以慢动作显示视频。 我的 View 包含一个视频(约 2 秒长)和一个 slider 。 用户可以移动 slider 并逐帧(向前和向后)浏览电影。 MPMoviePlayerC
假设两个模型的标准外键,例如: Company(models.Model): name = models.CharField('Nome', max_length = 255) ...
即使从其他项目复制和粘贴代码,我的 NSURL 也会向后格式化,这毫无意义。 例如: let baseURL = NSURL(string: "http://example.com/v1/") NSU
我目前有: $i = 1; while { echo $i; $i++; } 它显示: 1234 etc.. 如何让它向后显示? 例如 4321 etc.. 我基本上想做完全相同的事情,但将其
我正在使用 JQuery 选择页面上的一些元素,然后在 DOM 中移动它们。我遇到的问题是我需要以 JQuery 自然想要选择它们的相反顺序选择所有元素。例如: Item 1 Item
有 Home.vue 和 Statistics.vue 页面。 Home.vue 渲染 TableFields.vue 组件。在 Home.vue 中,有一些字段编号,在页面加载时设置了初始值“3”。
我正在寻找类似 https 的东西,但是是反向的。用户(提前)生成自己的私钥,然后(仅在稍后)向 Web 应用程序提供关联的公钥。这部分交换应该(如果需要)在带外进行。然后使用这些 key 对通信进行
我不知道如何解释我的问题。这是我尝试解释的:函数 FindNext(SearchRec) 将从目录中获取下一个文件。在我的应用程序中,我有时会从当前的 SearchRec 索引向后查找一些文件。那么我
我有一个带前导 NA 的日期向量,我想使用包 zoo 中的 na.approx 为这些 NA 生成一个近似序列。 na.approx 不适用于前导 NA: x <- as.Date(c(rep(NA,
在任何网络浏览器、Windows 文件管理器和许多其他应用程序中,都支持向前和向后导航。默认情况下,这始终(或至少在大多数情况下)适用于额外的鼠标按钮,如果您的鼠标有的话。 我想在基于 WinAPI
我正在尝试使用双向链表编写撤消和重做函数,该双向链表在调用 doAction() 时在 list_1 前面添加操作(节点),在调用 undo() 时将操作存储在 list_2 中,并在调用 redo(
我有一个示例数据框,如下所示 ID count 1 10 2 20 3 40 所以对于累计计数,我要实现 ID count
我的应用程序需要显示一个值的图形表示,范围从 -1 到 1。负值应使用一种颜色,正值应使用另一种颜色。零位于中心,什么也没有显示。 (如果有帮助的话,这里的特殊用途是在金融应用程序中显示买卖订单的相对
我对这个简单的线条动画有点吃力。我想出了如何暂停它,但我需要的是能够从我调用函数 resetAnimation() 的那一刻起将动画反转回起点。 let pathAnimation = CABasic
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: How to read a file from bottom to top in Ruby? 在开发我的 R
import numpy as np data = np.array([0, 0, 0, 0, 0, 0, 0, 1], dtype=np.uint8) data.view(np.uint64) 我期
我有一个这样的值列表, lst = [1, 2, 3, 4, 5, 6, 7, 8] 期望输出 : window size = 3 1 # first element in the list
我的代码再简单不过了... if (iWant > thereAre){ msg = "There's only "+thereAre+" left, but you want "+iWant
#include #include /* converts to binary */ int main() { unsigned int decimalNUM = 0; print
CTRL-x o - switch cursor to other window 我想有能力扭转 control-x o做。像 control-x p这正是 control-x o有,但倒退。这个请求
我是一名优秀的程序员,十分优秀!