GIt的使用 --初級

什么是 Git?
----Git 是目前世界上最先進的分布式版本控制系統(tǒng)
Git 的誕生
作者是 Linux 之父:Linus Benedict Torvalds
當初開發(fā) Git 僅僅是為了輔助 Linux 內核的開發(fā)(管理源代碼)
git 開發(fā)時間表
git 的產生是 Linux Torvals 在無奈被逼的情況下創(chuàng)造的,我看了一下時間歷程:

2005 年 4 月3 日開始開發(fā) git

2005 年 4 月 6 日項目發(fā)布

2005 年 4 月 7 日 Git 開始作為自身的版本控制工具

2005 年 4 月 18 日發(fā)生第一個多分支合并

2005 年 4 月 29 日 Git 的性能達到 Linux 預期

2005年 7 月 26 日 Linux 功成身退,將 Git 維護權交給 Git 另一個主要貢獻者 Junio C Hamano,直到現(xiàn)在

牛是怎么定義的呢?大家可以體會一下
Git 迅速成為最流行的分布式版本控制系統(tǒng),尤其是 2008 年,GitHub 網(wǎng)站上線了,它為開源項目免費提供 Git 存儲,無數(shù)開源項目開始遷移至 GitHub,包括 jQuery,PHP,Ruby 等等
版本倉庫
概念
版本庫,又名版本倉庫,英文名repository
這個目錄里面的所有文件都可以被 Git 管理起來,每個文件的修改、刪除,Git都能跟蹤,以便任何時刻都可以追蹤歷史,或者在將來某個時刻可以“還原”
版本庫的注意事項
沒事千萬不要手動修改這個目錄里面的文件,不然改亂了,就把 Git 倉庫給破壞了
不要已經有版本庫管理的目錄中,再建立版本庫,否則 git 就不知道如何管理了
創(chuàng)建版本庫
建立需要用 git 管理的目錄
進入終端

$cd項目目錄

$ git init

通過git init命令把這個目錄變成 Git 可以管理的目錄
注意:不要再在這個目錄的子目錄中建立.git的目錄
GIT 的常用終端命令

1502074948997430.jpg

步驟
新建目錄
新建001-第一個git目錄
打開終端,輸入以下命令

$cd[空格] [在 Finder 選中目錄拖拽到此處,然后回車]

現(xiàn)在在終端中操作的目錄就是剛剛創(chuàng)建的目錄了
建立版本倉庫(git init)
在終端輸入以下命令

$ git init

可以在終端中看到建立了一個.git的目錄
這個目錄就是 git 的版本庫目錄
001-第一個git和該目錄的所有子目錄中的文件都歸這個版本庫管理
將該目錄拖拽到 sourceTree 中觀察文件變化
新建文件(git status查看狀態(tài))
在終端輸入以下命令,創(chuàng)建一個文件

$ touch hello.m

在 SourceTree 中觀察文件變化
在終端中輸入以下命令

$ git status

提示以下內容

On branch master

>在 master 分支上Initial commitUntracked files:

> 沒有跟蹤的文件 

(use
"git add ..."
to includeinwhat will be committed)   

hello.m

nothing added to commit but untracked files present (use
"git add"
to track)

使用 git add 跟蹤文件

添加到暫存區(qū)(git add .)
輸入以下命令,將 hello.m 添加到暫存區(qū)


$ git add .

將當前目錄下所有修改過的文件(新增的/修改的)添加到暫存區(qū)


1502075070942549.jpg

git add并沒有直接將修改放到版本庫,給程序員一個后悔的機會
在終端中輸入以下命令

$ git status

提示以下內容


On branch master

Initial commit

Changes to be committed: 

(use
"git rm --cached ..."
to unstage) 

  
new
 file:  hello.m

注意觀察 srouceTree 中的變化
提交到版本庫(git commit .)
輸入以下命令,將 所有修改 提交到版本庫,并且說明修改原因

$ git commit -m 
"添加了 hello.m"

在終端中輸入以下命令

$ git status

提示以下內容

ch master

nothing to commit, working directory clean

一旦提交后,如果沒有再對工作區(qū)做任何修改,那么工作區(qū)就是“干凈”的

1502075165363933.jpg

修改文件
輸入以下命令,用 Xcode 打開 hello.m

$ open hello.m

在 Xcode 中輸入以下內容


#include int main() {

    
printf(
"hello git\n"
);

}

在終端中輸入以下命令

$ git status

提示以下內容

On branch master

Changes not staged 
for
 commit:

  
(use
"git add ..."
to update what will be committed)

  
(use
"git checkout -- ..."
to discard changes 
in
 working directory)

    
modified: hello.m

no changes added to commit (use
"git add"
and/or
"git commit -a"
)

在終端中輸入以下命令,將修改添加到暫存區(qū)

$ git add .

在終端中輸入以下命令


$ git status

提示以下內容

$ git status

On branch master

Changes to be committed:

  
(use
"git reset HEAD ..."
to unstage) 

  
modified:  hello.m

在終端中輸入以下命令,將修改提交到版本庫

$ git commit -m
"修改了hello.m"

在終端中輸入以下命令

$ git status

提示以下內容


On branch master

nothing to commit, working directory clean

**gitignore**

操作步驟
在終端輸入以下命令,編譯hello.m

$ gcc hello.m

在終端編譯生成一個a.out的可執(zhí)行文件,這個文件是不需要提交到版本庫的
在終端輸入以下命令,創(chuàng)建.gitignore
用 Xcode 打開.gitignore輸入

*.out

表示忽略追蹤所有以.out結尾的文件
在終端輸入以下命令

$ git add .$ git commit -m  
"添加 .gitignore 文件"

在日常開發(fā)中,以下文件都不需要提交到服務器上保存:
根個人相關的文件,例如:最后打開的文件、斷點
第三方框架
提示:
Xcode 默認繼承了極少的幾個常用 Git 命令,但是不包含對.gitignore文件的生成和管理
是否知道 .gitignore 文件,直接可以判定這個程序員是否有團隊開發(fā)經驗
獨立的代碼倉庫
操作步驟
建立倉庫
新建一個目錄CZHelloProject.git
進入終端,進入該目錄
輸入以下命令


$ git init --bare

--bare參數(shù)可以建立僅用于交換的獨立的代碼倉庫
建立多人目錄
新建張三/經理兩個目錄,分別演示兩個獨立的程序員角色
準備經理的目錄
在終端中輸入以下命令

$cd[經理的目錄]$ gitclone[代碼倉庫目錄]$cdCZHelloProject

設置個人信息


# 設置用戶名

$ git config user.name經理

# 設置郵箱

$ git config user.emailmanager@qq.com

# 查看設置信息

$ git config -l

按照以上步驟重復張三的目錄設置
多人協(xié)作
操作步驟
經理創(chuàng)建項目
從gitignore-master復制Objective-C.gitignore到項目目錄
在終端中輸入以下命令重命名


$ mv Objective-C.gitignore .gitignore

$ git add .

$ git commit -m
"添加 gitignore"

$ git status

設置追蹤流,只有在本地的版本庫才需要設置

$ git branch --unset-upstream

新建HelloGit項目,保存在剛剛創(chuàng)建的目錄中
將項目目錄拖拽到 SrouceTree 中,并且改名
注意:一定要先添加.gitignore再添加項目文件,否則有些文件默認不會被忽略
張三開始工作
詢問經理版本庫地址
在終端克隆版本庫
$ gitclone[版本庫地址]
設置個人信息(僅在一臺計算機模擬多人需要)

$ git config user.name 張三

$ git config user.email 張三@qq.com

$ git config-l

沖突以及沖突解決
所謂沖突就是當兩個人同時修改了同一個文件的同一行代碼,才會產生沖突!
通過fetch可以提前看到是否存在沖突,比直接用 pull 要方便很多
storyboard的沖突很麻煩,所以很多企業(yè)不愿意用storyboard
即使使用,也是各司其職
為了避免純代碼創(chuàng)建 UI 的繁瑣工作,還有很多公司使用 XIB
在早期版本的 Xcode 中,只要在 Storyboard 中挪動一下位置,storyboard 就會被標記為修改狀態(tài),Xcode 7.3 得以改善

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,848評論 9 163
  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站,我僅僅是作為學習之用 Git簡介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 4,110評論 3 27
  • 今日分享的書是《深度模仿》作者井上達彥,分享內容―模仿的三重境界:守、破、離。 八月初回家住了一...
    新葵閱讀 273評論 2 4
  • 陳宗楠老師分享了他參加過的一些光學儀器設備及一些設備廠商先進技術的展會。之后講解了光學裝調及相關指標,球差、色差、...
    王集是個好小伙閱讀 281評論 0 0
  • 最生僻的API做了下劃線以及粗體的標注。百度上查了全是拷貝的同一份代碼,而且只有代碼沒有解釋,很是鄙視。
    wzf_taker閱讀 1,135評論 1 1

友情鏈接更多精彩內容