MaJ du 04-02-2021

This commit is contained in:
2021-02-04 09:55:26 +01:00
parent 84b4e1a85d
commit fb07a20b0c
56 changed files with 4962 additions and 95 deletions

View File

@@ -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) <=