Outils pour utilisateurs

Outils du site


techniques:git

https://help.github.com/articles/set-up-git/

Mettre en cache son login/mdp

On your computer, open the Git Shell application.

Tell Git your name so your commits will be properly labeled. Type everything after the $ here:

git config --global user.name "YOUR NAME"

Tell Git the email address that will be associated with your Git commits. The email you specify should be the same one found in your email settings. To keep your email address hidden, see “Keeping your email address private”.

git config --global user.email "YOUR EMAIL ADDRESS"

Next steps: Authenticating with GitHub from Git

When you connect to a GitHub repository from Git, you'll need to authenticate with GitHub using either HTTPS or SSH. Connecting over HTTPS (recommended) : If you clone with HTTPS, you can cache your GitHub password in Git using a credential helper. If you're cloning GitHub repositories using HTTPS, you can use a credential helper to tell Git to remember your GitHub username and password every time it talks to GitHub. –> https://help.github.com/desktop/guides/getting-started/ : impossible,n'existe pas pour linux

Connecting over SSH : If you clone with SSH, you must generate SSH keys on each computer you use to push or pull from GitHub. If you clone GitHub repositories using SSH, then you authenticate using SSH keys instead of a username and password. For help setting up an SSH connection, see Generating SSH Keys.

git config –global credential.helper wincred –> ne marche pas

En fait un truc semble marche je l'ai testé : Mettre ça dans /home/pi/.gitconfig [credential]

  helper = cache

–> non, ne marche pas Ca par contre ca marche :

git config credential.helper store

Puis faire au moins un push avec la bonne authentification

Pour cloner depuis repo distant

sudo git clone https://github.com/newman79/rfirmanager.git

Pour construire un dépot et le créer sur le serveur distant

echo "# rfirmanager" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/newman79/rfirmanager.git
git push -u origin master

Pour connaitre les evolutions de sa copie de travail par rapport a la derniere version commitee

git status
git status -s

Pour mettre à jour sa copie de travail

git add <un fichier ou repertoire>
git rm <un fichier ou repertoire>

Remarque : Pour éviter l'étape git status, il y a peut etre moyen de faire ça : #git add -u git status -s | awk '{print $2}' | xargs git add

git status -s | awk '{if ( $1==“??” ) { print “/home/pi/src/apache/rfirmanager/“$2} }' | xargs git add

Pour committer dans la branche de la base locale git

git commit -m "le commentaire pour ce commit"

Pour pousser vers la branche distante

git push origin master	

Autre commandes (naza, rte)

git log															--> affiche l'historique des commits de la branche courante
git add algo-manager/.../AbstractUserConfiguration.java			--> ajout de fichier dans l'indexation pour commit (stage) : le prochain commit comprendra les modifications sur ce fichier ou sa création ou suppression
git add ./algo-ma.../ConfigFile.java							--> ajout de fichier dans l'indexation pour commit (stage) : idem
git rebase -i HEAD~2											--> permet de fusionner des commits : en l'occurrence, ici, ca affichera les 2 derniers commits ;
																	pour fusionner l'avant dernier avec le dernier commit, on changera son flag en s, puis on sauvegardera
 suivi de 
git push --force												--> le --force est nécessaire vu qu'on écrase l'historique sur le repo distant
 
git commit -m "a comment"                                       --> faire un commit
 suivi de 
git push
 
git commit
 suivi de 
git push --set-upstream 299-ihm-parametrage						--> création de la branche distante (origin/)299-ihm-parametrage et poussage de la branche courante vers la branche distante
git branch --set-upstream-to=origin/master master relie la branche locale 'master' avec la branche distance origin/master (origin est en général le nom du dépot distant)

statut branche courante et working copy

git status

creation de branche et changement de branche

git checkout -b 310-alarms-ui-ameliorations  					--> création d'une branche à partir de la branche actuelle
git checkout master												--> changer de branche courante : se mettre sur master

reinitialiser une branche locale

git reset --hard origin/274-alarm-configurations-chechbox-laf 	--> remettre la branche courante comme si elle avait été tirée de origin/274-alarm-configurations-chechbox-laf
git reset --hard origin/master									--> remettre la branche courante comme si elle avait été tirée de origin/274-alarm-configurations-chechbox-laf

appliquer un commit

git cherry-pick 42ef9302					 					--> application d'un commit d'une branche sur la branche actuelle
git cherry-pick --continue  									--> en cas de conflit d'application du cherry-pick, on résoud les conflits puis on exécute cette commande pour terminer le cherry-pick

Rebaser (https://git-scm.com/book/en/v2/Git-Branching-Rebasing)

git rebase master my-branch										--> rebase my-branch sur master (i.e my-branch = master avec ses derniers commit, suivi de copie des commits qui avaient été fait sur my-branch, dans le même ordre)
ou git rebase --onto master my-branch                           --> rebase my-branch sur master
git rebase --onto master my-first-branch my-second-branch       --> meme chose sur my-second-branch, sauf que my-second-branch est tirée de my-first-branch, qui est tirée de master.

Stash working copy (idea shelve equivalent)

git stash 
git stash list  --> liste les modifications stashée
git stash show  -->
git stash apply	--> restore les modifications stashées

Ce qu'on fait chez OB : quand on travaillait sur une branche dérivée de recette : un fois mergée, on devait appliquer les commits de notre PR sur la branche de dev. On le faisait par cherry pick, dans l'ordre chronologique.

Updater/Installer la derniere version de git

Au 12/03/2016, j'étais en version 1.7 Apparemment, pour une raison pas claire du tout, je ne pouvais plus créer de dépot sur github à partir de ma version de git. J'ai donc du updaté git

cd /home/pi/src
git clone https://github.com/git/git	

Ca créé la base locale en copiant la base d'origine, puis ca analayse les différence entre la base locale et le workspace (100% puisqu'aucun fichier n'a encore été créé dans l'espace de travail) puis du coup il sait qu'il faut créer tout ca dans l'espace de travail donc il le fait –> on a le .git et tous les répertoires dans l'espace de travail.

Ensuite 3 actions doivent être faites : cd /home/pi/src/git make # compile make install # installe dans /usr/bin et peut dans /etc/ …

Par contre, il y a un pb, make merde :

Your include paths indicate that you should be compiling against the system's OpenSSL installation. 
You shouldn't have the .h files in your package directory - it should be picking them up from /usr/include/openssl.
The plain OpenSSL package (libssl) doesn't include the .h files - you need to install the development package as well (libssl-dev).

=⇒ Il faut faire un sudo apt-get install libssl-dev # ca installe les .h et .cpp dans les répertoires connus de l'OS, pour que cette connasse de version d'install de git puisse compiler On recommence le make. La ca passe. Putain c'est très long !!!! et ça replante pour des raisons analogue de manque de fichiers de dev pour la compil !! super !!!

sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libexpat1-dev

Et de nouveau, make, en croisant les doigts Et là c'est bon, il arrive à la fin =⇒ on fait le make install Mais ce con me met le bin git et ses autres binaires de merde dans /home/pi/bin/

=⇒ On remove l'ancien git 1.7 issu de la distrib debian :

sudo apt-get remove git
On édite le .bashrc de /home/pi puis on lui rajoute
	export PATH=${PATH}:/home/pi/bin/
En relancant un #bash, la commande git --version retourne 2.8rc

Client git graphique

 sudo apt-get install gitg
 

Pour le lancer :

   cd /un/dossier/.git (un repo local quoi)
   
   gksudo gitg

# IDE C/C++

  sudo apt-get install geany 
techniques/git.txt · Dernière modification: 2020/03/02 20:36 (modification externe)