我不认为这是可能的,但认为有人可能对如何实现这一点有一个很好的想法:
我有一个我检查过的项目,在我接手之前很久就存在了.我在各种文件中进行了大约十几次更改,我从不想签入(它们都是配置更改).
有没有办法提交这组更改,然后再也没有实际推送那个提交?我知道这听起来很奇怪:)
澄清:
我希望这些更改保留在我的工作目录中,我需要它们才能使应用程序在本地运行.我希望能够继续提交围绕它们的其他更改,甚至是同一文件中的更改,但从不将配置更改推送到其他任何地方......
这有点像我想要的每次推动之前:
Kar*_*ldt 21
这与将本地补丁集维护到您无法控制的上游项目类似.处理此问题的最简单方法是使用一个中间分支,所有更改都通过合并,如下所示:
___________________________ master
\__________________________ config-changes
\_____________________ daily-work
Run Code Online (Sandbox Code Playgroud)
master
包含要共享的所有内容.提交的唯一内容config-changes
是您希望在共享时能够轻松还原的更改. daily-work
是您完成所有工作的分支.要进行设置,请执行以下操作:
# (no local config changes should be in master at this point)
git checkout -b config-changes master
# Make your config-related changes that you don't want to share
git commit -am "Made local config changes"
git checkout -b daily-work
# Work and commit like normal
Run Code Online (Sandbox Code Playgroud)
当您准备好分享您的更改时,请执行以下操作:
git rebase --onto master config-changes daily-work
git checkout master
git merge daily-work
Run Code Online (Sandbox Code Playgroud)
这将恢复所做的所有更改config-changes
,但另外使它看起来像你直接分支master
.请注意,执行此rebase后,如果要继续使用daily-work
,则需要将其重新绑定config-changes
,但最好为每个更改创建一个新分支.
当您需要从中删除新更改时master
,请执行以下操作:
git checkout master
git pull
git checkout config-changes
git merge master
Run Code Online (Sandbox Code Playgroud)
合并将您的本地配置更改重新应用到最新的主服务器上.然后,您可以根据需要自由创建新daily-work
分支,或合并config-changes
到旧分支中.基本上,你永远不会直接合并master
到daily-work
.你总是先经历config-changes
.
一开始看似很多工作,但是一旦你做了一两次,你会发现它比手动维护更改要容易得多.
归档时间: |
|
查看次数: |
1525 次 |
最近记录: |