Search code examples
gitgithubgit-flow

Git push reminder/helper?


Sometimes I need (in order to make my development faster) harcode some stuff in my code. That can be credentials, or maybe just a hack to allow me to test certain feature. For many reasons, I never want to push this code to the main codebase or even the development branch. For some time I've been using the 'git-assume-unchaged' command but after merges, rebases, etc that can get mixed up and you might be pushing something you don't want. Is there a cool clean way to achieve this? maybe some command that warns me that I have to remember to checkout some file before pushing or something like that? any ideas?


Solution

  • In many cases (like credentials) I would suggest thinking about ways in which you can avoid having to put those - even temporarily - into source-controlled files. (This might end up helping you in other ways as well.) But there may just be cases where temporary code is the most straightforward workflow for you, so ...

    One solution would be to use a pre-commit hook. You could mark your temporary code with a comment (something like // xxxTEMPxxx in C-like languages maybe) and then reject any commit that finds your marker in the diff. See the example in .git/hooks/pre-commit.sample.

    You can then keep your change in place as you work, committing or doing whatever, but if you git add the change then you'll be reminded that it's there and can unstage it. (If you're working on other code in the same file, you can use git add -p to selectively stage the changes you intend to commit while keeping your temp code out.)

    Of course your temp changes still exist as untracked changes, which can get in the way of some operations; but in that case you can stash them. It's got to be better than trying to play with assume-unchanged at least.