相关疑难解决方法(0)

如何樱桃挑选多个提交

我有两个分支.提交a是一个头,而其他有b,c,d,ef之上a.我想移动c,d,ef第一支没有提交b.使用樱桃挑选很容易:结帐第一个分支樱桃 - 一个接一个c地挑选f第二个分支到第一个.但有没有办法挑选所有c- f一个命令?

这是场景的直观描述(感谢JJD):

在此输入图像描述

git git-rebase cherry-pick

779
推荐指数
11
解决办法
39万
查看次数

你什么时候会使用不同的git合并策略?

从git-merge的手册页中,您可以使用许多合并策略.

  • resolve - 这只能使用3向合并算法解析两个头(即当前分支和你从中拉出的另一个分支).它试图仔细检测纵横交错的合并模糊,并且通常被认为是安全和快速的.

  • 递归 - 这只能使用3向合并算法解析两个磁头.当有多个可用于3向合并的共同祖先时,它会创建共同祖先的合并树,并将其用作3向合并的参考树.据报道,这可以减少合并冲突,而不会因为从Linux 2.6内核开发历史记录中进行的实际合并提交而导致错误合并.此外,这可以检测和处理涉及重命名的合并.这是拉动或合并一个分支时的默认合并策略.

  • 章鱼 - 这解决了两个以上的案例,但拒绝进行需要手动解决的复杂合并.它主要用于将主题分支头捆绑在一起.这是拉动或合并多个分支时的默认合并策略.

  • 我们的 - 这解决了任意数量的头,但合并的结果始终是当前的分支头.它旨在用于取代侧枝的旧发展历史.

  • 子树 - 这是一个修改后的递归策略.当合并树A和B时,如果B对应于A的子树,则首先调整B以匹配A的树结构,而不是读取相同级别的树.这种调整也是对共同的祖先树进行的.

我什么时候应该指定不同于默认值的东西?哪些场景最适合?

git merge git-merge

415
推荐指数
4
解决办法
12万
查看次数

在git中,merge --squash和rebase之间有什么区别?

我是git的新手,我正在努力理解壁球和篮板之间的区别.根据我的理解,你做一个篮板时做一个壁球.

git merge rebase git-rebase squash

336
推荐指数
5
解决办法
13万
查看次数

插入符号(^)是什么意思?

我在这里看到了一个问题答案,有助于在git中恢复已删除的文件.

解决方案是

git checkout <deleting_commit>^ -- <deleted_file_path>
Run Code Online (Sandbox Code Playgroud)

插入符(^)的作用是什么?我在其他地方看到它在git中做了非常有用的事情.这很神奇.请有人为我破坏它并告诉我它的作用?

git

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

使用revert多次回滚到旧提交

我想使用git revert回滚到提交,所以我可以保留历史记录.有没有更简单的方法来执行此操作然后为我想要还原的每个提交哈希运行git revert?有没有更快的方法从特定提交一直恢复到另一个提交哈希?

在手册页上,他们声明你可以做这样的事情,git revert -n master~5..master~2但是当我尝试这样做时,我得到了这个错误:fatal: Cannot find 'master~5..master~2'

git

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

Git 流程和多个功能等待 QA

在过去的几个月里,我们一直在工作中松散地跟踪 git flow,但遇到了漫长的 QA 等待问题。

这是我们的流程:

  • 开发人员在功能分支上进行本地开发
  • 当团队认为该功能准备就绪时,将其合并到开发中,推送到开发服务器(Codeship & rsync)
  • 客户批准功能
  • 功能合并到 master,推送到 prod

不幸的是,客户有时可能需要长达数周的时间来批准一项功能。这可能是由于积压、内容创建、人员流动等原因。

但是,与此同时,新功能可能已合并到开发中并推送到开发服务器进行审批。假设第二个功能获得批准并需要尽快部署(当然)。我如何在不带第一个功能的情况下从 dev 中获得第二个功能?

git git-flow

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

GIT无法恢复到先前的提交 - 远程不接受推送

我只是从Git开始,我有一些东西,我需要扭转到以前的提交.我可以在本地做这个没问题.

git reset --hard hashcode(或使用sourcetree)

然而,当我尝试推送到bitbucket时,souretree给了我一个错误,直到我拉下先前的提交,然后我回到了我开始无法恢复到之前的commit.l

如何在本地恢复到先前的提交,然后推送到bitbucket覆盖并删除在我恢复到之后的所有提交?

错误消息是:

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin Development:Development
Pushing to git@bitbucket.org:Username/project.git

To git@bitbucket.org:Username/project.git
 ! [rejected]        Development -> Development (non-fast-forward)
error: failed to push some refs to 'git@bitbucket.org:Username/project.git'

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

git git-commit atlassian-sourcetree

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