Skip to content

Instantly share code, notes, and snippets.

@Hansimov
Last active April 14, 2023 07:41
Show Gist options
  • Select an option

  • Save Hansimov/23bb639911d474c7ab5b93d32bcbd99d to your computer and use it in GitHub Desktop.

Select an option

Save Hansimov/23bb639911d474c7ab5b93d32bcbd99d to your computer and use it in GitHub Desktop.
Collection of useful git commands in daily work

List some useful git commands.

@Hansimov

Copy link
Copy Markdown
Author

Git drop some commits in the branch:

git rebase -i HEAD~N

The ~N means rebase the last N commits (N must be a number, for example HEAD~10).
Then, you can edit the file that Git presents to you to delete the offending commit.
On saving that file, Git will then rewrite all the following commits as if the one you deleted didn't exist.

Use push -f to force the push and replace the remote branch with your local one.


@Hansimov

Hansimov commented Aug 9, 2022

Copy link
Copy Markdown
Author

Git pull force overwrite local changes:

git fetch --all
# git branch backup-changes
git reset --hard origin/main

@Hansimov

Copy link
Copy Markdown
Author

Auto complete git branch names in (t)csh

Download git-completion.bash and git-completion.tcsh:

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.tcsh -o ~/.git-completion.tcsh

Add following lines to ~/.cshrc:

set autolist=ambiguous
source ~/.git-completion.tcsh

@Hansimov

Hansimov commented Feb 1, 2023

Copy link
Copy Markdown
Author

Gist remove/squash some revisions:

References:

NOTE: Do not forget to remove the # after rebase in order to add a valid commit message after squashing

@Hansimov

Copy link
Copy Markdown
Author

Git change author of previous commit:

git commit --amend --author="Author Name <email@address.com>" --no-edit

References:

@Hansimov

Hansimov commented Feb 21, 2023

Copy link
Copy Markdown
Author

Git update submodules to latest commit:

git submodule foreach git pull

or submodule is in detached state:

git submodule foreach git pull origin main # (master)

References:

@Hansimov

Copy link
Copy Markdown
Author

Git pull submodule:

git submodule update --init --recursive  # (First time)
git submodule update --recursive --remote

References:

@Hansimov

Copy link
Copy Markdown
Author

Remove contributor from GitHub repo page:

  • On GitHub web page, change a branch name (e.g., main --> main1).
    • It updates the contributor list on the GitHub repo dashboard.
  • Then change it back (main1 --> main).

References:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment