Configure a user information for all local repositories.
| Action | Command |
|---|---|
| Lists configuration | git config --list |
| Displays a configuration information | git config user.name |
| Sets the name you want attached to your commit transactions | git config --global user.name "[name]" |
| Sets the email you want attached to your commit transactions | git config --global user.email "[email address]" |
| Enables helpful colorization of command line output | git config --global user.ui auto |
Les paramètres globaux peuvent aussi être consultés/modifiés dans le fichier ~/.gitconfig.
Start a new repository or obtain one from an existing URL
| Action | Command |
|---|---|
| Creates a new local repository with the specified name | git init [project-name] |
| Downloads a project and its entire version history | git clone [url] |
Review edits and craft a commit transaction
| Action | Command |
|---|---|
| Lists all new or modified files to be commited | git status |
| Shows file differences not yet staged | git diff |
| Snapshots the file in preparation for versioning | git add [file] |
| Snapshots all the files in preparation for versioning | git add * |
| Shows file differences between staging and the last file version | git diff --staged |
| Unstages the file, but preserve its content | git reset [file] |
| Records file snapshots permanently in version history | git commit -m "[descriptive message]" |
Name a series of commits and combine completed efforts.
| Action | Command |
|---|---|
| Lists all local branches in the current repository | git branch |
| Creates a new branch | git branch [branch-name] |
| Switches to the specified branch and updates the working directory | git checkout [branch-name] |
| Creates and switches the specified branch | git checkout -b [branch-name] |
| Combines the specified branch's history into the current branch | git merge [branch-name] |
| Deletes the specified branch | git branch -d [branch-name] |
Relocate and remove versioned files.
| Action | Command |
|---|---|
| Delete the file from the working directory and stages the deletion | git rm [file] |
| Removes the file from version control but preseves the file locally | git rm --cached [file] |
| Changes the file name and prepares it for commit | git mv [file-orgininal] [file-renamed] |
Exclude temporary files and path.
A texte file named .gitignore suppresses accidental versioning of files and paths matching the specified patterns.
*.log
build/
temp-*
| Action | Command |
|---|---|
| Lists all ignored files in this project | git ls-files --other --ignored --exclude-standard |
| Action | Command |
|---|---|
| Temporarily stores all modified tracked files | git stash |
| List all stashed changesets | git stash list |
| Restore the most recently stashed changeset | git stash apply |
| Restore the specified stashed changeset | git stash apply stash@[num] |
| Restore and removes the most recently stashed changeset | git stash pop |
| Discards the most recently stashed changelist | git stash drop |
| Discards the specified stashed changelist | git stash drop stash@[num] |
Browse and inspect the evolution of project files.
| Action | Command |
|---|---|
| Lists version history for the current branch | git log |
| Lists version history for a file, including renames | git log --follow [file] |
| Shows content differences between two branches | git diff [first-branch]...[second-branch] |
| Outputs metadata and content changes of the specified commit | git show [commit] |
Erase mistakes and craft replacement history
| Action | Command |
|---|---|
Undoes all commits after [commit], preserving changes locally |
git reset [commit] |
| Discards all history and changes back to the specified commit | git reset --hard [commit] |
| Replaces working copy with latest from HEAD | git checkout -- <filename> |
Register a repository bookmark and exhange version history.
| Action | Command |
|---|---|
| Downloads all history from the repository bookmark | git fetch [bookmark] |
| Combines bookmark's branch into current local branch | git merge [bookmark]/[branch] |
| Uploads all local branch commits to remote repository | git push [alias] [branch] |
| connect local repository to remote repository | git remote add origin <server> |
| update local repository with remote changes | git pull |
Détail sur le modèle : A successful Git branching model
Creating a feature branch
git checkout -b myfeature developIncorporating a finished feature on develop
git checkout develop
git merge --no-ff myfeature
git branch -d myfeature
git push origin developCreating a release branch
git checkout -b release-1.2 develop
./bump-version.sh 1.2
git commit -a -m "Bumped version number to 1.2"Finishing a release branch
git checkout master
git merge --no-ff release-1.2
git tag -a 1.2
git checkout develop
git merge --no-ff release-1.2
git branch -d release-1.2Creating the hotfix branch
git checkout -b hotfix-1.2.1 master
./bump-version.sh 1.2.1
git commit -a -m "Bumped version number to 1.2.1"
git commit -m "Fixed severe production problem"Finishing a hotfix branch
git checkout master
git merge --no-ff hotfix-1.2.1
git tag -a 1.2.1
git checkout develop
git merge --no-ff hotfix-1.2.1
git branch -d hotfix-1.2.1Il est possible d'amender le dernier commit pour en modifier le message.
git commit --amendou
git commit --amend -m "Nouveau message"Voir Edit an incorrect commit message in Git
| Action | Command |
|---|---|
| create tag | git tag <tag> <commit ID> |
