相关疑难解决方法(0)

樱桃挑选Git意味着什么?

最近,我被要求cherry-pick提交.

那么,在git中挑选一个提交意味着什么呢?你怎么做呢?

git cherry-pick git-cherry-pick

2117
推荐指数
11
解决办法
101万
查看次数

从另一个分支在Git中创建一个分支

我有两个分支:masterdev

我想从dev分支创建一个"功能分支" .

目前在分支开发,我做:

$ git checkout -b myfeature dev
Run Code Online (Sandbox Code Playgroud)

... (一些工作)

$ git commit -am "blablabla"
$ git push origin myfeature
Run Code Online (Sandbox Code Playgroud)

但是,在对我的树枝进行可视化之后,我得到了:

--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Run Code Online (Sandbox Code Playgroud)

我的意思是分支似乎合并了,我不明白为什么......

我做错了什么?

请问您如何解释我如何从另一个分支分支并推回到功能分支的远程存储库?

所有这些都在分支模型中,就像这里描述的那样.

git git-workflow git-flow git-branch

850
推荐指数
9
解决办法
99万
查看次数

如何樱桃挑选一系列提交并合并到另一个分支?

我有以下存储库布局:

  • 主分公司(生产)
  • 积分
  • 工作的

我想要实现的是从工作分支中挑选一系列提交并将其合并到集成分支中.我是git的新手,我无法弄清楚如何正确地做到这一点(在一次操作中不提取合并的樱桃选择提交范围)而不会弄乱存储库.关于这个的任何指针或想法?谢谢!

git git-merge git-cherry-pick

599
推荐指数
8
解决办法
32万
查看次数

Git分支模型适合您?

我们公司目前正在使用简单的主干/发布/修补程序分支模型,并希望了解哪些分支模型最适合您的公司或开发过程.

  1. 工作流程/分支模型

    以下是我所看到的三个主要描述,但它们彼此部分相互矛盾,或者不足以解决我们遇到的后续问题(如下所述).因此,我们的团队到目前为止默认不是那么好的解决方案.你做得更好吗?

  2. 合并与变基(纠结与连续历史)

    是应该pull --rebase还是等待合并回到主线直到你的任务完成?我个人倾向于合并,因为这保留了一个任务开始和完成的基础的视觉图示,我甚至更喜欢merge --no-ff这个目的.然而,它有其他缺点.还有许多人没有意识到合并的有用属性 - 它不是可交换的(将主题分支合并到master中并不意味着将master合并到主题分支中).

  3. 我正在寻找一个自然的工作流程

    有时会发生错误,因为我们的程序无法通过简单的规则捕获特定情况.例如,早期版本所需的修复当然应该足够下游,以便可以将上游合并到所有必要的分支中(这些术语的使用是否足够清楚?).然而,在开发人员意识到它应该被放置在更下游之前,并且如果已经推送(更糟糕的是,合并或基于它的某些东西)之后,修复使其成为主人,那么剩下的选项就是挑选,其相关的危险.您使用了哪些简单的规则?同样在这包括一个主题分支的尴尬必然排除其他主题分支(假设它们从共同基线分支).开发人员不希望完成一个功能来启动另一个功能,感觉就像他们刚写的代码不再存在

  4. 如何避免创建合并冲突(由于挑选)?

    创建合并冲突的可靠方法似乎是在分支机构之间进行挑选,它们永远不会再次合并?在任一分支中应用相同的提交(如何执行此操作?)可能会解决这种情况?这是我不敢推动基于合并的工作流程的一个原因.

  5. 如何分解成外用分支?

    我们意识到从主题分支组装完成的集成是很棒的,但是我们的开发人员经常工作没有明确定义(有时像"戳"一样简单),如果某些代码已经进入"misc"主题,根据上面的问题,它不能再被带出去了吗?您如何使用定义/批准/毕业/发布您的主题分支?

  6. 代码审查和毕业等适当的程序当然是可爱的.

    但是我们根本无法保持足够的东西来管理这个 - 任何建议?整合分支,插图?

以下是相关问题列表:

还要看看Plastic SCM在任务驱动开发上写的内容,如果不是Plastic的选择,请研究nvie的分支模型及其支持脚本.

git merge workflow release cherry-pick

371
推荐指数
3
解决办法
6万
查看次数

Git diff提交范围中双点".."和三点"..."之间有什么区别?

以下命令之间有什么区别?:

git diff foo master   # a 
git diff foo..master  # b
git diff foo...master # c
Run Code Online (Sandbox Code Playgroud)

diff手册谈到它:

比较分支机构

$ git diff topic master    <1>
$ git diff topic..master   <2>
$ git diff topic...master  <3>
Run Code Online (Sandbox Code Playgroud)
  1. 主题提示与主分支之间的更改.
  2. 与上述相同.
  3. 自主题分支启动以来主分支上发生的更改.

但对我来说并不完全清楚.

git diff git-diff

175
推荐指数
4
解决办法
2万
查看次数

如何轻松地将本地Git分支推送到具有不同名称的远程?

我一直想知道是否有一种简单的方法来推送和拉出具有不同名称的远程分支的本地分支,而不必始终指定这两个名称.

例如:

$ git clone myrepo.git
$ git checkout -b newb
$ ...
$ git commit -m "Some change"
$ git push origin newb:remote_branch_name
Run Code Online (Sandbox Code Playgroud)

现在如果有人更新remote_branch_name,我可以:

$ git pull
Run Code Online (Sandbox Code Playgroud)

一切都是合并/快进的.但是,如果我在当地的"newb"中进行更改,我不能:

$ git push
Run Code Online (Sandbox Code Playgroud)

相反,我必须:

% git push origin newb:remote_branch_name
Run Code Online (Sandbox Code Playgroud)

看起来有点傻.如果git-pull用于git-config branch.newb.merge确定从何处拉出,为什么不能git-push有类似的配置选项?有没有一个很好的捷径,或者我应该继续漫长的路?

git version-control git-push git-remote

167
推荐指数
5
解决办法
7万
查看次数

如何在Git中将特定提交从一个分支合并到另一个分支?

我有BranchA113个提交BranchB.

但我只希望将最后10个左右的提交BranchA合并到BranchB.

有没有办法做到这一点?

git github

151
推荐指数
3
解决办法
12万
查看次数

根据Git,谁是"我们"谁是"他们"?

在Git rebase之后,在其他情况下,您可以在报告中找到我们标记为已删除的一些文件git status.根据Git,我们是谁?为什么?

它指的是我坐在这个分支上它是否适合我?或者它是指自己和在分支机构工作的人我反对?

git

146
推荐指数
2
解决办法
2万
查看次数

恢复git中的一系列提交

如何在git中恢复一系列提交?从查看gitrevisions文档,我看不出如何指定我需要的范围.例如:

A -> B -> C -> D -> E -> HEAD
Run Code Online (Sandbox Code Playgroud)

我想做相同的:

git revert B-D
Run Code Online (Sandbox Code Playgroud)

结果将是:

A -> B -> C -> D -> E -> F -> HEAD
Run Code Online (Sandbox Code Playgroud)

其中F包含BD的反向.

git range revert

109
推荐指数
3
解决办法
5万
查看次数

我可以在不修改我的工作副本的情况下重新绑定Git分支吗?

假设我检查了我的"主"分支.我已经对"master"进行了一些生产更改,现在我想将我的"实验"分支改为最新的master.但是,我想在不修改工作副本中的任何文件的情况下执行此操作.从本质上讲,我希望所有的魔法都发生在.git目录中,而不需要触及工作副本.

如果不是"不要修改我的工作副本"要求,这只是一个问题:

# current branch is master
git checkout experimental
git rebase master
git checkout master
Run Code Online (Sandbox Code Playgroud)

我真正的问题是,这会修改我的工作副本中的时间戳,即使我通过查看与我开始的完全相同的内容结束.一旦我运行"git checkout experimental",任何包含实验分支中的更改的文件都会将其mtime设置为当前时间 - 因此,自上次重新实验以来,在master中更改的所有文件也是如此.因为mtimes已经改变了,所以像构建工具这样的东西会让人觉得他们需要再做一些工作,即使在我完成时,文件的内容实际上并没有改变.(就我而言,如果项目文件的时间戳发生变化,Visual Studio认为需要花费大量时间来卸载和重新加载项目.)我想避免这种情况.

有没有办法一步完成上述所有操作,而无需修改工作副本中的任何内容 (假设在rebase期间没有冲突)

(如果冲突,我更倾向于将显示该错误,然后中止整个操作,而不用修改任何时间戳但是,这只是我的偏好,而不是硬性要求-我不知道什么是一切皆有可能.)

当然我可以编写一个脚本来捕获mtimes,运行git,然后重置mtimes; 但似乎Git已经有办法在没有打扰工作副本的情况下执行rebase这样的事情,因为rebase实际上是关于增量,而不是文件的实际内容.

git rebase

58
推荐指数
4
解决办法
1万
查看次数