原始碼管理工具 GIT的使用步驟的詳細講解
阿新 • • 發佈:2019-01-28
是否顯示隱藏資料夾的終端命令:
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檔案下