从git stash

时间:2016-03-15 20:06:28

标签: git version-control jira

在我们的项目中,我们使用git stash和jira。正常的处理规则是:

  1. 我们在jira分配下创建了一个新的分支(有一个 超链接“在jira网站创建分支”)
  2. 我们将更改提交/推送到git中新创建的分支 控制台
  3. 从git stash,我们“创建拉请求”,proj领导将审核 并将更改合并到dev分支。
  4. 我的问题是我忘记了第1步,我将我的更改提交/推送到最后创建的分支,让我们称之为“other-ppl's-branch”

    现在我重新创建了一个新的分支,我们称之为“我的新分支”,我的问题是,如何从“other-ppl's-branch”中删除我的提交并重新发送给“my-new-分支“?

2 个答案:

答案 0 :(得分:0)

  

我的问题是我忘记了第1步,我将我的更改提交/推送到最后创建的分支,让我们称之为other-ppl's-branch

阅读本文,它将描述解决问题的所有方法 How to move HEAD back to a previous location? (Detached head)

  

如何从other-ppl's-branch删除我的提交并重新发送给my-new-branch

使用git reflog来回到错误之前的点并从那里继续,这样做很简单

如上面的帖子中所述,您可以随时签出任何给定的提交,然后删除“坏”分支并从此提交中创建一个新的分支。

如何将提交添加到正确的分支?

几个选项:

<强> git cherry-pick

现在,为了做到这一点,您可以使用git cherry-pick并选择提交范围

<强> git format-patch & git apply

使用git format-patch生成所需提交的修补程序,然后添加它们将它们应用到所需的分支。

答案 1 :(得分:0)

我可以想到从源删除提交是:

方法1

git revert <commit>,创建一个新的提交以还原不需要的提交。

方法2

如果您坐在最后一次不需要的提交之上。而且您确定其他人在您的更改期间不会提交。

git reset --hard <commit>

git push --force

Delete commits from a branch in Git