{"id":3010,"date":"2017-03-21T07:51:25","date_gmt":"2017-03-21T11:51:25","guid":{"rendered":"\/cours\/xcode\/wp\/?page_id=3010"},"modified":"2021-04-29T19:06:35","modified_gmt":"2021-04-29T19:06:35","slug":"gestion-de-versions-introduction-a-git","status":"publish","type":"page","link":"https:\/\/ve2cuy.com\/xcode\/gestion-de-versions-introduction-a-git\/","title":{"rendered":"Gestion de versions &#8211; Introduction \u00e0 git"},"content":{"rendered":"<h1>git:<\/h1>\n<p><b>git<\/b> est un logiciel de gestion de versions qui, contrairement \u00e0 <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Apache_Subversion\">svn<\/a> ou <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Concurrent_versions_system\">csv<\/a>, &nbsp;est d\u00e9centralis\u00e9. C&rsquo;est un logiciel libre cr\u00e9\u00e9 par <a title=\"Linus Torvalds\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Linus_Torvalds\">Linus Torvalds<\/a>, auteur du noyau Linux, et distribu\u00e9 selon les termes de la licence publique g\u00e9n\u00e9rale GNU version 2. En 2016, il s\u2019agit du logiciel de gestion de versions le plus populaire qui est utilis\u00e9 par plus de douze millions de personnes. (r\u00e9f:&nbsp;<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Git\">https:\/\/fr.wikipedia.org\/wiki\/Git<\/a>).<br \/>\nEn gros, c&rsquo;est une application qui permet de garder plusieurs versions d&rsquo;un fichier ou d&rsquo;un projet et au besoin, de revenir \u00e0 une version pr\u00e9c\u00e9dente.<br \/>\nGit permet aussi de travailler sur des fonctionnalit\u00e9s additionnelles en parall\u00e8le au projet principal (branch) et de les r\u00e9int\u00e9grer (merge) une fois qu&rsquo;elles sont au point.<br \/>\nL&rsquo;application &lsquo;git&rsquo; est install\u00e9e par d\u00e9faut sur MacOS et disponible \u00e0 partir d&rsquo;une fen\u00eatre &lsquo;terminal&rsquo;.<br \/>\nSur Windows il faut l&rsquo;installer:&nbsp;<a href=\"https:\/\/git-scm.com\/download\/win\">https:\/\/git-scm.com\/download\/win<\/a><br \/>\nVoici un exemple d&rsquo;utilisation de git sous MacOS:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git01-800x494.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3145 size-medium\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git01-800x494.png\" alt=\"\" width=\"800\" height=\"494\"><\/a><\/p>\n<p>Voici un sommaire des commandes disponibles \u00e0 partir de &lsquo;terminal&rsquo;:<br \/>\n[pdf-embedder url=\u00a0\u00bb\/xcode\/wp-content\/uploads\/2017\/03\/github-git-cheat-sheet.pdf\u00a0\u00bb]<br \/>\n<strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: Heureusement pour nous, les fonctionnalit\u00e9s de base sont int\u00e9gr\u00e9es \u00e0 m\u00eame <strong>Xcode<\/strong>. &nbsp;Dans la plupart des cas, il ne sera pas n\u00e9cessaire de recourir \u00e0 l&rsquo;application &lsquo;terminal&rsquo;.<\/p>\n<hr>\n<h1>1 &#8211; Premiers pas avec &lsquo;git&rsquo;<\/h1>\n<p><strong><span style=\"color: #ff0000;\">Action.1.1<\/span><\/strong> &#8211; Cr\u00e9er un nouveau projet iOS &lsquo;single View&rsquo; nomm\u00e9 &nbsp;&lsquo;git-premiers-pas&rsquo; et cocher l&rsquo;option &lsquo;<strong>create git repository on my Mac<\/strong>&lsquo; \u00e0 la fen\u00eatre de cr\u00e9ation du projet:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git02.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3151\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git02-800x480.png\" alt=\"\" width=\"800\" height=\"480\"><\/a><\/p>\n<p><strong><span style=\"color: #ff0000;\">Action.1.2<\/span><\/strong> &#8211; Afficher le navigateur de contr\u00f4le de sources:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git03.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3153\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git03-800x483.png\" alt=\"\" width=\"800\" height=\"483\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action.1.3<\/span><\/strong> &#8211; V\u00e9rifier l&rsquo;\u00e9tat &lsquo;git&rsquo; du projet via le terminal.<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git04.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3155\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git04-800x474.png\" alt=\"\" width=\"800\" height=\"474\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action.1.4<\/span> <\/strong>&#8211; Modifier le&nbsp;fichier AppDelegate.swift<\/p>\n<pre class=\"lang:swift mark:3 decode:true \">    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -&gt; Bool {\n        \/\/ Override point for customization after application launch.\n        print(\"application:didFinishLaunchingWithOptions\")\n        return true\n    }<\/pre>\n<p><strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: &nbsp;Remarquez le &lsquo;M&rsquo; qui est apparu \u00e0 droite du nom du fichier:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git05.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3157\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git05.png\" alt=\"\" width=\"434\" height=\"430\"><\/a><br \/>\nIl nous indique que le fichier a \u00e9t\u00e9 modifi\u00e9 depuis le dernier &lsquo;commit&rsquo;.<br \/>\nL&rsquo;\u00e9diteur de version permet permet d&rsquo;observer les modifications entre les &lsquo;commits&rsquo;:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git06.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3158\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git06-800x453.png\" alt=\"\" width=\"800\" height=\"453\"><\/a><br \/>\n<span style=\"color: #ff0000;\"><strong>Action.1.5<\/strong><\/span> &#8211; Renseigner un nouveau commit:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git07.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3160\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git07-800x558.png\" alt=\"\" width=\"800\" height=\"558\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git08.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3161\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git08-800x423.png\" alt=\"\" width=\"800\" height=\"423\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git09.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3162\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git09.png\" alt=\"\" width=\"434\" height=\"442\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3163\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git10-800x343.png\" alt=\"\" width=\"800\" height=\"343\"><\/a><br \/>\n<span style=\"color: #ff0000;\"><strong>Action.1.6<\/strong><\/span>&nbsp;&#8211; Ajouter une ligne de code dans viewDidLoad et faire un commit:<\/p>\n<pre class=\"lang:swift mark:4 decode:true\">    override func viewDidLoad() {\n        super.viewDidLoad()\n        \/\/ Do any additional setup after loading the view, typically from a nib.\n        print(\"ViewController:viewDidLoad\")\n    }\n<\/pre>\n<p><a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3164\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git11-800x373.png\" alt=\"\" width=\"800\" height=\"373\"><\/a><\/p>\n<hr>\n<h1>2 &#8211; Les branches<\/h1>\n<p>Les branches permettent de tester de nouvelles fonctionnalit\u00e9s \u00e0 l&rsquo;ext\u00e9rieur de la branche principale (master) et de les r\u00e9int\u00e9grer lorsqu&rsquo;elles sont au point.<br \/>\nNous allons cr\u00e9er une nouvelle branche pour r\u00e9aliser le design de l&rsquo;application.<br \/>\n<strong><span style=\"color: #ff0000;\">Action.2.1 &#8211;<\/span> <\/strong>Cr\u00e9er une nouvelle branche &lsquo;design&rsquo;<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3165\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git12-800x288.png\" alt=\"\" width=\"800\" height=\"288\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3166\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git13-800x306.png\" alt=\"\" width=\"800\" height=\"306\"><\/a><br \/>\n<span style=\"color: #ff0000;\"><strong>Action<\/strong><\/span> &#8211; Compl\u00e9ter la cr\u00e9ation de&nbsp;la branche en cliquant sur le bouton &lsquo;Create&rsquo;<br \/>\n<strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: Observer l&rsquo;ajout de la nouvelle branche dans la fen\u00eatre suivante. &nbsp;De plus, cette branche est devenue la branche courante. &nbsp;Si nous apportons des modifications au projet, ils n&rsquo;affecteront pas la branche de d\u00e9part (master).<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3167\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git14-800x229.png\" alt=\"\" width=\"800\" height=\"229\"><\/a><\/p>\n<p><strong><span style=\"color: #ff0000;\">Action.2.2<\/span><\/strong> &#8211; R\u00e9aliser le design de d\u00e9part:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git15.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3168\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git15-559x600.png\" alt=\"\" width=\"559\" height=\"600\"><\/a><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/arbreDeGit.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3169\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/arbreDeGit.png\" alt=\"\" width=\"512\" height=\"512\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action.2.3<\/span><\/strong> &#8211; R\u00e9aliser le commit:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git16.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3171\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git16-800x520.png\" alt=\"\" width=\"800\" height=\"520\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action: Tester l&rsquo;application!<\/span><\/strong><br \/>\n<strong><span style=\"color: #ff0000;\">Action.2.4<\/span><\/strong> &#8211; Retourner sur la branche &lsquo;master&rsquo;, l&rsquo;option &lsquo;checkout&rsquo;<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git17.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3172\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git17-800x324.png\" alt=\"\" width=\"800\" height=\"324\"><\/a><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git18.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3173\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git18-800x232.png\" alt=\"\" width=\"800\" height=\"232\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action: Tester l&rsquo;application!<\/span><\/strong><br \/>\n<strong><span style=\"color: #ff0000;\">Action.2.5<\/span><\/strong> &#8211; Ajouter la m\u00e9thode &lsquo;afficher&rsquo;&nbsp;\u00e0 la class ViewController, appeler dans viewDidLoad et r\u00e9aliser un commit<\/p>\n<pre class=\"lang:swift decode:true\">    func afficher(_ msg:String, fois:Int = 1) {\n        for i in 0...fois {\n            print(i, msg)\n        } \/\/ for\n    } \/\/ afficher<\/pre>\n<pre class=\"lang:swift mark:5 decode:true\">    override func viewDidLoad() {\n        super.viewDidLoad()\n        \/\/ Do any additional setup after loading the view, typically from a nib.\n        print(\"ViewController:viewDidLoad\")\n        afficher(\"Test\", fois: 3)\n    }\n<\/pre>\n<p><span style=\"color: #ff0000;\"><strong>Note<\/strong><\/span>: Message du &lsquo;commit&rsquo;: Ajout de la m\u00e9thode afficher()<br \/>\n<strong><span style=\"color: #ff0000;\">Action &#8211; Tester l&rsquo;application.<\/span><\/strong><\/p>\n<hr>\n<h1>3. La fusion de deux branches<\/h1>\n<p>Nous allons maintenant fusionner la version &lsquo;design&rsquo; dans la version &lsquo;master&rsquo;.<br \/>\nComme r\u00e9sultat, la version &lsquo;master&rsquo; va h\u00e9riter de toutes les&nbsp;modifications apport\u00e9es au UI.<br \/>\n<strong><span style=\"color: #ff0000;\">Action.3.1&nbsp;<span style=\"color: #000000;\">&#8211; <\/span><\/span><\/strong><span style=\"color: #ff0000;\"><span style=\"color: #000000;\">C<\/span><\/span><span style=\"color: #ff0000;\"><span style=\"color: #000000;\">liquer<\/span><\/span><span style=\"color: #ff0000;\"><span style=\"color: #000000;\">&nbsp;droit sur la branche \u00ab\u00a0<strong>design<\/strong>\u00a0\u00bb et s\u00e9lectionner l&rsquo;option <strong>&lsquo;Merge \u00ab\u00a0design\u00a0\u00bb into \u00ab\u00a0master\u00a0\u00bb&lsquo;<\/strong><\/span><\/span><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git19.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3174\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git19-800x551.png\" alt=\"\" width=\"800\" height=\"551\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action<\/span><\/strong> &#8211; Observer les changements propos\u00e9s<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git20.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3175\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git20-800x554.png\" alt=\"\" width=\"800\" height=\"554\"><\/a><br \/>\n<span style=\"color: #ff0000;\"><strong>Action<\/strong><\/span> &#8211; Observer l&rsquo;\u00e9tat du projet de la branche &lsquo;master&rsquo;. &nbsp;Le travail de design a \u00e9t\u00e9 incorpor\u00e9 \u00e0 la branche &lsquo;master&rsquo;.<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git21.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3176\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git21-800x483.png\" alt=\"\" width=\"800\" height=\"483\"><\/a><br \/>\n<span style=\"color: #ff0000;\">Note<\/span>: Il ne doit pas y avoir de &lsquo;commits&rsquo; en suspends pour pouvoir r\u00e9aliser la fusion.<br \/>\n&#8212;<\/p>\n<hr>\n<h1>4 &#8211; Fusion avec conflits<\/h1>\n<p><strong><span style=\"color: #ff0000;\">Action.4.1<\/span><\/strong> version &lsquo;<strong>master<\/strong>&lsquo; ajouter la ligne suivante, suivi du commit \u00ab\u00a0<strong>Ajout de &lsquo;je suis la ligne 15<\/strong>&lsquo;\u00a0\u00bb<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git22.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3177\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git22-800x135.png\" alt=\"\" width=\"800\" height=\"135\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action.4.2<\/span><\/strong> &#8211; Passer \u00e0 la branche &lsquo;<strong>design<\/strong>&lsquo; et ajouter la ligne suivante , suivi du commit&nbsp;\u00ab\u00a0<strong>Ajout de &lsquo;je suis aussi la ligne 15<\/strong>&lsquo;\u00a0\u00bb<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git29.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3178\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git29-800x117.png\" alt=\"\" width=\"800\" height=\"117\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action.4.3<\/span><\/strong>&nbsp;&#8211; Fusionner &lsquo;design&rsquo; dans master.<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git30.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3180\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git30-800x324.png\" alt=\"\" width=\"800\" height=\"324\"><\/a><br \/>\nR\u00e9sultat, fusion automatique impossible, il faut intervenir:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git23b.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3179\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git23b-800x448.png\" alt=\"\" width=\"800\" height=\"448\"><\/a><br \/>\nChoix 1:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git24.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3185\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git24-800x139.png\" alt=\"\" width=\"800\" height=\"139\"><\/a>&nbsp;Choix 2:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git25-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3186\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git25-1-800x143.png\" alt=\"\" width=\"800\" height=\"143\"><\/a>&nbsp;Choix 3:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git26-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3187\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git26-1-800x142.png\" alt=\"\" width=\"800\" height=\"142\"><\/a>&nbsp;Choix 4:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git27-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3188\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git27-1-800x141.png\" alt=\"\" width=\"800\" height=\"141\"><\/a><\/p>\n<hr>\n<h1>5 &#8211; GitHub<\/h1>\n<p>GitHub propose un service &lsquo;git&rsquo; en nuage. &nbsp;Cela permet \u00e0 plusieurs personnes, de lieux diff\u00e9rents, de collaborer&nbsp;\u00e0 un m\u00eame projet.<br \/>\nVoici des exemples de projets disponibles sur GitHub:<br \/>\n<a href=\"https:\/\/github.com\/apple\/swift\">swift<\/a><br \/>\n<a href=\"https:\/\/github.com\/torvalds\/linux\">linux<\/a><br \/>\n<a href=\"https:\/\/github.com\/atom\/atom\">atom<\/a><br \/>\n<a href=\"https:\/\/github.com\/adobe\/brackets\">brackets<\/a><br \/>\n<a href=\"https:\/\/github.com\/facebook\/react\">react<\/a><br \/>\n<a href=\"https:\/\/github.com\/twbs\/bootstrap\">bootstrap<\/a><br \/>\n<a href=\"https:\/\/github.com\/Alamofire\/Alamofire\">Alamofire<\/a><br \/>\n<a href=\"https:\/\/github.com\/laravel\/laravel\">laravel<\/a><\/p>\n<hr>\n<p>Nous allons maintenant envoyer notre projet sur gitHub.<br \/>\n<strong><span style=\"color: #ff0000;\">Action 5.1 &#8211;<\/span><\/strong> Renseigner les param\u00e8tres de votre compte gitHub dans les pr\u00e9f\u00e9rences de Xcode:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git31.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3190\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git31.png\" alt=\"\" width=\"556\" height=\"212\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git32.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3191\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git32-800x552.png\" alt=\"\" width=\"800\" height=\"552\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git33.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3192\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git33-800x540.png\" alt=\"\" width=\"800\" height=\"540\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git34.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3193\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git34-800x299.png\" alt=\"\" width=\"800\" height=\"299\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action.5.2<\/span><\/strong> &#8211; Transf\u00e9rer le projet vers gitHub<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git35.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3194\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git35-800x395.png\" alt=\"\" width=\"800\" height=\"395\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git36.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3195\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git36-800x313.png\" alt=\"\" width=\"800\" height=\"313\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git37.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3196\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git37-690x600.png\" alt=\"\" width=\"690\" height=\"600\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git38.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3197\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git38.png\" alt=\"\" width=\"574\" height=\"382\"><\/a><br \/>\nAction &#8211; V\u00e9rifier l&rsquo;\u00e9tat du compte sur gitHub:<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git39.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3198\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git39-800x467.png\" alt=\"\" width=\"800\" height=\"467\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git40.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3199\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git40-800x418.png\" alt=\"\" width=\"800\" height=\"418\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: &nbsp;Il n&rsquo;y a que la branche courante qui a \u00e9t\u00e9 envoy\u00e9e sur GitHub. &nbsp;Il faudra pousser (Push) les autres branches vers GitHub.<\/p>\n<p><strong><span style=\"color: #ff0000;\">Action.5.3<\/span><\/strong> &#8211; Changer de branche (checkout) et transf\u00e9rer la nouvelle&nbsp;branche courante (push)<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git41.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3200\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git41-800x456.png\" alt=\"\" width=\"800\" height=\"456\"><\/a><\/p>\n<p><span style=\"color: #ff0000;\"><strong>Note<\/strong><\/span>: &nbsp;Remarquez qu&rsquo;Xcode propose de cr\u00e9er la nouvelle branche sur le site distant.<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git42.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3201\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git42-800x214.png\" alt=\"\" width=\"800\" height=\"214\"><\/a><\/p>\n<p><strong><span style=\"color: #ff0000;\">Action<\/span><\/strong> &#8211; V\u00e9rifier l&rsquo;\u00e9tat du projet sut GitHub. &nbsp;Entre autres, la liste des branches.<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git43.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3202\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git43-800x480.png\" alt=\"\" width=\"800\" height=\"480\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action.5.4<\/span><\/strong> &#8211; Modification d&rsquo;un fichier du projet via gitHub<br \/>\nNous allons ajouter un commentaire dans le fichier ViewController.swift en utilisant GitHub.<br \/>\n<strong><span style=\"color: #ff0000;\">Action<\/span><\/strong> &#8211; Naviguer vers le fichier &lsquo;ViewController.swift&rsquo;<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git44.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3203\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git44-800x352.png\" alt=\"\" width=\"800\" height=\"352\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action<\/span><\/strong> &#8211; Cliquer sur l&rsquo;ic\u00f4ne du crayon pour \u00e9diter le fichier<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git45.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3204\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git45-800x270.png\" alt=\"\" width=\"800\" height=\"270\"><\/a><\/p>\n<p><strong><span style=\"color: #ff0000;\">Action<\/span><\/strong> &#8211; Ajouter le commentaire de la ligne 7<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git46.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3205\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git46-800x460.png\" alt=\"\" width=\"800\" height=\"460\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action<\/span><\/strong> &#8211; Descendre au bas de la page web d&rsquo;\u00e9dition et compl\u00e9ter le &lsquo;commit&rsquo;<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git47.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3206\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git47-800x375.png\" alt=\"\" width=\"800\" height=\"375\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: Le changement a \u00e9t\u00e9 effectu\u00e9 dans la branche &lsquo;design&rsquo;<\/p>\n<hr>\n<h2>Nous allons maintenant inclure ce changement \u00e0 notre copie locale.<\/h2>\n<p><strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: Assurez-vous d&rsquo;\u00eatre sur la branche design.<br \/>\n<strong><span style=\"color: #ff0000;\">Action.5.5<\/span><\/strong>&nbsp;&#8211; Synchroniser une branche&nbsp;avec la version sur gitHub (pull)<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git48.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3207\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git48-800x341.png\" alt=\"\" width=\"800\" height=\"341\"><\/a> <a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git49.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3208\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git49-800x215.png\" alt=\"\" width=\"800\" height=\"215\"><\/a><\/p>\n<p><strong><span style=\"color: #ff0000;\">Action<\/span><\/strong> &#8211; Observer les changements au fichier ViewController.swift<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git50.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3209\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git50-800x228.png\" alt=\"\" width=\"800\" height=\"228\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Extra<\/span><\/strong>: <a href=\"https:\/\/guides.github.com\/activities\/hello-world\/\">Introduction de 10 minutes&nbsp;\u00e0 gitHub<\/a><\/p>\n<hr>\n<h1>6 &#8211; Restaurer le projet \u00e0 un point dans le pass\u00e9.<\/h1>\n<p>Il est possible de d\u00e9placer la t\u00eate du projet \u00e0 n&rsquo;importe quel &lsquo;commit&rsquo; du projet. &nbsp;Par contre, c&rsquo;est une d\u00e9licate op\u00e9ration qu&rsquo;il n&rsquo;est pas possible de r\u00e9aliser \u00e0 partir de Xcode.<br \/>\n<strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: Pour pr\u00e9venir une situation de d\u00e9placement de la t\u00eate &#8211; HEAD &#8211; vers l&rsquo;arri\u00e8re, il est&nbsp;une bonne pratique de d\u00e9velopper des nouvelles fonctionnalit\u00e9s \u00e0 l&rsquo;application sur une branche secondaire et de fusionner lorsque les tests de contr\u00f4le qualit\u00e9 auront \u00e9t\u00e9 r\u00e9alis\u00e9s.<br \/>\nRetournons voir l&rsquo;historique des &lsquo;commits&rsquo; de la branches &lsquo;master&rsquo;:<br \/>\n<strong><span style=\"color: #ff0000;\">Action.6.1<\/span><\/strong> &#8211; A) Au besoin, r\u00e9aliser un &lsquo;<strong>checkout<\/strong>&lsquo; sur la branche &lsquo;<strong>master<\/strong>&lsquo;.<\/p>\n<pre class=\"lang:swift decode:true\">$ git checkout master<\/pre>\n<p>B) Entrer les 2 commandes suivantes:<\/p>\n<pre class=\"lang:sh decode:true\">$ git log &gt; gitlog.txt\n$ ls -l<\/pre>\n<p><a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git53.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3211\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git53-800x189.png\" alt=\"\" width=\"800\" height=\"189\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Action.6.2<\/span> <\/strong>&#8211; Observer le contenu du fichier <strong>gitlog.txt<\/strong><\/p>\n<pre class=\"font:courier-new font-size:17 lang:default mark:33,37 decode:true \">commit 5c6532f1d445d3e06ecd2dfc1c1896923d5a0b1e\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 14:52:55 2017 -0400\n    Ajout d'une autre ligne 15 suite au merge\ncommit 5d32c805d06f190fc226e08b4dfb9618c9789f22\nMerge: 7b68b44 c9d86f6\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 14:37:04 2017 -0400\n    Merge branch 'design'\ncommit c9d86f67587daa01bb0371d158b08097abb46a42\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 14:32:54 2017 -0400\n    Ajout de 'Je suis aussi la ligne 15'\ncommit 7b68b44be4fa2f21778c5e8fec02410f81574d9f\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 14:31:23 2017 -0400\n    Ajout de 'je suis la ligne 15'\ncommit 19d25f7400670aa8c01d36c8faea7ae611e1d6ac\nMerge: 2d87e2b 5572efa\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 14:25:16 2017 -0400\n    Merge branch 'design'\ncommit 2d87e2bc82636875c82da817c251c2a3bf1014b2        &lt;------------------------\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 14:24:08 2017 -0400\n    Ajout de la m\u00e9thode afficher()                     &lt;------------------------\ncommit 5572efa768c65553dce70d8d646ae1e355e86e28\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 14:03:35 2017 -0400\n    Prototype du design\ncommit c9c14277e279cb74de500ef4740212251a8a4ece\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 13:37:41 2017 -0400\n    Ajout d'une trace dans viewDidLoad\ncommit dfb787b201bfe96532c36d96570a5a17920481b4\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 13:25:11 2017 -0400\n    Ajout d'un message dans didFinishLaunching\ncommit 6d9c4fc1fcfd84d163cf92e5c80f03d24a420d99\nAuthor: Alain &lt;alain@MacBook-Pro-de-Alain.local&gt;\nDate:   Sat Oct 14 12:37:17 2017 -0400\n    Initial Commit\n<\/pre>\n<p><strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: Votre fichier gitlog.txt sera probablement diff\u00e9rent.<br \/>\n<strong><span style=\"color: #ff0000;\">Action.6.3<\/span>&nbsp;<\/strong>&#8211; Identifier le SHA &nbsp;du commit &lsquo;<strong>Ajout de la m\u00e9thode afficher()<\/strong>&lsquo;<br \/>\n<strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: Dans mon cas le SHA est \u00ab\u00a0<span style=\"color: #ff0000;\"><strong>2d87e2bc8<\/strong>2636875c82da817c251c2a3bf1014b2<\/span>\u00a0\u00bb<br \/>\n<strong><span style=\"color: #ff0000;\">Attention: &nbsp;Il faut fermer le projet Xcode avant d&rsquo;effectuer la prochaine op\u00e9ration.<\/span><\/strong><br \/>\n<strong><span style=\"color: #ff0000;\">Action.6.4<\/span> <\/strong>&#8211;&nbsp;D\u00e9placer la t\u00eate (HEAD) de la branche master en utilisant le SHA identifi\u00e9 \u00e0 l&rsquo;\u00e9tape pr\u00e9c\u00e9dente.<\/p>\n<pre class=\"lang:sh decode:true\">$ git reset --hard 2d87e2bc8\n$ git log<\/pre>\n<p><a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git55.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3213\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git55-772x600.png\" alt=\"\" width=\"772\" height=\"600\"><\/a><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git56.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3214\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git56-800x302.png\" alt=\"\" width=\"800\" height=\"302\"><\/a><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git57.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3215\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git57-800x385.png\" alt=\"\" width=\"800\" height=\"385\"><\/a><br \/>\nVoila!<br \/>\nNote: &nbsp;Les commits qui suivaient&nbsp;SHA sont&nbsp;\u00ab\u00a0<span style=\"color: #ff0000;\"><strong>2d87e2bc8<\/strong>2636875c82da817c251c2a3bf1014b2<\/span>\u00a0\u00bb toujours disponibles. &nbsp;C&rsquo;est pour cette raison que nous avons cr\u00e9\u00e9 le fichier gitlog.txt, au cas ou il faudrait revenir vers l&rsquo;avant.<\/p>\n<hr>\n<h1>7 &#8211; Ouvrir, \u00e0 partir de Xcode, un projet stock\u00e9 sur gitHub<\/h1>\n<p><strong><span style=\"color: #ff0000;\">Action.7.1 &#8211;&nbsp;<\/span><\/strong><span style=\"color: #ff0000;\"><span style=\"color: #000000;\">S\u00e9lectionner l&rsquo;option &lsquo;<strong>Clone<\/strong>&lsquo; du menu &lsquo;<strong>Source Control<\/strong>&lsquo;<\/span><\/span><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git58.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3227\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git58.png\" alt=\"\" width=\"288\" height=\"269\"><\/a><\/p>\n<p><strong><span style=\"color: #ff0000;\">Action.7.2 &#8211;&nbsp;<\/span><\/strong><span style=\"color: #000000;\">S\u00e9lectionner, dans la liste, le projet d\u00e9sir\u00e9.<\/span><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git59.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3228\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git59.png\" alt=\"\" width=\"700\" height=\"402\"><\/a><\/p>\n<p><strong><span style=\"color: #ff0000;\">Action.7.3 &#8211;<\/span><\/strong><span style=\"color: #ff0000;\"><span style=\"color: #000000;\"> Renseigner le dossier d&rsquo;enregistrement<\/span><\/span><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git60.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3229\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git60.png\" alt=\"\" width=\"700\" height=\"402\"><\/a><\/p>\n<p><strong><span style=\"color: #ff0000;\">Action.7.4 &#8211;&nbsp;<\/span><\/strong><span style=\"color: #000000;\">Travailler dans le projet local.<\/span><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git61.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3230\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git61-800x368.png\" alt=\"\" width=\"800\" height=\"368\"><\/a><br \/>\n<strong><span style=\"color: #ff0000;\">Note<\/span><\/strong>: &nbsp;Le projet clon\u00e9 est li\u00e9 au projet stock\u00e9 sur GitHub. &nbsp;C-a-d, qu&rsquo;il est possible de faire des &lsquo;push&rsquo;\/&rsquo;pull&rsquo;.<br \/>\nDe plus, vous avez seulement clon\u00e9 la branche active de GitHub.<br \/>\nIl faudra faire un &lsquo;checkout&rsquo; pour pouvoir travailler sur d&rsquo;autres branches du projet.<br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git62.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3232\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git62.png\" alt=\"\" width=\"556\" height=\"475\"><\/a><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git63.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3233\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git63.png\" alt=\"\" width=\"415\" height=\"119\"><\/a><br \/>\n<a href=\"\/xcode\/wp-content\/uploads\/2017\/03\/git64.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3234\" src=\"\/xcode\/wp-content\/uploads\/2017\/03\/git64.png\" alt=\"\" width=\"272\" height=\"209\"><\/a><\/p>\n<hr>\n<hr>\n<hr>\n<h1>Informations g\u00e9n\u00e9rales<\/h1>\n<p>1 &#8211; <strong>homebrew<\/strong> (gestionnaire de packages)<\/p>\n<pre class=\"text\">ruby -e \"$(curl -fsSL https:\/\/raw.github.com\/Homebrew\/homebrew\/go\/install)\"<\/pre>\n<p>2 &#8211; <strong>git<\/strong> (devrait \u00eatre d\u00e9j\u00e0 install\u00e9 sur Mac OS)<br \/>\n3 &#8211; <strong>Git bash-completion<\/strong> (avec homebrew)<\/p>\n<pre class=\"text\">brew install git bash-completion<\/pre>\n<ul>\n<li>dans le fichier .bash_profil, ajouter ceci \u00e0 la fin:<\/li>\n<\/ul>\n<pre class=\"text\">if [ -f `brew --prefix`\/etc\/bash_completion ]; then\n  . `brew --prefix`\/etc\/bash_completion\nfi<\/pre>\n<p>4 &#8211; Afficher le nom de la branche git dans l&rsquo;invite &#8211;&nbsp;dans le fichier .bash_profil, ajouter ceci \u00e0 la fin:<\/p>\n<pre class=\"lang:swift decode:true \">#Afficher la branche de git dans l'invite\nPS1='[\\W$(__git_ps1 \" (%s)\")]\\$ '<\/pre>\n<ul>\n<li>Fermer le terminal et r\u00e9ouvrir<\/li>\n<\/ul>\n<p>5 &#8211; <strong>cocoapods<\/strong> (avec homebrew)<\/p>\n<pre class=\"\">brew install cocoapods<\/pre>\n<hr>\n<h1>Git cheat sheet<\/h1>\n<p>cheatsheet1 &#8211; &nbsp;<a href=\"https:\/\/services.github.com\/on-demand\/downloads\/fr\/github-git-cheat-sheet.pdf\">https:\/\/services.github.com\/on-demand\/downloads\/fr\/github-git-cheat-sheet.pdf<\/a><\/p>\n<h1>Editeur markdown en ligne<\/h1>\n<p>stackedit &#8211;&nbsp;<a href=\"https:\/\/stackedit.io\">https:\/\/stackedit.io<\/a><\/p>\n<hr>\n<h1>Tutoriel sur Raywenderlich<\/h1>\n<p>1- Intro:&nbsp;<a href=\"https:\/\/www.raywenderlich.com\/51351\/how-to-use-git-source-control-with-xcode-in-ios-7\">https:\/\/www.raywenderlich.com\/51351\/how-to-use-git-source-control-with-xcode-in-ios-7<\/a><br \/>\n2-Interm\u00e9diaire:&nbsp;<a href=\"https:\/\/www.raywenderlich.com\/74258\/git-tutorial-intermediate\">https:\/\/www.raywenderlich.com\/74258\/git-tutorial-intermediate<\/a><\/p>\n<h1>Afficher les fichiers cach\u00e9s sous MacOS:<\/h1>\n<p>defaults write com.apple.finder AppleShowAllFiles YES<\/p>\n","protected":false},"excerpt":{"rendered":"<p>git: git est un logiciel de gestion de versions qui, contrairement \u00e0 svn ou csv, &nbsp;est d\u00e9centralis\u00e9. C&rsquo;est un logiciel libre cr\u00e9\u00e9 par Linus Torvalds, auteur du noyau Linux, et distribu\u00e9 selon les termes de la licence publique g\u00e9n\u00e9rale GNU version 2. En 2016, il s\u2019agit du logiciel de gestion de versions le plus populaire [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3010","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/pages\/3010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/comments?post=3010"}],"version-history":[{"count":3,"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/pages\/3010\/revisions"}],"predecessor-version":[{"id":3484,"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/pages\/3010\/revisions\/3484"}],"wp:attachment":[{"href":"https:\/\/ve2cuy.com\/xcode\/wp-json\/wp\/v2\/media?parent=3010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}