GIT命令列的使用,GIT命令列使用

來源:互聯網
上載者:User

GIT命令列的使用,GIT命令列使用

新手瞭解 有不對的地方指點下

首先, 瞭解下什麼是GIT,GIT是一款開元的分布式版本控制工具, 在世界上的所有分布式版本控制工具中,GIT是最簡單,最流行,同時也是最常用的

相比於其他版本的控制工具而言,GIT也有著自己的特點

舉個例子,GIT與集中式版本控制中的SVN相比來說,區別主要在於以下幾點:

1 很多情況下, git的速度遠遠比SVN快

2 SVN是集中式管理, git是分布式管理

3 SVN使用分支比較笨拙, git可以輕鬆擁有無限個分支

4 SVN必須連網才能工作, git支援本地版本的控制工作

5 舊版本的SVN會在每一個目錄置放.svn, git只會在根目錄下擁有一個.git

 

集中式版本控制

分布式版本控制

 

話不多說 回到主題上,命令列實現個人開發,和團隊開發的GIT使用

因為涉及到隱藏檔案的顯示,所以實現開啟隱藏檔案的顯示

全部顯示
defaults write com.apple.finder AppleShowAllFiles -bool true
全部隱藏
defaults write com.apple.finder AppleShowAllFiles -bool false

個人開發演練的代碼

1.進入到所需工作的目錄, 並且初始化一個代碼倉庫 

lanoudeMac-mini-5:~ lanou$ cd /Users/lanou/Desktop/GIT演練/個人開發 lanoudeMac-mini-5:個人開發 lanou$ git initInitialized empty Git repository in /Users/lanou/Desktop/GIT演練/個人開發/.git/

 2.需要給GIT倉庫配置一個使用者名稱和郵箱,如果不配置的話,會自動化佈建你的使用者名稱為電腦使用者名稱,郵箱為電腦使用者名稱@apple.com,因為後面涉及到針對使用者的管理,所以需要

設定使用者名稱

lanoudeMac-mini-5:個人開發 lanou$ git config user.name "weiboqy"lanoudeMac-mini-5:個人開發 lanou$ git config user.email "weiboqy@163.com"lanoudeMac-mini-5:個人開發 lanou$ 

設定好後並沒用任何的顯示,可以在工作目錄下的/.git/config檔案中查看自己輸入的使用者名稱和郵箱是否存在

3.初始化代碼

lanoudeMac-mini-5:個人開發 lanou$ touch main.mlanoudeMac-mini-5:個人開發 lanou$ git add main.m

touch main.m的作用是在工作目錄之下,.git目錄之外建立一個main.m檔案 ,這個檔案我們用來實驗

git add main.m 作用是 將工作區的代碼 添加到暫緩區中

lanoudeMac-mini-5:個人開發 lanou$ touch main.mlanoudeMac-mini-5:個人開發 lanou$ git add main.mlanoudeMac-mini-5:個人開發 lanou$ git statusOn branch masterInitial commitChanges to be committed:  (use "git rm --cached <file>..." to unstage)new file:   main.m(綠色)lanoudeMac-mini-5:個人開發 lanou$ touch main.hlanoudeMac-mini-5:個人開發 lanou$ git statusOn branch masterInitial commitChanges to be committed:  (use "git rm --cached <file>..." to unstage)new file:   main.m(綠色)Untracked files:  (use "git add <file>..." to include in what will be committed)main.h(紅色)lanoudeMac-mini-5:個人開發 lanou$ 

 4.git status 查看檔案的狀態

Untracked files(紅⾊色⽂檔案):新添加的⽂檔案或者新修改的⽂檔案在⼯工作區中,沒有被添加到暫 緩區.
Changes to be committed(綠⾊色):將⼯工作區的代碼已經添加到暫緩區中,可以被提交到代碼倉庫中了 

這時候需要瞭解下GIT的幾個核心概念了

工作區:工作資料夾(倉庫檔案夾)除.git目錄以外的內容

版本庫:.git目錄,用於儲存記錄版本資訊

暫緩區(stage)

分支(master):git自動建立的第一個分支

git add:把檔案修改添加到暫緩區

git commit:把暫緩區的所有內容提交到當前的分支

5.修改檔案

lanoudeMac-mini-5:個人開發 lanou$ open main.mlanoudeMac-mini-5:個人開發 lanou$ 

open main.m  直接開啟,修改好之後儲存 git add main.m 添加到暫緩區

如果一個一個檔案 添加到暫緩區會比較麻煩, git add . 可以講工作區的所有檔案到添加到暫緩區

6.給git命令起別名

lanoudeMac-mini-5:個人開發 lanou$ git config alias.st "status"lanoudeMac-mini-5:個人開發 lanou$ git config alias.ci "commit -m"lanoudeMac-mini-5:個人開發 lanou$ 

如果每次都是輸入很長的命令,會比較麻煩,所以這就有了別名的存在

git config alias.別名 "本來的命令代碼"

相比於這樣而已,會有很大的便利之處

7.查看曆史版本

lanoudeMac-mini-5:個人開發 lanou$ git logcommit 503c029c159acb0caa86a178715b1193733b2e34Author: weiboqy <weiboqy@163.com>Date:   Sun Mar 27 20:10:34 2016 +0800    main.mlanoudeMac-mini-5:個人開發 lanou$ git reflog503c029 HEAD@{0}: commit (initial): main.mlanoudeMac-mini-5:個人開發 lanou$ 

如果想查看曆史版本的話,必須要將檔案提交到分支中,也就是git commit命令

查看曆史版本有兩種方式,如上行所示,當曆史版本較多時,建議使用git reflog

GITde 版本號碼是有sha1密碼編譯演算法產生的40位雜湊值,所以非常複雜。。

那為什麼有曆史版本的作用呢,比如說,現在使用的檔案被我用炸了,沒有太好的辦法進行恢複,那麼我只需要回退到某一個時期的曆史版本就迎刃而解.

8.曆史版本回退

lanoudeMac-mini-5:個人開發 lanou$ git reset —hard HEAD //回退到當前,但還沒有上傳到分支的版本//不做解釋了,因為版本數目不夠git reset —hard HEAD^   //回退到前一個版本git reset —hard HEAD^^  //回退到前一個的前一個版本git reset —hard HEAD~100 git reset —hard 版本號碼前7位   //會退到前100個版本

團隊開發演練的代碼

 

團隊開發可以使用檔案夾/GitHub/oschina來進行代碼共用

1.檔案夾共用

如果所示的關係,weibo作為代碼共用庫

所以先建立好weibo的倉庫, 成為代碼共用庫

lanoudeMac-mini-5:weibo lanou$ cd /Users/lanou/Desktop/GIT演練/團隊開發/代碼共用庫/weibo 

lanoudeMac-mini-5:weibo lanou$ git init --bare

git init --bare, 成為代碼共用庫, 因為是成為代碼的共用庫,所以不能是簡單的gie init

2.專案經理將代碼共用庫的內容複製下來(clone)

lanoudeMac-mini-5:專案經理 lanou$ git clone /Users/lanou/Desktop/GIT演練/團隊開發/代碼共用庫/weibo/

3.專案經理初始化項目

建立一個忽略⽂檔案: 在和.git等級⺫⽬目錄下建立⼀一個.gitignore⽂檔案,在該⽂檔案中指定需要忽略的⽂檔案 

在GitHub搜尋.gitignore排名第一的就是 或者可以去https://github.com/github/gitignore/blob/master/Objective-C.gitignore查看OC需要忽略 的內容,將內容填寫到. gitignore中

4.將.gitignore添加到暫緩區並提交到分支

git add .

git commit -m "注釋"

5.建立項目

 不能在專案經理目錄下的微博下建立項目,因為已經包含了 Git repository,所以要返回到上一個目錄下建立

 在使用完畢之後 都要遵循以下一個順序

修改代碼—>git commit(提交到本地) —>git push (上傳到伺服器)

在使用前都需要pull下,以便別人修改了你沒有看到

如果有其他人需要加入開發,需要git clone 共用程式碼程式庫的地址

需要注意的是 代碼衝突,以及storyboard的衝突問題

建議在團隊合作的時候 不要使用storyboard, 尤其是共用一個storyboard,特別容易發生衝突, 哪怕是移動storyboard的位置。

附上一張總結性的圖

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.