1
0
mirror of https://github.com/nvbn/thefuck.git synced 2025-03-14 06:38:32 +00:00

Use --force-with-lease instead of --force for git push

--force flag can be very dangerous, because it unconditionally
overwrites remote branch - if someone pushed new commits to the remote
repo after you last fetched/pulled, and you do push --force, you will
overwrite his commits without even knowing that you did that.  Using
--force-with-lease is much safer because it only overwrites remote
branch when it points to the same commit that you think it points to.

Read more:
https://developer.atlassian.com/blog/2015/04/force-with-lease/
This commit is contained in:
Jan Warchoł 2015-10-30 16:17:56 +01:00
parent 959b96cf6e
commit dc23d67a42
3 changed files with 5 additions and 5 deletions

View File

@ -219,7 +219,7 @@ Enabled by default only on specific platforms:
Bundled, but not enabled by default: Bundled, but not enabled by default:
* `git_push_force` – adds `--force` to a `git push` (may conflict with `git_push_pull`); * `git_push_force` – adds `--force-with-lease` to a `git push` (may conflict with `git_push_pull`);
* `rm_root` – adds `--no-preserve-root` to `rm -rf /` command. * `rm_root` – adds `--no-preserve-root` to `rm -rf /` command.
## Creating your own rules ## Creating your own rules

View File

@ -45,8 +45,8 @@ def test_not_match(command):
@pytest.mark.parametrize('command, output', [ @pytest.mark.parametrize('command, output', [
(Command(script='git push', stderr=git_err), 'git push --force'), (Command(script='git push', stderr=git_err), 'git push --force-with-lease'),
(Command(script='git push nvbn', stderr=git_err), 'git push --force nvbn'), (Command(script='git push nvbn', stderr=git_err), 'git push --force-with-lease nvbn'),
(Command(script='git push nvbn master', stderr=git_err), 'git push --force nvbn master')]) (Command(script='git push nvbn master', stderr=git_err), 'git push --force-with-lease nvbn master')])
def test_get_new_command(command, output): def test_get_new_command(command, output):
assert get_new_command(command) == output assert get_new_command(command) == output

View File

@ -12,7 +12,7 @@ def match(command):
@git_support @git_support
def get_new_command(command): def get_new_command(command):
return replace_argument(command.script, 'push', 'push --force') return replace_argument(command.script, 'push', 'push --force-with-lease')
enabled_by_default = False enabled_by_default = False