Git-避免推动某些局部更改
在处理项目的用户界面时,我在本地对其进行测试。因此,我希望能够取消对HTML头部中一些远程包含的注释,工作一段时间,然后在不取消注释的情况下推动更改,这只是为了加快本地测试的速度。使用git执行此操作的最佳方法是什么?不要将文件添加到提交中。仅添加并提交包含要推送的更改的文件。例如Git-避免推动某些局部更改,git,Git,在处理项目的用户界面时,我在本地对其进行测试。因此,我希望能够取消对HTML头部中一些远程包含的注释,工作一段时间,然后在不取消注释的情况下推动更改,这只是为了加快本地测试的速度。使用git执行此操作的最佳方法是什么?不要将文件添加到提交中。仅添加并提交包含要推送的更改的文件。例如 Uncomment remote includes in foo.html edit file1.html edit file2.html git add file1.html git add file2.html
Uncomment remote includes in foo.html
edit file1.html
edit file2.html
git add file1.html
git add file2.html
git commit -m "added feature"
git push origin master
对foo.html所做的更改将不会被推送
如果您想取消对文件的本地更改,请使用
git checkout
git checkout path\to\foo.html
您可以在
主程序
上设置一个单独的分支,只对这些行进行注释,例如
git checkout -b testing master
# edit foo/bar/baz.html
git commit -a -m "Enable local testing optimizations."
然后别管这根树枝。你几乎不用碰它。稍后你会做一些你想测试的工作,所以你会签入你的特性
# hack hack hack
git commit -m "Feature complete."
…然后(临时)合并到测试更改中
git merge testing
假设您不修改标题,这将很少导致任何冲突,应该干净地合并。你完成测试,然后你就可以
git reset --hard HEAD^
要放弃合并提交,请将树中的头指向“功能完成”。提交
有时,您可以根据master
重新设置测试
分支的基础,或者重新处理它以处理该部分的任何更改
另一种选择是只在补丁文件中维护更改。然后
# Feature complete!
# Apply testing code...
git apply testing.patch
# Test...
git apply -R testing.patch
# Remove testing code
相同的想法,但使用单独的补丁文件处理。更简单一点,也许允许少一点纪律,但也可能有一点风险
您可能还想编写一个更新钩子(请参阅),以确保您永远不会推动包含此测试补丁的更改。使用客户端钩子来自动取消签出后的注释和提交前的注释怎么样
如果您正在更改的注释并不总是相同的,那么这可能不是最佳解决方案
有关Git挂钩的信息,请参阅。您可以做的一件事就是永远不要提交更改。始终使用git add-p
添加更改(至少在该文件中),或者在提交之前取消该行的stage。是否有比这更干净、更可用的解决方案?类似于一个命名的隐藏条目,我可以在每次提交之前删除它,然后在每次提交之后应用它,这将是非常理想的……完美!那正是我要找的!非常感谢你:D