小编ATL*_*DEV的帖子

合并/变基的方向或顺序有影响吗?

假设您在处理功能分支时从远程存储库中提取数据,并将新提交添加到主分支中。

您完成功能分支上的工作,提交更改,然后将其合并/变基到主分支。功能提交插入到 master 分支的哪个位置,是在拉取的提交之前还是之后?如果您从未执行过拉动操作,它们会插入哪里?会得到同样的结果吗?

另外,如果将 master 合并/变基到功能分支而不是相反,会发生什么?如果您在拉取之前或之后合并/变基,master 会插入到功能分支的哪里?会得到同样的结果吗?它的历史看起来与前面提到的将功能合并/变基到主版本中会有什么不同吗?

更简洁地说,合并的方向和/或合并的顺序是否会对合并结果产生不同的结果?我怀疑这并不重要。

旁白:对于使用 Git 的人来说,这个问题可能很容易回答,但是有数百甚至数千的文档和教程资源,我从未见过它被直接解决。如果不知道答案,Git 可能会非常难以理解。

因为操作顺序在某些 Git 概念和一般编程中很重要,所以它可能会导致某人得出这样的结论:它会产生影响。此外,我们通常倾向于认为修订是按时间顺序发生的,并期望 Git 也以同样的方式工作。用户界面和命令行也通过暗示操作顺序来体现这种看法。

其他版本跟踪工具在抽象这种认知腐蚀性操作方面做得更好。

git github rebase git-merge

2
推荐指数
1
解决办法
1115
查看次数

git-worktree和git-subtree有什么区别?

就在我以为Git不再复杂的时候,我才发现git worktree。这是我不知道的子树或功能的代名词。工作树与子树相同还是不同?如果它们不同,它们又如何不同,工作树将解决什么问题?

git subtree git-worktree

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

为什么我不能将提交合并为一个?

好.我最终试图找出为什么我不能将两个提交合并为一个.Git非常复杂.我有一系列在本地和远程看起来像这样的提交:

commit 6abb264c06b06d42ea7e07a469107b9d3d72dffa
Author: XXXX <xxx@xxxx.xxx>
Date:   Thu Jan 23 15:59:03 2014 -0500

   First Check-in again (forgot to add project file and forgot to tick off append to last commit)


commit 90b2468f5267a471d52f2d7cc7cb1cd8604b3b86
Author: XXXX <xxx@xxxx.xxx>
Date:   Wed Jan 22 22:57:20 2014 -0500

   First check-in 
Run Code Online (Sandbox Code Playgroud)

我想将它们组合在一起,看起来像这样:

commit 90b2468f5267a471d52f2d7cc7cb1cd8604b3b86
Author: XXXX <xxx@xxxx.xxx>
Date:   Wed Jan 22 22:57:20 2014 -0500

   First check-in 
Run Code Online (Sandbox Code Playgroud)

我尝试使用pick,squash和任何可用的葫芦命名无效.它告诉我它已经压缩/合并/挑选了什么,但我总是看到两个提交而不是一个.

也无法弄清楚挑选和壁球之间的区别.另外,我无法分辨提交和分支之间的区别.而且,我读到一个分支只是一个提交,但为什么我们必须合并分支但是选择/压缩(??)提交?这非常令人困惑.

git git-rebase git-commit

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

如何在c ++ 11中有条件地跳过for循环的post操作?

我有一个for循环遍历一个对象向量.如果一个对象不满足条件,我想通过循环重复相同的对象,直到它满足条件.

int TrainDog(const vector<Dog> &dogs, const Cat big_cat) { 
    for (auto const dog : dogs) {
       dog->Sit();                 // tell the dog to sit
       if (!dog->IsBarking())      // if dog isn't barking
          dog->Eat(raw_burger);    //   then reward dog
       else {                      // else 
          dog->PlayWith(big_cat);  //   punish dog
          ???                      //   and train again ??? 
          big_cat++;               //   with bigger cat
       } 
    }   
}
Run Code Online (Sandbox Code Playgroud)

我宁愿保留这个干净的迭代器,而不是使用传统的索引变量语法.

c++ for-loop c++11

-2
推荐指数
1
解决办法
132
查看次数