Some useful git commands

In the case of project management with Git, there are some frequently encountered problems that are complicated to deal with. This article records some common commands and operations.

Modify the description of a submission

Sometimes we need to modify the description of the time before the submission of information, no operation can be done directly, but the use of rebasing command can be achieved.

For example, we want to modify the penultimate submission of the description information:

$ git rebase -i HEAD~3

Note: here HEAD ~ followed by 3 instead of 2, because here refers to the submission of the submitted parent to be modified.

And then will enter the text editing interface, as shown below

Will be modified to submit the previous pick to edit, save and exit.

This time to perform

$ git commit --amend

You can modify the description of the submission, modify and save and exit.

$ git rebase --continue

After the execution of this order, subsequent submissions will not change.

Note: Do not modify the commit that has been pushed to the remote repository! 

View, delete, rename remote branch

View all branches (including remote branches)

$ git branch -a

When a branch has been merged into the main branch, we usually delete the branch, if only git branch -d is to delete the local branch

To delete a remote branch, use the following command

$ git push origin --delete <branchName>

Renaming a branch is not very common, you can first delete the remote branch, and then rename the local branch, then rename the local branch pushed to the remote warehouse

$ git push --delete origin <branchName>

$ git branch -m <branchName> <newBranchName>

$ git push origin <newBranchName>

Merge multiple submissions

For example, to merge the last two submissions, in fact, and modify the information submitted a description of a bit similar.

$ git rebase -i HEAD~2

After the same will enter the text editing interface, the beginning of the second line of the pick to squash or s , save and exit.

At this time git will be submitted twice to merge and prompts you to enter the new submission information, save the exit after the successful completion of the merger of the two completed.

Force the remote repository back to the specified commit

When we develop some critical mistakes and make sure that the development work that is now done is meaningless, it may be necessary to roll back to the previous version.

$ git reset --hard <commit_id>

$ git push origin HEAD --force

In addition, the reset command has several optional parameters

  • Git reset – mixed: This is the default way, without any parameters git reset, instant this way, it back to a version, only to retain the source, return commit and index information.
  • Git reset – soft: roll back to a version, only back the commit information, will not return to the index file level. If you have to submit, you can directly commit.
  • Git reset-hard: completely back to a version, the local source will become the last version of the content.

Reset after reset-hard

Use git reset --hardafter, perhaps only to find it was a wrong action, then we want to revert to the previous version.

This time with git log is not seen before the submission of historical records.

You need $ git reflogto find the ID HEAD We need to restore, and then use the reset command to restore back.

View the contents of a specified file

For example, to see the contents of the test.cpp file submitted by f4869b0, the path to test.cpp needs to use the pathname relative to the git directory, using the following command:

$ git show f4869b0:test.cpp

The contents of the file will be displayed on the interface, you can use the file to redirect to another file, and then follow-up operation.