1. 程式人生 > >原始碼管理工具 GIT的使用步驟的詳細講解

原始碼管理工具 GIT的使用步驟的詳細講解

是否顯示隱藏資料夾的終端命令:

defaults write com.apple.finder AppleShowAllFiles YES
defaults write com.apple.finder AppleShowAllFiles YES

1.git工作原理和g

1)工作區:倉庫資料夾裡除了.git目錄以外的內容;
  (2)版本庫:.git目錄,用於儲存記錄版本資訊;
  暫緩區(stage);

分支(master)git自動建立的分支;

HEAD指標:用於指向當前分支;簡介it和svn對比:
(1)很多情況下,git的速度遠遠比SVN快;
(2)SVN是集中式管理,git是分散式管理;
(3
)SVN使用分支比較笨拙,git可以輕鬆擁有多個分支; (4)SVN必須聯網才能正常工作,git支援本地版本控制工作; (5)分散式和集中式最大區別:在分散式下時候:可以本地提交程式碼; 每個開發者機器上都有一個伺服器的資料庫;git (1)git init :初始化一個程式碼倉庫 (2)使用git前必須配置使用者名稱和郵箱 git config user.name “CYJ” git config user.email “CYJ@163.com” (3)給git配置全域性的使用者名稱和郵箱 git config —global user.name “CYJ” git config —global user.email
“CYJ@163.com

3.初始化專案

touch main.m 建立檔案
git status 檢視狀態
git add main.c 將檔案新增到暫緩區 (git add . 將在工作區中所有不再暫緩區中的所有格內容新增到暫緩區中)
git commit -m "初始化專案" main.m :將暫緩區中的內容提交到本地版本庫,清空暫緩區
注意:新增的檔案或者是修改的檔案都需要通過add命令新增到暫緩區

4.git status 檢視狀態不同顏色代表不同狀態

紅色:該檔案被新增或者修改,但是沒有新增到git的暫緩區;
綠色:檔案在暫緩區中,但是沒有被新增到本地版本庫;

5.git工作原理

1)工作區:倉庫資料夾裡除了.git目錄以外的內容;
(2)版本庫:.git目錄,用於儲存記錄版本資訊;
暫緩區(stage);
分支(master)git自動建立的分支;
HEAD指標:用於指向當前分支;
(3)git add:把檔案修改或者新新增的檔案新增到暫緩區;
git commit 把暫緩區的所有內容提交到當前分支;

6.

1)給命令列起別名:
git config alias.st “status” 給status起一個st別名;
git config —global alias.st “status” 給status起一個全域性別名;
(2)刪除檔案:
git rm 檔名 刪除指定的檔案 
(3)檢視版本資訊:
git log :版本號(是由sha1演算法生成的40位雜湊值 )
git reflog :可以檢視所有版本回退的操作
(4)版本回退
git reset —hard HEAD :回到當前版本;
git reset —hard HEAD^ :回到上一個版本;
git reset —hard HEAD^^ :回到上上個版本;
git reset —hard HEAD~n :退回到前n個版本;
git reset —hard 版本號(前5位) :回到指定的版本;

做上面的任意一個操作是在本地版本庫中進行回退的,還需要將共享版本庫中儲存的也回退(注意:此操作不可逆)
get push -f 強制push到共享版本庫;

二、共享版本庫及使用git管理專案
1.共享版本庫

(1)git伺服器的搭建非常繁瑣;可以把程式碼託管到(GitHub/OSChina);也使用一個資料夾或者一個U盤;
(2)git init --bare 使用一個資料夾作為一個共享版本庫
(3)將共享版本庫的所有檔案下載下來
git clone 共享版本庫地址

2.刪除忽略檔案

touch .gitignore 建立一個.gitignore檔案 ;
去gitHub上將內容複製到.gitignore檔案中;
git add .gitignore:把.gitignore檔案新增到暫緩區;
git commit -m “註釋” .gitignore :將暫緩區中的內容提交到master分支中;

3.初始化專案

在Xcode中的git對應的人員的資料夾中建立新的專案;
點選source Control,點選commit進行提交本地版本庫;
點選source Control,點選push,提交到共享版本庫之中;

4.張三加入開發

1)來到張三的資料夾:
git clone 共享版本庫地址 將共享版本庫中的程式碼下載到張三的資料夾中;
(2)可以直接將程式碼新建到共享版本庫下載下來的資料夾中,點選source Control,點選commit進行提交本地版本庫;如果網速快,也可以同時勾選push到共享版本庫中;
(3)想要從共享版本庫中更新最新的程式碼到本地,需要點選source Control,點選pull進行提交本地版本庫;

5.git管理方式下 使用靜態庫的方法:

1)方法一:將靜態庫拖入專案中,靜態庫的.h檔案和.a檔案會顯示?表示不識別;右擊這兩個檔案,選擇sourceControl,點選add;就可以使用了(表示已經可以commit新增到暫緩區了);
(2)方法二:將靜態庫拖入專案中,用終端,cd finder中靜態庫所在的資料夾;輸入命令git add.;這樣就可以使用了(表示已經可以commit新增到暫緩區了);

三、版本備份和建立新人共享庫
1.版本備份

1)當程式開發完成後,需要進行備份(打上標籤);
使用git時候如果需要備份,都是使用命令列進行備份;
git tag -a weibo1.0 -m “註釋” 在本地打上標籤
git tag 檢視當前有哪些tag
git push origin weibo1.0    將標籤push到共享版本庫

當別人需要檢視tag的時候
git pull
git tag

(2)將標籤push到共享版本庫;開始2.0版本的開發;發現1.0版本有bug;
(3)建立一個資料夾,用來修復bug,在這個資料夾中將,將共享版本庫中的內容clone下來;

在微博中建立weibo1.1fixBug資料夾,在這個資料夾中修復bug
cd weibo1.1fixBug資料夾
git clone 伺服器儲存的資料夾地址 將這個伺服器中的檔案clone到weibo1.1fixBug資料夾中;

(4)將當前的程式碼轉為1.0標籤,建立分支,並切換到該分支;

在分支中修復bug,上傳到appstore;
cd 來到git同級目錄下的工作區中;
 git checkout 標籤名(在這裡是weibo1.0) 切換到1.0標籤,但是不能在標籤中修改程式碼
git checkout -b 標籤名(weibo1.1 fixbug) 建立了新的分支,並切換到了這個分支;
在這裡完成bug的修復;
在Xcode中的sourceControl中commit並勾選push到共享資料夾

(5)將修復好的版本,打上tag並上傳到共享版本庫;

git tag -a weibo1.0 -m “註釋” 在當前這個分支中為修復了bug的這個版本打上tag;
git tag 檢視當前有哪些tag
git push origin weibo1.1    將新的標籤push到共享版本庫

(6)跟當前正在開發的2.0版本進行合併

在正在開發的2.0版本中,點選sourceControl ,點選pull,選擇weibo1.1fixbug 分支,進行pull;
然後選擇點選sourceControl ,選擇push,選擇當前正在開發的版本,進行push;上傳到共享版本庫;

(7)刪除分支

git branch  檢視本地分支
git branch -r 檢視所有的分支
git checkout 分支名 切換到正在開發的分支中

git branch -d 分支名 刪除本地分支
git branch -r -d 分支的全名 刪除本地版本庫的分支
git push origin —delete 分支名 刪除共享版本庫中的分支

2.建立新人的共享版本庫 (專案經理做的)

  因為新人可能會隨意上傳修改共享版本庫的程式碼,所以需要為新人建立一個單獨的資料夾在伺服器中,來給他使用,不會影響到正在開發的檔案
(1)在伺服器中建立一個lisi的資料夾
cd lisi的資料夾
git init —bare 使用lisi資料夾作為一個共享版本庫
來到開發者人員的電腦中,正在開發的Xcode中,選擇sourceControl,選擇正在開發的分支,選擇configure weibo。。;選擇Remotes,點選+;填寫name和address(lisi的資料夾的地址);
點選sourceControl,點選push,選擇 新建的共享版本庫,點選push;
在lisi的電腦中,git clone,將共享版本庫中的檔案clone下來;

四、GitHub託管檔案和OSChina託管檔案

www.github.com
git.oschina.net

1.GitHub託管檔案
方式一:HTTPS
方式二:SSH Keys
SSH Keys認證:
1.公鑰:存在github上用來解密
2.私鑰:存在本地的一個.ssh檔案下