我在网上做了一些搜索.我知道你可以在提交后使用format-patch,但我的情况有点不同.
我想创建一个补丁,类似于SVN中的"dpk",所以我可以发送它进行代码审查,但我还不想提交它.
我怎样才能用Git实现这个目标?
Ray*_*Luo 111
当其他人已经给出一些符合git约定的答案时,OP的问题"创建一个没有提交的补丁"也可以用这种方式解决:
git diff > my_patch.txt
Run Code Online (Sandbox Code Playgroud)
稍后您可以通过以下方式应用此修补程序,也无需提交:
git apply my_patch.txt
Run Code Online (Sandbox Code Playgroud)
但是如果你只是在本地工作,那么git checkout another_branch -m
就足以将所有当前的不允许更改带到另一个_branch,甚至没有补丁和应用.
小智 9
最后生成补丁而不提交的一般步骤
使用提交您的本地更改
git commit -a -m "specific message"
Run Code Online (Sandbox Code Playgroud)
注意:不要推送此提交.
生成补丁
git format-patch -s -n -1 HEAD
Run Code Online (Sandbox Code Playgroud)
它会生成0001-.patch
恢复本地提交
git reset --soft HEAD~1
Run Code Online (Sandbox Code Playgroud)
删除提交但保留你的工作
git reset --hard HEAD~1
Run Code Online (Sandbox Code Playgroud)
删除你的工作提交
在Git中提交是一种廉价且完全本地化的操作,因此只要您不将其推送到任何地方,就没有理由避免提交.
只需创建一个新的本地分支并在那里提交您的更改.如果您不再需要它,您可以随后删除分支,或者您可以保留分支并使用它来处理您正在执行的任何操作,然后在准备就绪时将其合并(或重新绑定)到主分支中.这是使用Git时使用的一个很好的工作流程.
$ git checkout -b feature-foo # create and switch to new branch feature-foo
$ git commit
# do whatever you need to do
$ git checkout master # switch back to the master branch
$ git merge feature-foo # merge your change into master (optional)
$ git branch -d feature-foo # delete the branch
Run Code Online (Sandbox Code Playgroud)
就像@hammar说的那样,提交很便宜然后你就可以把提交git reset
等等搞砸了.
你也可以藏匿然后做:
git stash show -p
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34890 次 |
最近记录: |