1. 程式人生 > >git超詳細教程

git超詳細教程

GitHub操作總結 : 總結看不明白就看下面的詳細講解.

GitHub操作流程 :

第一次提交 :  

方案一 : 本地建立專案根目錄, 然後與遠端GitHub關聯, 之後的操作一樣;

-- 初始化Git倉庫 :git init ;

-- 提交改變到快取 :git commit -m 'description' ;

-- 本地git倉庫關聯GitHub倉庫 : git remote add origin [email protected]:han1202012/TabHost_Test.git ;

-- 提交到GitHub中 : git push -u origin master

 ;

方案二 方案二就是不用關聯GitHub倉庫, 直接從GitHub沖剋隆原始碼到本地, 專案根目錄也不用建立;

-- 從GitHub上克隆專案到本地 :git clone [email protected]:han1202012/NDKHelloworld.git , 注意克隆的時候直接在倉庫根目錄即可, 不用再建立專案根目錄 ;

-- 新增檔案 :git add ./* , 將目錄中所有檔案新增;

-- 提交快取 :git commit -m '提交';

-- 提交到遠端GitHub倉庫 : git push -u origin master ;

之後修改提交

 : 

-- 與GitHub遠端倉庫同步 :git pull ;

-- 檢視檔案變更 : git status ;

-- 提交程式碼到本地快取 : git commit -m 'description';

--提交程式碼到遠端GitHub倉庫 :git push ;

.gitignore用法 : 開放模式 註明忽略的檔案 直接列出檔名, 保守模式 註明保留的檔案 !檔名 ;

Git標籤操作 : 輕量級標籤, 帶註釋標籤;

--檢視標籤 :git tag ;

--新增標籤 : 輕量級標籤git tag tagName , 帶註釋標籤git tag -a tagName -m 'description'

 ;

--刪除標籤 :git tag -d tagName ;

--提交標籤到GitHub中 : git push origin --tags ;

Git分支操作: 建立分支後, 分支操作不會影響master分支, 但是master分支改變會影其它分支;

--列出分支 :git branch ;

--切換分支 :git checkout master ;

--提交分支 : git push origin branchName ;

--刪除分支 : git branch -d branchName , 強制刪除分支 git branch -D branchName ;

--合併分支 : git merge branchName ;

.

一. Git介紹

分散式 : Git版本控制系統是一個分散式的系統, 是用來儲存工程原始碼歷史狀態的命令列工具;

儲存點 : Git的儲存點可以追蹤原始碼中的檔案, 並能得到某一個時間點上的整個工程專案額狀態; 可以在該儲存點將多人提交的原始碼合併, 也可以會退到某一個儲存點上;

Git離線操作性 :Git可以離線進行程式碼提交, 因此它稱得上是完全的分散式處理, Git所有的操作不需要線上進行; 這意味著Git的速度要比SVN等工具快得多,  因為SVN等工具需要線上時才能操作, 如果網路環境不好, 提交程式碼會變得非常緩慢; 

Git基於快照 : SVN等老式版本控制工具是將提交點儲存成補丁檔案, Git提交是將提交點指向提交時的專案快照, 提交的東西包含一些元資料(作者, 日期, GPG等);

Git的分支和合並 : 分支模型是Git最顯著的特點, 因為這改變了開發者的開發模式, SVN等版本控制工具將每個分支都要放在不同的目錄中, Git可以在同一個目錄中切換不同的分支;

分支即時性 : 建立和切換分支幾乎是同時進行的, 使用者可以上傳一部分分支, 另外一部分分支可以隱藏在本地, 不必將所有的分支都上傳到GitHub中去;

分支靈活性 : 使用者可以隨時 建立 合併 刪除分支, 多人實現不同的功能, 可以建立多個分支進行開發, 之後進行分支合併, 這種方式使開發變得快速, 簡單, 安全;

二. Git通用客戶端(msysgit)

1. 下載Git客戶端

2. 安裝Git客戶端

歡迎介面 : 直接下一步;


協議 : 必須接受;


安裝位置 : 預留100M空間, 自定義安裝位置;


選擇安裝元件 :也可以預設選擇;

-- 圖示元件(Addition icons) : 選擇是否建立快速啟動欄圖示 或者 是否建立桌面快捷方式;

-- 桌面瀏覽(Windows Explorer integration) : 瀏覽原始碼的方法, 單獨的上下文瀏覽 只使用bash 或者 只用Git GUI工具; 高階的上下文瀏覽方法 使用git-cheetah plugin外掛;

-- 關聯配置檔案 : 是否關聯git配置檔案, 該配置檔案主要顯示文字編輯器的樣式;

-- 關聯shell指令碼檔案 : 是否關聯Bash命令列執行的指令碼檔案;

-- 使用TrueType編碼 : 在命令列中是否使用TruthType編碼, 該編碼是微軟和蘋果公司制定的通用編碼; 


開始選單快捷方式目錄 : 設定開始選單中快捷方式的目錄名稱, 也可以選擇不再開始選單中建立快捷方式;


設定環境變數 : 選擇使用什麼樣的命令列工具, 一般情況下我們預設使用Git Bash即可, 預設選擇;

-- Git自帶 : 使用Git自帶的Git Bash命令列工具;

-- 系統自帶CMD : 使用Windows系統的命令列工具;

-- 二者都有 : 上面二者同時配置, 但是注意, 這樣會將windows中的find.exe 和 sort.exe工具覆蓋, 如果不懂這些儘量不要選擇; 


選擇換行格式 : 

-- 檢查出windows格式轉換為unix格式 : 將windows格式的換行轉為unix格式的換行在進行提交;

-- 檢查出原來格式轉為unix格式 : 不管什麼格式的, 一律轉為unix格式的換行在進行提交;

-- 不進行格式轉換 : 不進行轉換, 檢查出什麼, 就提交什麼;


開始安裝 : 


安裝結束 : over;


3. 配置GitHub

修改Git Bash的配置 : 將Git Bash設定為快速編輯模式, 可以更好的使用該命令列工具 : 


(1) 建立本地ssh

使用命令 : 建立本地ssh

  1. ssh-keygen -t rsa -C "[email protected]"  
GitHub郵箱 : 該命令後面的郵箱就是GitHub的註冊郵箱

路徑選擇 : 使用該命令之後, 會出現提示選擇ssh-key生成路徑, 這裡直接點回車預設即可, 生成的ssh-key在預設路徑中;

密碼確認 : 這裡我們不使用密碼進行登入, 用密碼太麻煩;


(2) 將ssh配置到GitHub中

進入生成的ssh目錄 : C:\Documents and Settings\Administrator\.ssh 中, 使用記事本開啟 id_rsa.pub 檔案, 將該檔案中的內容複製;

id_rsa.pub 檔案內容 : 

  1. ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtT1YCeaNulpfC+ARqAWrCdfpi6CpW3gkGT0hp6Q8by7NnEfy4dah9CwSrNbWJH5eS4tiqckE+bdbSVNvAboFD1MtGZjtzE4GDweG/6J/SDYV/ADFN/RLWGb+5rQ8wMCjc/fODgLJDFxk1Fwk/TTqTcbtLab1toLcts3zGIW5DstA3RQ0CCX/sPew5m7vh7DcKXluj2TBd9hw== [email protected]  

進入GitHub網站 : 登入GitHub, 選擇Account Setting 使用者設定 : 



選擇左側的SSH-KEY選項 : 


點選右側的Add SSH key :

 

將上面複製好的ssh-key複製進去 : 


驗證是否配置成功 : 

使用命令 : 

  1. ssh -T [email protected]  

成功提示 : 如果出現Hi han1202012! You've successfully authenticated, but GitHub does not provide shell access. 就說明配置成功, 可以連線上GitHub;


(3) 配置本地使用者和郵箱

使用者名稱郵箱作用 : 我們需要設定一個使用者名稱 和 郵箱, 這是用來上傳本地倉庫到GitHub中, 在GitHub中顯示程式碼上傳者;

使用命令 : 

  1. git config --global user.name "HanShuliang"//設定使用者名稱
  2. git config --global user.email "[email protected]"//設定郵箱


4. Git Bash提交原始碼到GitHub

(1) GitHub中建立一個工程

工程的https地址: https://github.com/han1202012/TabHost_Test.git .

工程的SSH地址 : [email protected]:han1202012/TabHost_Test.git .

GitHub提示生成的命令 : 

-- Create a new repository on the command line : 

  1. touch README.md  
  2. git init  
  3. git add README.md  
  4. git commit -m "first commit"  
  5. git remote add origin [email protected]:han1202012/TabHost_Test.git  
  6. git push -u origin master  

-- Push an existing repository from the command line : 
  1. git remote add origin [email protected]:han1202012/TabHost_Test.git  
  2. git push -u origin master  


(2) 初始化git目錄

使用命令 : 

  1. git init  

如果不執行這條命令, 就會出現錯誤 : fatal: Not a git repository (or any of the parent directories): .git .

(3) 新增檔案

使用命令 : 

  1. git add ./*  
可能會報出一些警告, 不用理會 : 
  1. warning: LF will be replaced by CRLF in AndroidManifest.xml.  
  2. The file will have its original line endings in your working directory.  
  3. warning: LF will be replaced by CRLF in bin/AndroidManifest.xml.  
  4. The file will have its original line endings in your working directory.  
  5. warning: LF will be replaced by CRLF in gen/shuliang/han/tabhost_test/BuildConfig.java.  

將倉庫中的所有檔案新增到快取中;

(4) 提交快取

使用命令 : 

  1. git remote add origin [email protected]:han1202012/TabHost_Test.git  

將新增或者改變的內容提交到快取中;

(5) 將Git本地快取提交到GitHub中

使用命令 : 

  1. git push -u origin master  

執行該命令, 原始碼就被提交到了GitHub 中;

.

作者 :萬境絕塵 

.


三. Git的一些用法

1. .gitignore檔案

遮蔽檔案 : .gitignore檔案是告訴Git哪些目錄或者檔案需要忽略, 這些檔案將不被提交; 

常用場景 : 寫完程式碼後會執行變異除錯等操作, 使用 .gitignore 檔案將這些編譯後的檔案遮蔽, 這些檔案不需要Git工具進行管理;

Android中的.gitignore : 在Android中 bin 和 gen 兩個目錄可以忽略;

.gitignore位置 : 專案根目錄下;

過濾模式 : Git中的 .gitignore 中有兩種模式,開放模式 和保守模式,保守模式的優先順序要高於開放模式;

開放模式 : 設定哪些檔案 活 目錄 被過濾, 凡是在檔案中列出的檔案或者目錄都要被過濾掉;

-- 過濾目錄 : /bin/ 就是將bin目錄過濾, 該檔案下的所有目錄和檔案都不被提交;

-- 過濾某個型別檔案 : *.zip *.class 就是過濾zip 和 class 字尾的檔案, 這些檔案不被提交;

-- 過濾指定檔案 : /gen/R.Java, 過濾該檔案, 該檔案不被提交;

保守模式 : 設定哪些檔案不被過濾, 凡是列在其中的檔案都要完整的提交上去;

-- 跟蹤目錄 : !/src , 該目錄下的所有檔案都要被提交;

-- 跟蹤某類檔案 : !*.java , 凡是java檔案都要保留;

-- 跟蹤指定檔案 : !/AndroidManifest.xml , 該檔案需要保留, 提交上去;

配置原則 : 一般情況下采用開放模式魚保守模式共同使用;

eg : 一個目錄下有很多目錄和檔案, 當我們只需要保留其中的一個檔案的時候, 先用開放模式不保留這些檔案, 然後用保守模式將這個檔案留下來, 保守模式的優先順序要高於開放模式;

2. 標籤使用(Tag)

標籤作用: 在開發的一些關鍵時期,使用標籤來記錄這些關鍵時刻, 例如釋出版本, 有重大修改, 升級的時候, 會使用標籤記錄這些時刻, 來永久標記專案中的關鍵歷史時刻;

檢視標籤: 列出的標籤安裝ASCII字母順序確定, 排序沒有很明確的意義;

-- 列出所有的標籤 :  

  1. git tag  
-- 使用限定列出限定後的標籤 : 
  1. git tag -l v1.*  



標籤分類 : Git中的標籤分為 輕量級標籤(lightweight) 和 帶註釋的標籤(annotated), 一般情況下推薦使用帶註釋的標籤, 如果標籤是臨時的可以採用輕量級標籤;

-- 輕量級標籤 : 輕量級標籤中的資訊含量很少, 這種標籤只代表某時刻程式碼的提交, 相當於指向這個提交的指標;

-- 帶註釋標籤 : 這種標籤是一種校驗和, 包含標籤名, 郵箱, 日期, 標籤資訊, GPG簽名 和 驗證, 它相當於一個物件, 封裝了這些資訊;

建立標籤 :

-- 建立輕量級標籤 : 這樣的標籤沒有附帶其它的資訊;

  1. git tag v2.0  


-- 建立帶註釋標籤 : -m 後跟的是註釋資訊, 當使用git show v2.1的時候, 會顯示這個註釋資訊;
  1. git tag -a v2.1 -m 'first version'  

-- 建立GPG私鑰的註釋標籤 : 
  1. git tag -s v2.1 -m 'GPG version'  

在本機上實驗不成功 出現下面的錯誤 : 

  1. [email protected] /storage/TabHost_Test (master)  
  2. $ git tag -s v2.2 -m 'GPG version'  
  3. 相關推薦

    git詳細教程

    GitHub操作總結 : 總結看不明白就看下面的詳細講解. GitHub操作流程 : 第一次提交 :   方案一 : 本地建立專案根目錄, 然後與遠端GitHub關聯, 之後的操作一樣; -- 初始化Git倉庫 :git init ; -- 提交改變到快取 :

    Git入門-詳細教程

    從廖老師網站上總結的Git筆記,對常見操作進行了總結。 一 版本庫、檔案操作 1. 建立版本庫   GitBash中 cd 到需要作為版本庫的目錄,執行git init,建立成功後會生成.git資料夾 2. 新增檔案到版本庫   首先,檔案必須放在在版本庫對

    Git詳細安裝教程

    Git是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案。越來越多的公司和團隊使用Git進行專案開發,安裝是使用的第一步,本文化詳細介紹了Git的安裝過程。 1. Git的安裝(for window10): 進入Git官網下載安裝檔案:

    小白入門~ GitHub和Git詳細使用教程~~~

    這篇文章是我自己寫的關於GitHub的內容,從我剛聽到這個直到設定成功每一步都有詳細的步驟來解釋,其中有一些截圖或者程式碼來自於網上。首先,我先對GitHub來一個簡單的介紹,GitHub有一個很強大的功能就是,你在伺服器上邊可以建立一個庫(稍後會介紹怎麼建立),寫程式碼是一

    在eclipse中使用git建立本地庫,以及託管專案到GitHub詳細教程

    關於安裝git的教程,由於比較簡單,並且網上教程特別多,而且即使不按照網上教程,下載好的windows版本git,安裝時候一路預設設定就行。 安裝好之後,在桌面上有git圖示:右鍵選單中有Git Base Here和Git Gui Here兩個選項,Git Base Here開啟可以寫git命令,Git G

    網絡爬蟲學習軟件篇-Python(一)下載安裝(詳細教程,傻瓜式說明)

    說明 鍵盤 html window 的人 .org style pychar arm 很早就想學習一下網絡爬蟲了~苦於學藝不精並且過於懶惰以至於遲遲沒有行動~最近因為項目做的也差不多了,就用空學習一下這門新的語言,了解一下新的技術。(PS:真的不會排版醜就醜點吧) 上面

    利用Python爬蟲爬取淘寶商品做數據挖掘分析實戰篇,詳細教程

    實戰 趨勢 fat sts AI top 名稱 2萬 安裝模塊 項目內容 本案例選擇>> 商品類目:沙發; 數量:共100頁 4400個商品; 篩選條件:天貓、銷量從高到低、價格500元以上。 項目目的 1. 對商品標題進行文本分析 詞雲可視化 2.

    linux搭建node環境詳細教程

    rect 詳細步驟 命令 存在 rec figure 控制臺 source ins linux 環境搭建詳細步驟 1.訪問官方網址:https://nodejs.org/en/download/ 2.選擇和你服務器版本相關的壓縮包,復制下載鏈接 3.服務器登錄ssh

    手把手詳細教程教你Scrapy爬達蓋爾社區,有彩蛋哦!

    還需 創建 -c item 編程 編寫代碼 想要 紅色 spider 手把手超詳細教程教你Scrapy爬達蓋爾社區,有彩蛋哦! 繁華落盡and曲終人散 2018-05-17 19:11 好了,廢話不多說,學習代碼就是要學以致用的。不能寫了一遍代碼就讓

    64位liunx系統安裝MySQL詳細教程

    liunx版本mysql安裝包地址:https://download.csdn.net/download/qq_38545713/10615285 第一步:上傳安裝包到liunx伺服器 下載完成後;ftp上傳到伺服器 /user/local/目錄下,這個自己

    IntelliJ IDEA 如何在同一個視窗建立多個專案--詳細教程

    一.IntelliJ IDEA與Eclipse的區別       二.在同一個視窗建立多個專案 1.開啟IntelliJ IDEA,點選Create New Project 2.Java Enterprise-->Web Applicatio

    CentOS 7.3下Zabbix 4.0監控搭建過程詳細教程

    Zabbix是一個高度整合的企業級開源網路監控解決方案,與Cacti、nagios類似,提供分散式監控以及集中的web管理介面。zabbix具備常見商業監控軟體所具備的功能,例如主機效能監控,網路裝置效能監控,資料庫效能監控,ftp等通用協議的監控,能夠靈活利用可定製警告機制,允許使用者對事件傳送基於E-ma

    數學規劃求解器lp_solve詳細教程

    前言 最近小編學了運籌學中的單純形法。於是,很快便按奈不住跳動的心。這不得不讓我拿起紙和筆思考著,一個至關重要的問題:如何用單純形法裝一個完備的13? 恰巧,在我坐在圖書館陷入沉思的時候,一位漂亮的小姐姐靠過來,說:“同學,你是在看線性規劃嗎?你能幫我看看這道題該怎麼解好嗎?” 納尼?

    Windows平臺edis安裝包下載詳細教程

    簡單的redis安裝包下載使用 目錄 redis安裝包路徑 redis下載教程 redis簡單使用教程 redis安裝包路徑 redis安裝包下載路徑 ridis下載教程 步驟1. 點選下載連結顯示如下:

    Windows平臺Redis安裝下載詳細教程

    簡單的redis安裝包下載使用 目錄 redis安裝包路徑 redis下載教程 redis簡單使用教程 redis安裝包路徑 redis安裝包下載路徑 ridis下載教程 步驟1. 點選下載連結顯示如下:

    Eclipse下如何使用Maven——詳細教程

    1.更改工作區jdk設定,目錄必須為jdk目錄,不能是jre目錄 Window->Preferences->Java->Installed JREs->選中原有的jre->edit->更改為jdk目錄 2.最新版的Eclipse中集成了Maven,所以

    適合初次使用git詳細教程和idea的結合使用

    溫馨提醒:本教程巨長,最好跟著做,單看不跟著練習操作容易睡著(新手來說) 一:上傳專案到github 首先是git軟體的安裝,git 官網下載連結 ,然後是安裝,全部下一步下一步就好了。這裡就不贅述了 在idea上面配置好你的git,files->settings->

    Perl正則表示式詳細教程

    前言 想必學習perl的人,對基礎正則表示式都已經熟悉,所以學習perl正則會很輕鬆。這裡我不打算解釋基礎正則的內容,而是直接介紹基礎正則中不具備的但perl支援的功能。關於基礎正則表示式的內容,可參閱基礎正則表示式。 我第一個要說明的是,perl如何使用正則。還記得當初把《精通正則表示式》的書看了一遍,把p

    c++ 網路程式設計(九)TCP/IP LINUX/windows下 多執行緒詳細教程 以及 多執行緒實現服務端

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <process.h> #include <winsock2.h> #include <win

    c++ 網路程式設計(九)TCP/IP LINUX/windows下 多執行緒詳細教程 以及 多執行緒實現服務端

    原文作者:aircraft 原文連結:https://www.cnblogs.com/DOMLX/p/9661012.html  先講Linux下(windows下在後面可以直接跳到後面看): 一.執行緒基本概念 前面我們講過多程序伺服器,但我們知道它開銷很大