Git基礎教程

来源:http://www.cnblogs.com/shouce/archive/2016/02/14/5188598.html
-Advertisement-
Play Games

前世今生 Git是誰開發的?為什麼要問這個問題,天朝的我們只管用軟體就是了管誰開發幹啥,好了別急,請聽我一一道來。Git是由李納斯·托沃茲(Linus Torvalds),這個英文名還是查渡娘找到的,英語好難呀!大伙兒有沒有發現這個Linus和Linux(Server操作系統)只有一詞之隔,邏輯好的


前世今生

    Git是誰開發的?為什麼要問這個問題,天朝的我們只管用軟體就是了管誰開發幹啥,好了別急,請聽我一一道來。Git是由李納斯·托沃茲(Linus Torvalds),這個英文名還是查渡娘找到的,英語好難呀!大伙兒有沒有發現這個Linus和Linux(Server操作系統)只有一詞之隔,邏輯好的童鞋肯定推論出來了這個Linus和Linux一定有什麼聯繫,沒錯他就是“Linux之父”,你們有沒有發現很多產品的系列總搞個什麼什麼X,比如Mac OS X、ThinkPad X系列、索尼 X系列……總之各種X,還有兩個X的,當然這個你們懂得。還好是放在JavaScript社區,要是放在Linux社區豈不是會被鄙視死,連他都不認識。這裡是有一個故事的,他為何能夠寫出Git,是為了維護Linux內核源碼,最開始是由XXX公司(好吧!又用到X了)免費授權提供版本控制軟體,幾年後那個XXX公司卻要收費了,利納斯很窮的,搞開源能有什麼錢,買不起呀!(當然這些只是調侃)於是他自己寫了一個版本控制軟體,這個軟體就叫Git,我目測Git火了後那個XXX公司也得關門了。其實我想說的是一個人一生搞出一件偉大的事情就已經很不錯了,但是這個人竟然搞出了另一個偉大的事情,實在讓人佩服不已!

    Git和Github有什麼區別?通俗點兒講,Git是就是單純的C/S軟體,而Github是一個代碼托管網站它是一個B/S結構,這是本質的區別。當然我們可以通過用Git將我們的代碼放在Github網站上托管,這可和Java和JavaScript區別不一樣。Git和Github是有聯繫的,而Java和JavaScript半毛錢關係都沒有。

 

基本技能

在此擼主提供兩個Git軟體,一個是msysgit,地址http://msysgit.github.io/ 另一個是Github官網(地址https://github.com/)提供的客戶端,這兩個軟體分別對應一個GUI程式,一個終端命令程式,如圖:

是Github客戶端,安裝完msysgit後滑鼠右鍵2

本文就以Github來演示,其實這兩個軟體幾乎無差別,除界面差別外。

 

1.我首先在Github網站上創建一個項目名稱為test倉庫,在此也推薦大家註冊自己的Github賬號,這個程式員必需的,就好比電腦是程式員必需的,如下圖:

步驟一:創建一個倉庫

3

步驟二:倉庫描述

4

步驟三:創建成功,我們Copy倉庫地址,有ssh和https兩種方式,這裡我就只講https方式

6

代碼撿出(checkout)之git clone

註:這裡我就只介紹windows環境下的命令方式,實在有些遺憾沒有在Liunx或OS X環境,關鍵是找不到比較優秀的OS X下寫博客的工具,如果園友們有推薦的工具,在此不勝感激。

打開Git Shell,切換到工作目錄(我的工作目錄在C:\A-MyWorkSpace),執行命令:cd C:\A-MyWorkSpace7

 

代碼撿出,執行命令:git clone https://github.com/everyding/test.git 這個鏈接是從步驟三中Copy出來的

8

 

執行完後,我們工作目錄下就會多出一個test目錄,預設這個目錄名稱和我們Github上創建的項目名稱一致,當然假如你希望撿出後的根目錄不想叫test,想叫test2,你可以在clone命令後添加一個參數,這個參數就是我們撿出後根目錄名稱,個人覺得這個命令實用性比較強。執行命令:git clone https://github.com/everyding/test.git test2 執行完成後,我們就看到工作目錄下又撿出了一個test2的項目。

 

 

添加文件到緩存之git add

我們在test根目錄下,新建一個note.txt文件,然後寫入一段文本:“Hello Github!”,執行命令:git add note.txt這其實就是Git的一種機制,它有個緩存的概念,就相當於是一個記錄工作目錄下所有文件的日誌。

9

 

查看你的文件在工作目錄下與緩存的狀態之git status

執行命令:git status 查看工作目錄下的文件與緩存區的狀態信息,從圖中我們看到添加了一個新文件note.txt:

10

 

記錄緩存快照之git commit

執行命令:git commit –m “創建一個note.txt文件” 上述 git add其實就是寫入緩存,而 git commit代表實際存儲緩存,需要描述存儲緩存的意義,這就是個快照。 

11

當然它報了個警告,應該是對中文支持不是很好,這個理論上是支持中文的,肯定需要配置什麼,這個園友們可以去找渡娘。這時候我們再次查看工作目錄與緩存狀態,執行命令:git status 它會告訴我們“一個乾凈的工作目錄”,如圖:

12

 

將工作目錄緩存推送到遠程倉庫之git push

上述命令只是將我們的操作提交到緩存區了,那麼怎麼同步到我的Github倉庫呢?執行命令:git push 預設被推送到master主分支上了:

13

我們再看下遠程Github倉庫,就多了一個note.txt文件,並且還有快照信息及提交次數加1,至此我們第一個提交就已經完成。

14

 

更新代碼(update)之git pull

切換到工作目錄test2下,這個時候我們發現該工作區還是之前的文件,我們怎麼與Github同步呢?執行命令:git pull

15

這個時候我們的工作目錄test2下就多了一個note.txt文件。

 

總結

    用過SVN的童鞋,用Git很容易上手,無非就是多了一個緩存區。本篇寫給項目團隊的童鞋,希望對大家有所幫助,另外有寫得不正確或者個人理解歧意,也請園友拍磚!在此感謝大家!

改變自己,從代碼做起!
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 拉丁方陣是一種n×n的方陣,方陣中恰有n種不同的元素,每種元素恰有n個,並且每種元素在一行和一列中 恰好出現一次。著名數學家和物理學家歐拉使用拉丁字母來作為拉丁方陣里元素的符號,拉丁方陣因此而得名。 代碼思路簡介:使用單迴圈鏈表來實現輸出拉丁方陣。 在輸出第一行的時候,從第一個元素開始輸出,會輸出至
  • 一、什麼是適配器 適配器是將一種介面改造成另外一種介面的一個包裝類; 二、補充說明 有兩種實現方式,一種是通過繼承,另外一種通過組合; 使用組合實現的時候,跟裝飾者模式有點類似,不過側重點不同,裝飾者模式是給對象增加新行為,適配器是為了適配介面; 優點:符合開閉原則;適配者類和目標類解耦;代碼復用;
  • 模式結構: 實現: 1 package com.shejimoshi.create.FactoryMethod; 2 3 4 /** 5 * 功能:工廠方法模式 6 * 意圖 : 7 * 定義一個用於創建對象的介面,讓子類決定實例化哪一個類。 8 * 適用性: 9 * 當一個類不知道它所必須創建的對
  • 前言 春節期間,無意中看到一篇文章,文章中講到12306的業務複雜度遠遠比淘寶天貓這種電商網站要複雜。後來自己想想,也確實如此。所以,很想挑戰一下12306這個系統的核心領域模型的設計。一般的電商網站,購買都是基於商品的概念,每個商品有一定量的庫存,用戶的購買行為是針對商品的。當用戶發起購買行為時,
  • 模式結構: 1 package com.shejimoshi.create.Builder; 2 3 4 /** 5 * 功能:意圖是將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示 6 * 適用性: 7 * 當創建複雜對象的演算法應該獨立於該對象的組成部分以及它們的裝配方式時
  • HTML中包含大量的標簽, 這些標簽在我們使用中發現會有小小的差別, 有的標簽用了之後不會有太大的佈局變化, 只是語義化, 而有的標簽卻會重起一行, 相當於自己回車了一次, 這就是不同標簽元素的分類不同造成的結果. 塊級元素 在HTML中, <div>, <p>, <h1>, <form>, <ul
  • 用Object.definedproperties 一次性添加或修改多個屬性的特性和值。 1 <script> 2 var obj ={} 3 Object.defineProperties(obj,{ 4 x:{value:1,writalbe:true,configurable:true,enu
  • 我從網上收集一個jquery星級插件的,它只支持一個頁面中使用一次,多次使用的話會發生衝突,達不到我項目的需求,沒辦法,只能修改它, 效果圖如下: css所需背景圖片: 二話不說,帖代碼: html代碼 <div class="xing"> <span style="float: left">總體評
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...