GitHub超詳細圖文攻略

 

GitHub超詳細圖文攻略 - Git客戶端下載安裝 GitHub提交修改源碼工做流程 Git分支 標籤 過濾 Git版本工做流

分類: 轉載
 

目錄(?)[+]html

 

最近聽同事說他都在使用GitHub,GitHub是程序員的社區,在裏面能夠學到不少書上學不到的東西,因此最近在準備入手這方面的知識去嘗試學習,正好碰到這麼詳細完整的文章,就轉載了,但願對本身和你們有幫助。java

 

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

 

GitHub操做流程 :程序員

 

第一次提交 :  github

方案一 : 本地建立項目根目錄, 而後與遠程GitHub關聯, 以後的操做同樣;web

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

-- 提交改變到緩存 :git commit -m 'description' ;windows

-- 本地git倉庫關聯GitHub倉庫 : git remote add origin git@github.com:han1202012/TabHost_Test.git ;瀏覽器

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

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

-- 從GitHub上克隆項目到本地 :git clone git@github.com: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客戶端

 

Git客戶端下載地址 :https://code.google.com/p/msysgit/downloads/list 將地址複製到瀏覽器欄便可下載.

 

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

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. ssh-keygen -t rsa -C "13241153187@163.com"  
GitHub郵箱 : 該命令後面的郵箱就是GitHub的註冊郵箱

 

路徑選擇 : 使用該命令以後, 會出現提示選擇ssh-key生成路徑, 這裏直接點回車默認便可, 生成的ssh-key在默認路徑中;

密碼確認 : 這裏咱們不使用密碼進行登陸, 用密碼太麻煩;

 

(2) 將ssh配置到GitHub中

 

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

id_rsa.pub 文件內容 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtT1YCeaNulpfC+ARqAWrCdfpi6CpW3gkGT0hp6Q8by7NnEfy4dah9CwSrNbWJH5eS4tiqckE+bdbSVNvAboFD1MtGZjtzE4GDweG/6J/SDYV/ADFN/RLWGb+5rQ8wMCjc/fODgLJDFxk1Fwk/TTqTcbtLab1toLcts3zGIW5DstA3RQ0CCX/sPew5m7vh7DcKXluj2TBd9hw== 13241153187@163.com  

進入GitHub網站 : 登陸GitHub, 選擇Account Setting 用戶設置 : 

 



選擇左側的SSH-KEY選項 : 

 

點擊右側的Add SSH key :

 

 

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

 

驗證是否配置成功 : 

使用命令 : 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. ssh -T git@github.com  

 

成功提示 : 若是出現Hi han1202012! You've successfully authenticated, but GitHub does not provide shell access. 就說明配置成功, 能夠鏈接上GitHub;

 

(3) 配置本地用戶和郵箱

 

用戶名郵箱做用 : 咱們須要設置一個用戶名 和 郵箱, 這是用來上傳本地倉庫到GitHub中, 在GitHub中顯示代碼上傳者;

使用命令 : 

 

[java]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git config --global user.name "HanShuliang" //設置用戶名  
  2. git config --global user.email "13241153187@163.com"  //設置郵箱  


 

 

4. Git Bash提交源碼到GitHub

 

(1) GitHub中建立一個工程

 

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

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

 

GitHub提示生成的命令 : 

-- Create a new repository on the command line : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. touch README.md  
  2. git init  
  3. git add README.md  
  4. git commit -m "first commit"  
  5. git remote add origin git@github.com:han1202012/TabHost_Test.git  
  6. git push -u origin master  

-- Push an existing repository from the command line : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git remote add origin git@github.com:han1202012/TabHost_Test.git  
  2. git push -u origin master  


 

(2) 初始化git目錄

 

使用命令 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git init  

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

 

 

(3) 添加文件

 

使用命令 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git add ./*  

 

 

可能會報出一些警告, 不用理會 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  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) 提交緩存

 

使用命令 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git remote add origin git@github.com:han1202012/TabHost_Test.git  

將添加或者改變的內容提交到緩存中;

 

 

(5) 將Git本地緩存提交到GitHub中

 

使用命令 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git push -u origin master  

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

 

 

.

做者 :萬境絕塵 

轉載請註明出處 : http://blog.csdn.net/shulianghan/article/details/18812279

.


三. 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字母順序肯定, 排序沒有很明確的意義;

-- 列出全部的標籤 :  

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git tag  
-- 使用限定列出限定後的標籤 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git tag -l v1.*  



 

標籤分類 : Git中的標籤分爲 輕量級標籤(lightweight) 和 帶註釋的標籤(annotated), 通常狀況下推薦使用帶註釋的標籤, 若是標籤是臨時的能夠採用輕量級標籤;

-- 輕量級標籤 : 輕量級標籤中的信息含量不多, 這種標籤只表明某時刻代碼的提交, 至關於指向這個提交的指針;

-- 帶註釋標籤 : 這種標籤是一種校驗和, 包含標籤名, 郵箱, 日期, 標籤信息, GPG簽名 和 驗證, 它至關於一個對象, 封裝了這些信息;

 

建立標籤 :

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

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git tag v2.0  

 

-- 建立帶註釋標籤 : -m 後跟的是註釋信息, 當使用git show v2.1的時候, 會顯示這個註釋信息;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git tag -a v2.1 -m 'first version'  

-- 建立GPG私鑰的註釋標籤 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git tag -s v2.1 -m 'GPG version'  

 

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

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. Administrator@XRDPTJ9ILK6IWRA /storage/TabHost_Test (master)  
  2. $ git tag -s v2.2 -m 'GPG version'  
  3. gpg: error loading `iconv.dll': 找不到指定的模塊。  
  4.   
  5. gpg: please see http://www.gnupg.org/download/iconv.html for more information  
  6. gpg: keyblock resource `c:/Documents and Settings/Administrator/.gnupg\secring.g  
  7. pg': file open error  
  8. gpg: keyblock resource `c:/Documents and Settings/Administrator/.gnupg\pubring.g  
  9. pg': file open error  
  10. gpg: skipped "HanShuliang <13241153187@163.com>": secret key not available  
  11. gpg: signing failed: secret key not available  
  12. error: gpg failed to sign the data  
  13. error: unable to sign the tag  
之後再找緣由;

 

-- 爲以前的提交添加標籤 : 先使用 git log --oneline 命令列出以前的提交, 會有一個七位的十六進制數進行標記, 使用git tag -a v3.1 f1bb97a 命令便可爲這個提交添加標籤;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. $ git log --oneline  
  2.   
  3. f1bb97a first commit  
  4.   
  5. git tag -a v3.1 f1bb97a  


 

刪除標籤 : 使用命令 git tag -d 標籤名 命令刪除標籤;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git tag -d v0.1  



 

驗證標籤 : 提交了GPG帶註釋標籤才能夠驗證, 由於上面沒有提交成功, 這裏留下一個命令;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git tag -v v1.0  


 

共享標籤 : 即將標籤提交到GitHub中;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git push origin --tags  


 

 

3. 分支和合並

 

(1) 查看現存分支

 

查看現存分支 : git branch命令;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git branch  

從結果能夠看出, 如今只有一個分支master;

 

 

(2) 建立分支

 

建立分支 : git branch 分之名稱, 就能夠建立一個分支, 建立完分支之後能夠查看分支, 當前使用的分支會顯示成爲綠色, 前面帶有 "*", 若是不是當前使用的分支, 顯示的是白色, 而且沒有 "*" 前綴;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git branch branch1  


 

(3) 切換分支

 

切換分支 : git checkout 分支名稱, 切換分支之後, 在分支進行操做,文件的改變不會體如今master主分支中, 主分支改變, 會體如今其它分支中;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git checkout branch1  


 

關於主分支和其它分支 : 

-- 分支編輯 : 現有兩個分支 master 主分支, 和剛建立的branch1 分支, 切換到 branch1 分支, 在branch1 中建立一個文件 description_branch1.txt; 

-- 其它分支文件不會影響主分支 : 而後在切換回 master 主分支, 發現沒有description_branch1.txt文件, 建立一個文件 description_master.txt;

-- 主分支會影響其它分支 : 在切換回 branch1 分支中, 發現存在 description_master.txt文件;

.

對比過程 : 

 

查看該工程項目分支狀況 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git branch  

 

-- 分支結果 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. branch1  
  2. master  

 

 

切換到 branch1 分支 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git checkout branch1  
-- 切換結果 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. Switched to branch 'branch1'  

 

 

查看 branch1 分支下的文件 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. ls  
-- 查看文件結果 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. AndroidManifest.xml  ic_launcher-web.png   res  
  2. assets               libs                  src  
  3. bin                  proguard-project.txt  
  4. gen                  project.properties  

建立一個文件 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. touch description_branch1.txt  

添加這個文件到本地緩存 :

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git add description_branch1.txt  

提交本地緩存 : 注意, 這裏必須提交, 若是不提交緩存, 這個文件在主分支也會出現;

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git commit -m 'add a description of branch1'  
-- 提交結果結果 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. [branch1 7f5785e] add a description of branch1  
  2.  1 file changed, 0 insertions(+), 0 deletions(-)  
  3.  create mode 100644 description_branch1.txt  

查看該分支下的文件 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. ls  
-- 查看文件結果 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. AndroidManifest.xml      libs  
  2. assets                   proguard-project.txt  
  3. bin                      project.properties  
  4. <strong>description_branch1.txt</strong>  res  
  5. gen                      src  
  6. ic_launcher-web.png  

切換回主分支 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git checkout master  

 

-- 切換分支結果 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. Switched to branch 'master'  
  2. Your branch is up-to-date with 'origin/master'.  

 

 

查看主分支文件 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. ls  
-- 查看文件結果 : 沒有在 branch1 中添加的文件;

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. AndroidManifest.xml  ic_launcher-web.png   res  
  2. assets               libs                  src  
  3. bin                  proguard-project.txt  
  4. gen                  project.properties  


.

 

 

(4) 提交分支 

 

提交分支命令 : 將本地的分支提交到 GitHub中;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git push origin experiment  


 

(5) 分支合併移除

 

合併分支命令 : 合併分支以後, 分支中有的文件在 主分支中也會顯示, 至關於將branch1 分支中的文件拷貝了一份到master分支中;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git merge branch1  
合併結果 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. Updating f1bb97a..7f5785e  
  2. Fast-forward  
  3.  description_branch1.txt | 0  
  4.  1 file changed, 0 insertions(+), 0 deletions(-)  
  5.  create mode 100644 description_branch1.txt  

 

 



.

(6) 刪除分支

 

刪除分支命令 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git branch -d branch1  

強制刪除分支命令 : 若是branch1 分支尚未被合併的話, Git是不容許刪除這個分支的, 此時要想刪除該分支, 就只能使用下面的命令強制刪除該分支 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git branch -D branch1  


 

4. Git工做流程

 

(1) 兩種工做流程

 

協做開發工做流程 : 這種狀況是最複雜的狀況, 多人團隊共同開發一個項目;

-- 與遠程倉庫同步 : git pull ;

-- 修改文件 : 添加 刪除 修改文件;

-- 查看變動 : git status ;

-- 載入變動 :添加文件, 先使用git add fileName, 在使用 git commit -m 'note' 載入變動; 若是是刪除 修改文件, 直接使用 git commit -m 'note' 提交;

-- 重複 : 重複執行 修改文件 查看變動 載入變動 提交載入動做;

-- 上傳 : 使用 git push 命令將項目源碼提交帶GitHub中去;

 

單獨開發工做流程 : 若是是我的獨立開發, 僅追蹤本地文件變動, 就不須要提交到服務器上, 由於Git是分佈式的;

-- 修改文件 : 

-- 提交變動 : 

-- 重複 : 

 

(2) 簡單示例

 

1> 獨立開發示例

 

該示例不會上傳, 僅在本地進行操做;

 

從GitHub中檢出項目源碼 : 注意, 檢出的源碼是根目錄源碼, 咱們在總倉庫的根目錄檢出便可,不一樣再爲項目建立目錄;

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git clone git@github.com:han1202012/AndroidPictureViewer.git  
-- 檢出克隆結果 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. Cloning into 'AndroidPictureViewer'...  
  2. remote: Counting objects: 86, done.  
  3. remote: Compressing objects: 100% (62/62), done.  
  4. remote: Total 86 (delta 3), reused 86 (delta 3)  
  5. Receiving objects: 100% (86/86), 1.67 MiB | 109.00 KiB/s, done.  
  6. Resolving deltas: 100% (3/3), done.  
  7. Checking connectivity... done.  

刪除bin和gen目錄 : 這兩個目錄是Android工程編譯產生的臨時文件, 沒有必要上傳到GitHub中去;

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. rm -rf bin gen  
-- 查看刪除結果狀態 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git status  
-- 結果 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. On branch master  
  2. Your branch is up-to-date with 'origin/master'.  
  3.   
  4. Changes not staged for commit:  
  5.   (use "git add/rm <file>..." to update what will be committed)  
  6.   (use "git checkout -- <file>..." to discard changes in working directory)  
  7.   
  8.         deleted:    bin/AndroidManifest.xml  
  9.         deleted:    bin/ImageView_Test.apk  
  10.         deleted:    bin/classes.dex  
  11.         deleted:    bin/res/crunch/drawable-xxhdpi/ic_launcher.png  
  12.         deleted:    bin/resources.ap_  
  13.         deleted:    gen/shuliang/han/imageview_test/BuildConfig.java  
  14.         deleted:    gen/shuliang/han/imageview_test/R.java  

 

 

提交緩存 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git commit -a  
-- 提交結果 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. [master e4377ba] delete bin and gen directory.  
  2.  28 files changed, 2 insertions(+), 110 deletions(-)  
  3.  create mode 100644 .gitignore  
  4.  delete mode 100644 bin/AndroidManifest.xml  
  5.  delete mode 100644 bin/ImageView_Test.apk  
  6.  delete mode 100644 bin/classes.dex  
  7.  delete mode 100644 bin/resources.ap_  
  8.  delete mode 100644 gen/shuliang/han/imageview_test/BuildConfig.java  
  9.  delete mode 100644 gen/shuliang/han/imageview_test/R.java  

 

2> 協做開發示例

 

與遠程倉庫同步 : 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git pull  

-- 若是其餘人沒有提交項目到GitHub上, 就會出現下面結果 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. Already up-to-date.  

修改文件後查看變動 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git status  
-- 若是沒有變動會出現下面狀況 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. On branch master  
  2. Your branch is ahead of 'origin/master' by 1 commit.  
  3.   (use "git push" to publish your local commits)  
  4.   
  5. nothing to commit, working directory clean  

載入變動 : 若是有變動, 那麼使用命令載入變動. 使用 git commit -a 或者 git add 命令;

 

-- 添加文件 : 先使用 git add 文件名 來添加文件到緩存, 以後使用 git commit -m '' 命令提交代碼到本地緩存;

-- 刪除改變文件 : 直接使用 git commit -m '', 提交刪除 或則 改變 到本地緩存;

 

提交項目源碼到服務器 : 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. git push  
-- 提交源碼結果 : 

 

 

[plain]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
 
 
  1. warning: push.default is unset; its implicit value is changing in  
  2. Git 2.0 from 'matching' to 'simple'. To squelch this message  
  3. and maintain the current behavior after the default changes, use:  
  4.   
  5.   git config --global push.default matching  
  6.   
  7. To squelch this message and adopt the new behavior now, use:  
  8.   
  9.   git config --global push.default simple  
  10.   
  11. See 'git help config' and search for 'push.default' for further information.  
  12. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode  
  13. 'current' instead of 'simple' if you sometimes use older versions of Git)  
  14.   
  15. Counting objects: 4, done.  
  16. Delta compression using up to 2 threads.  
  17. Compressing objects: 100% (2/2), done.  
  18. Writing objects: 100% (3/3), 292 bytes | 0 bytes/s, done.  
  19. Total 3 (delta 1), reused 0 (delta 0)  
  20. To git@github.com:han1202012/AndroidPictureViewer.git  
  21.    1ddf8c7..e4377ba  master -> master  


 

查看GitHub中的源碼狀況 : gen 和 bin 目錄果真被刪除了;

相關文章
相關標籤/搜索