GIT is a distributed version control system that facilitates Mia-Platform activities. This vademecum summarizes the main GIT commands and guidelines to simplify your work.
Start using Git by installing it on your PC
Configure valid user information for all repositories.
$ git config --global user.name "[name]"
Set the username (name.surname) you want to show on your commits.
$ git config - global user.email "[email address]"
Set up the business email you want to show on your commits.
We recommend a series of configurations that could help you in your work.
$ git config --global fetch.prune true
Set fetch.prune as active. It allows you to keep branches aligned remotely with your local branches.
$ git config --global pull.rebase true
Set the automatic rebase to the pull. It allows you to avoid unnecessary merge on a branch if you work in more than one person on the same branch.
$ git config --global rebase.autoStash true
Set the autostash to true in the initial configurations. Combined with the previous configuration, it allows you to perform a pull even with unscheduled modifications.
$ git config --global alias.gr 'log --graph --full-history --all --color --tags --decorate --pretty=format:"%x1b[31m%h%x09%x1b[32m%d%x1b[0m%x20%s %x1b[33m%aN <%ae>%x1b[0m (%aI)"'
Color your GIT for a better view of the history.
Create a repository
Start with a new repository or download information from an existing URL.
$ git init [project-name]
Create a new local repository with its specific name.
$ git clone [url]
Download a project and its entire chronology.
Review changes to the code and prepare a commit.
$ git status
List all files, new or modified, to be committed.
$ git diff
Shows the differences between the files that were added and not ignored in the staging area.
$ git add [file]
Add new files and prepare them for the commit.
$ git diff --staged
Show file differences between staging and last modification.
$ git reset [file]
Remove a file from the staging area, but keep the changes.
$ git commit -m "[descriptive message]"
Add the file to the local repository header.
$ git push
Upload all local branches to the remote repository.
Manage the branch
Name your commits and join them when you finish.
$ git branch
Lists all branches in the current repository.
$ git branch [branch-name]
Create a new branch.
$ git checkout [branch-name]
Switch to the specified branch and update the current directory.
$ git merge [branch-name]
Merge the history of the specified branch with the current one.
$ git branch -d [branch-name]
Delete the specified branch only if it has been merged to master.
Make refactoring your files
Search and remove files from the history.
$ git rm [file]
Remove a file from the directory and prepare for permanent deletion.
$ git rm --cached [file]
Delete the file from GIT, but keep the local file.
Remove your files from the history
Exclude files and temporary locations.
* .log build / TEMP- *
A text file called .gitignore prevents accidental versioning of files or directories according to a specified pattern.
$ git ls-files --others --ignored --exclude-standard
List all files ignored in this project.
Save all changes
Archive and restore incomplete changes. Useful for remotely downloading changes while you are working and you do not want to commit and push again or to change from one branch to another without committing before.
$ git stash
Temporarily store all changed files so you can remotely git pull and download changes made by other team members.
$ git stash pop
Restore all files placed in stash from the stash archive. In this way you can merge with the changes downloaded remotely with the pull.
$ git stash list
Lists the edited files stored in stash.
$ git stash drop
Delete files stored in stash.
Review the chronology
Browse and check the evolution of the files of each project.
$ git log
View the commit history of the current branch.
$ git log --follow [file]
View the history of a file, including changes.
$ git diff [first-branch] ... [second-branch]
Show the difference between two branches.
$ git show [commit]
Show metadata and changes made for a specific commit.
Eliminates errors and alters changes history.
$ git reset [commit]
Cancel all commits made after [commit], preserving local changes.
$ git reset --hard [commit]
Delete all history and changes until the specified commit.
Connect to a remote URL and get change history.
$ git fetch [remote]
Download the change history from the remote repository.
$ git merge [remote] / [branch]
Join the remote branch with the local branch.
$ git push -u [remote] [branch]
Upload all changes to the local branch on the remote repository.
$ git pull
Update your local repository with the online repository.