如何在没有较早提交的情况下推送一个Git提交?
我已经做了一个git提交,但是我没有推。我现在正在做一个新的bug修复,它不应该和第一次提交时接触相同的文件如何在没有较早提交的情况下推送一个Git提交?,git,Git,我已经做了一个git提交,但是我没有推。我现在正在做一个新的bug修复,它不应该和第一次提交时接触相同的文件 我是否可以提交此错误修复并仅提交此提交?您可以将以前的提交移动到(临时)分支,然后选择新的提交到主分支。例如: # first commit your current work git branch temp_branch git reset --hard HEAD~2 git cherry-pick temp_branch git push 然后,temp_分支将包含两个新提交。然后
我是否可以提交此错误修复并仅提交此提交?您可以将以前的提交移动到(临时)分支,然后选择新的提交到主分支。例如:
# first commit your current work
git branch temp_branch
git reset --hard HEAD~2
git cherry-pick temp_branch
git push
然后,temp_分支将包含两个新提交。然后,您可以稍后将上一个选回主控:
git cherry-pick temp_branch^
git branch -D temp_branch
完成此操作后,您的主分支将包含与开始时相同的两个提交,但顺序相反。只需执行另一个克隆,并从那里推动错误修复。我们的商店广泛使用个人分支。基本上这个过程是这样的: 鉴于您目前在主分支上
git checkout -b bug_fix_name_that_I_dont_want_to_commit
上面创建了一个分支并将其签出…这是放置未准备好推送的提交的地方
现在,您应该能够在不影响主分支的情况下对当前分支进行提交
当您准备发布/推送该提交时,只需执行以下操作:
git push origin master
您的其他提交将不会转到源存储库
当您准备将“bug修复”合并到主分支中时,签出主分支并执行
git merge bug_fix_name_that_I_dont_want_to_commit
我想这回答了问题,但如果没有,请告诉我 导致特定提交的所有提交都定义了新提交 也就是说,如果你有一个主人→ 发展→ 修复错误,如下图所示: 您可以单独推动
dev
,但不能单独推动bugfix
,但是bugfix
的定义包括dev
,因此dev
没有bugfix
但是,如果您将此错误修复构建为一个功能分支,那么您将得到更像这样的东西:
您仍然可以追溯到这一点(从origin/master
创建一个新分支,选择更改,然后在您的开发分支上执行git reset--hard HEAD^
,以消除错误修复更改)
完成后,您可以使用一个简单的git-rebase-master
转发您的开发分支,如下所示:
实际上,从分支开始修复bug通常会使这类问题变得更容易。看起来您已经问了50多个问题,但只接受了其中一小部分的答案。请考虑使用“接受”函数来标记对您最有帮助的答案。