源代碼管理工具 GIT的使用


 

是否顯示隱藏文件夾的終端命令:
defaults write com.apple.finder AppleShowAllFiles YES
defaults write com.apple.finder AppleShowAllFiles YES

1.git工作原理和git下的文件夾
(1)工作區:倉庫文件夾里除了.git目錄以外的內容;
(2)版本庫:.git目錄,用於存儲記錄版本信息;
暫緩區(stage);
分支(master)git自動創建的分支;
HEAD指針:用於指向當前分支;


一、git簡介
1.git和svn對比:
(1)很多情況下,git的速度遠遠比SVN快;
(2)SVN是集中式管理,git是分布式管理;
(3)SVN使用分支比較笨拙,git可以輕松擁有多個分支;
(4)SVN必須聯網才能正常工作,git支持本地版本控制工作;
(5)分布式和集中式最大區別:在分布式下時候:
開發者可以本地提交代碼;
每個開發者機器上都有一個服務器的數據庫;


2.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文件下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM