MaJ du 04-02-2021
This commit is contained in:
@@ -1,5 +1,41 @@
|
||||
# git
|
||||
|
||||
|
||||
|
||||
[Git Cheatsheet](http://ndpsoftware.com/git-cheatsheet.html#loc=workspace;)
|
||||
|
||||
|
||||
|
||||
### Démarrage:
|
||||
|
||||
Les fichiers peuvent avoir 3 états:
|
||||
|
||||
1. <u>Validé</u> signifie que les données sont stockées en sécurité dans votre base de données locale.
|
||||
2. <u>Modifié</u> signifie que vous avez modifié le fichier mais qu'il n'a pas encore été validé en base.
|
||||
3. <u>Indexé</u> signifie que vous avez marqué un fichier modifié dans sa version actuelle pour qu'il fasse partie du prochain instantané du projet.
|
||||
|
||||
Ce qui induit les 3 sections d'un projet git:
|
||||
|
||||
1. Le <u>répertoire Git</u> (dépôt local) est l'endroit où Git stocke les méta-données et la base de données des objets de votre projet. C'est la partie la plus importante de Git, et c'est ce qui est copié lorsque vous clonez un dépôt depuis un autre ordinateur.
|
||||
2. Le <u>répertoire de travail</u> (working copy) est une extraction unique d'une version du projet. Ces fichiers sont extraits depuis la base de données compressée dans le répertoire Git et placés sur le disque pour pouvoir être utilisés ou modifiés.
|
||||
3. La <u>zone d'index</u> (stage) est un simple fichier, généralement situé dans le répertoire Git, qui stocke les informations concernant ce qui fera partie du prochain instantané.
|
||||
|
||||
|
||||
|
||||
| | |
|
||||
| ---- | ---- |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
| | |
|
||||
|
||||
|
||||
|
||||
### Créer un repo git
|
||||
|
||||
Sur le serveur (DS916), aller dans le dossier Repo:
|
||||
@@ -41,22 +77,6 @@ ssh:dsm916/volume1/Repositories/shell_scripts.git
|
||||
|
||||
|
||||
|
||||
### Démarrage:
|
||||
|
||||
Les fichiers peuvent avoir 3 états:
|
||||
|
||||
1. <u>Validé</u> signifie que les données sont stockées en sécurité dans votre base de données locale.
|
||||
2. <u>Modifié</u> signifie que vous avez modifié le fichier mais qu'il n'a pas encore été validé en base.
|
||||
3. <u>Indexé</u> signifie que vous avez marqué un fichier modifié dans sa version actuelle pour qu'il fasse partie du prochain instantané du projet.
|
||||
|
||||
Ce qui induit les 3 sections d'un projey git:
|
||||
|
||||
1. Le <u>répertoire Git</u> est l'endroit où Git stocke les méta-données et la base de données des objets de votre projet. C'est la partie la plus importante de Git, et c'est ce qui est copié lorsque vous clonez un dépôt depuis un autre ordinateur.
|
||||
2. Le <u>répertoire de travail</u> (working copy) est une extraction unique d'une version du projet. Ces fichiers sont extraits depuis la base de données compressée dans le répertoire Git et placés sur le disque pour pouvoir être utilisés ou modifiés.
|
||||
3. La <u>zone d'index</u> est un simple fichier, généralement situé dans le répertoire Git, qui stocke les informations concernant ce qui fera partie du prochain instantané.
|
||||
|
||||
|
||||
|
||||
#### Fichier de config:
|
||||
|
||||
Pour l'utilisateur: `~/.gitconfig`
|
||||
@@ -89,6 +109,16 @@ $ man git-<verbe>
|
||||
$ git help config
|
||||
```
|
||||
|
||||
#### Débugger:
|
||||
|
||||
```bash
|
||||
$ GIT_TRACE=1 GIT_CURL_VERBOSE=1 git push KYMSU_github master
|
||||
18:10:42.888454 git.c:444 trace: built-in: git push KYMSU_github master
|
||||
18:10:42.890608 run-command.c:663 trace: run_command: GIT_DIR=.git git remote-https KYMSU_github https://github.com/Bruno21/kymsu.git
|
||||
18:10:42.927675 git.c:729 trace: exec: git-remote-https KYMSU_github https://github.com/Bruno21/kymsu.git
|
||||
.../...
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Démarrer un dépôt Git:
|
||||
@@ -373,7 +403,85 @@ $ git status
|
||||
|
||||
https://stackoverflow.com/questions/927358/how-do-i-undo-the-most-recent-local-commits-in-git
|
||||
|
||||
https://linuxize.com/post/undo-last-git-commit/
|
||||
|
||||
https://delicious-insights.com/fr/articles/git-reset/
|
||||
|
||||
```bash
|
||||
❯ git commit -m "2eme commit"
|
||||
[master e589db5] 2eme commit
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
❯ git status
|
||||
On branch master
|
||||
nothing to commit, working tree clean
|
||||
```
|
||||
|
||||
|
||||
|
||||
**git reset --soft**
|
||||
|
||||
`HEAD~1` est une variable qui pointe sur le précédent commit. La branche courrante est reculée d'un commit/
|
||||
|
||||
```bash
|
||||
❯ git status
|
||||
On branch master
|
||||
nothing to commit, working tree clean
|
||||
|
||||
❯ git reset --soft HEAD~1
|
||||
|
||||
❯ git status
|
||||
On branch master
|
||||
Changes to be committed:
|
||||
(use "git restore --staged <file>..." to unstage)
|
||||
modified: hello.pl
|
||||
```
|
||||
|
||||
La copie de travail n'est pas modifiée. On voit que l'étât du fichier est à *'non-commited'*.
|
||||
|
||||
|
||||
|
||||
**git reset --mixed (ou git reset)**
|
||||
|
||||
```bash
|
||||
❯ git status
|
||||
On branch master
|
||||
nothing to commit, working tree clean
|
||||
|
||||
❯ git reset --mixed HEAD~1
|
||||
Unstaged changes after reset:
|
||||
M hello.pl
|
||||
|
||||
❯ git status
|
||||
On branch master
|
||||
Changes not staged for commit:
|
||||
(use "git add <file>..." to update what will be committed)
|
||||
(use "git restore <file>..." to discard changes in working directory)
|
||||
modified: hello.pl
|
||||
|
||||
no changes added to commit (use "git add" and/or "git commit -a")
|
||||
```
|
||||
|
||||
La copie de travail n'est pas modifiée. On voit que l'étât du fichier est à *'not commited'* mais aussi à *'not staged for commit'*.
|
||||
|
||||
|
||||
|
||||
**git reset --hard**
|
||||
|
||||
```bash
|
||||
❯ git status
|
||||
On branch master
|
||||
nothing to commit, working tree clean
|
||||
|
||||
❯ git reset --hard HEAD~1
|
||||
HEAD is now at 06fb45e 1er commit
|
||||
|
||||
❯ git status
|
||||
On branch master
|
||||
nothing to commit, working tree clean
|
||||
```
|
||||
|
||||
<u>La copie de travail a été modifiée</u> (les modifs sont perdues).
|
||||
|
||||
|
||||
|
||||
@@ -435,6 +543,34 @@ GIT_SSL_NO_VERIFY=true git remote add origin ssh://bruno@192.168.1.7:42666/volum
|
||||
$ git remote set-url origin git@gitea.maboiteverte.fr:bruno/yuzu-child_mbv.git
|
||||
```
|
||||
|
||||
#### Erreur au push (après M-à-J Git lfs)
|
||||
|
||||
```bash
|
||||
$ git push KYMSU_github master
|
||||
ERROR: Authentication error: Authentication required: You must have push access to verify locks
|
||||
error: failed to push some refs to 'https://github.com/Bruno21/kymsu.git'
|
||||
|
||||
# Correction:
|
||||
|
||||
$ git remote -v
|
||||
KYMSU_github https://Bruno21@github.com/Bruno21/kymsu.git (fetch)
|
||||
KYMSU_github https://Bruno21@github.com/Bruno21/kymsu.git (push)
|
||||
dsm916 bruno@dsm916e:/volume1/Repositories/kymsu_dsm.git (fetch)
|
||||
dsm916 bruno@dsm916e:/volume1/Repositories/kymsu_dsm.git (push)
|
||||
mbv git@gitea.maboiteverte.fr:shell/kymsu_mbv.git (fetch)
|
||||
mbv git@gitea.maboiteverte.fr:shell/kymsu_mbv.git (push)
|
||||
|
||||
$ git remote set-url KYMSU_github https://github.com/Bruno21/kymsu.git
|
||||
|
||||
$ git remote -v
|
||||
KYMSU_github https://github.com/Bruno21/kymsu.git (fetch)
|
||||
KYMSU_github https://github.com/Bruno21/kymsu.git (push)
|
||||
dsm916 bruno@dsm916e:/volume1/Repositories/kymsu_dsm.git (fetch)
|
||||
dsm916 bruno@dsm916e:/volume1/Repositories/kymsu_dsm.git (push)
|
||||
mbv git@gitea.maboiteverte.fr:shell/kymsu_mbv.git (fetch)
|
||||
mbv git@gitea.maboiteverte.fr:shell/kymsu_mbv.git (push)
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Etiquettes:
|
||||
@@ -577,6 +713,21 @@ $ git branch --no-merged # Branches qui contiennent des travaux qui n'ont pas e
|
||||
|
||||
|
||||
|
||||
#### Suivi des branches
|
||||
|
||||
```bash
|
||||
$ git branch -v
|
||||
* dyn 6551679 [ahead 3] volume +/-
|
||||
main e3fc8b6 [ahead 1] soco-cli-gui.sh
|
||||
|
||||
$ git branch -vv
|
||||
* dyn 6551679 [main: ahead 3] volume +/- # branche dyn
|
||||
main e3fc8b6 [mbv/main: ahead 1] soco-cli-gui.sh # branche main
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### Passer d'une branche à l'autre
|
||||
|
||||
```bash
|
||||
@@ -618,6 +769,12 @@ Avec la commande rebase, vous prenez toutes les modifications qui ont été vali
|
||||
|
||||
|
||||
|
||||
### Pull request:
|
||||
|
||||
https://blog.zenika.com/2017/01/24/pull-request-demystifie/
|
||||
|
||||
|
||||
|
||||
#### => [Session de travail avec git](git-session.md) <=
|
||||
|
||||
#### => [Synchroniser 2 dépôts (--bare)](sync-repo.md) <=
|
||||
|
||||
Reference in New Issue
Block a user