小编Mes*_*ssi的帖子

`git rebase`使用哪个命令从合并分支中挑选提交?

假设我们有:

C1--C2--C3--C6--C7   <- topic, HEAD
 \   \     /
  \  C4--C5      
   \
    C8--C9           <- master
Run Code Online (Sandbox Code Playgroud)

(我们添加了一个空file1并提交C1,添加一个空file2并提交C2,等等).

然后我们做:

$ git rebase master
Run Code Online (Sandbox Code Playgroud)

结果是:

C1--C8--C9                         <- master
         \
         C4'--C2'--C5'--C3'--C7'   <- topic, HEAD
Run Code Online (Sandbox Code Playgroud)

我已经在这里创建了一个自动bash脚本,你可以根据需要进行测试.

正如我在git-scm.com一书中的第3.6章中所学到的,Git跳过了C6哪个是合并结果,所以C6'这里没有介绍.

我的问题是,Git使用哪个命令从topic分支中挑选?为什么结果...-C4'--C2'--C5'--C3'--C7'不是...-C2'--C3'--C4'--C5'--C7'(按时间顺序)?

git git-rebase

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

`git rebase`如何跳过它在上游已经发生变化的提交?

git-rebase文件说:

如果上游分支已包含您所做的更改(例如,因为您邮寄了上游应用的补丁),则将跳过该提交.

但Git是如何做到的呢?

假设任何提交X都是commit 的父级Y,并且diffXYgit diff X Y命令的结果.我有以下提交:

o---o---o        <- master
 \
  o---o---o---o  <- test <- HEAD
Run Code Online (Sandbox Code Playgroud)

如果我做了git rebase master.那么我想的Git做跳绳承诺已经在master通过跳过任何承诺YtestdiffXY已经在master.

我做了一些例子,它们就像我猜想的那样.

这只是我的猜测,我是对的吗?

另外,在Git重新应用test提交之前,Git是否会执行此跳过任务master

git git-rebase

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

是否需要在位标志枚举类型中包含"无= 0"?

官方文档中,赋值0给元素意味着"没有设置标志"(例如None = 0),那么我为什么要在枚举中使用它呢?没有它我可以声明一个枚举吗?

我试着写一个没有的枚举None = 0,编译成功了.

c# enums

0
推荐指数
1
解决办法
48
查看次数

标签 统计

git ×2

git-rebase ×2

c# ×1

enums ×1