我已经进行了一次git commit
,但是我还没有推送。现在我正在修复一个新的bug,它不应该涉及到第一次提交时修改过的文件。
我是否可以提交这个bug修复,并仅git push
这个提交?
我已经进行了一次git commit
,但是我还没有推送。现在我正在修复一个新的bug,它不应该涉及到第一次提交时修改过的文件。
我是否可以提交这个bug修复,并仅git push
这个提交?
dev
,但不能单独推送 bugfix
,但是 bugfix
的定义包括 dev
,因此没有 bugfix
,dev
就没有意义。origin/master
创建一个新分支,挑选更改,然后在开发分支上使用git reset --hard HEAD^
来将错误修复更改移除)。git rebase master
向前推进您的dev分支,它将如下所示:
new master http://img.skitch.com/20091029-1ts3enwsmsr29imcu7tyk75ett.png
实际上,从分支开始进行错误修复通常会使这种操作变得更加容易。您可以将上一个提交移动到(临时)分支中,并将新的提交选取到主分支。例如:
# first commit your current work
git branch temp_branch
git reset --hard HEAD~2
git cherry-pick temp_branch
git push
然后,temp_branch 将包含您的新提交。您随后可以将之前的提交拿回 master 分支:
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
你的其他提交将不会被推送到原始仓库。
当你准备将“错误修复”合并到主分支时,请检出主分支并执行以下操作:
git merge bug_fix_name_that_I_dont_want_to_commit
我认为这回答了问题,如果不是,请告诉我!
只需另外克隆一份并从那里推送您的错误修复即可。