1. 程式人生 > >git 版本管理的說明

git 版本管理的說明

什麼是Git----------------->為什麼選擇Git----------------->如何安裝Git到MAC OS X------------------>如何使用Git

在使用Xcode如何利用git管理程式碼,這裡首先說明一下怎麼在Xcode中利用git管理程式碼:

其實Xcode自帶的有git程式碼管理功能的,使用方法這裡也可以介紹一下,我就是這麼操作把程式碼上傳至公司程式碼管理庫。

1、建立工程的時候同時直接選擇git管理

好,我們從這裡開始:File->New->Project->工程命名->next->看下圖選擇->create


勾選Create Git responsitory on My Mac

 這樣就建立了一個帶git控制的工程專案。

2、已經建立好的工程沒有帶git控制,可以用如下的方法新增

(1) 開啟終端,cd到你建立的工程目錄

(2) 執行git init 。 這時.git 檔案就被創建出來了,使用命令 ls -a 能檢視隱藏檔案

(3) 執行git add .  。該行指令中不要漏掉後面的“.”,它和add之間還有一個空格。這樣就把當前目錄的所有內容都新增到了.git檔案中

(4) 執行git commit -m "Initial commit",這樣就會持久儲存所做的更改

最後,重啟Xcode,開啟Source Control 你就會發現原本不可以用的選單項,現在都可以使用了。

3、按照1或者2的步驟,最後可以在Source Control看到如下截圖所示的內容:


Source Control->master主分支

4、接下來就能進行實際操作,檢視git控制版本效果。

主要功能使用:

1、New Branch:新建分支

2、Switch to Branch 切換到目標分支

3、Merge from Branch 將目標分支合併到當前分支

4、Merge into Branch 將當前分支合併到目標分支

5、Configure 配置資訊

其中預設最開始的新建的工程為主分支master

5、接下來看下操作的效果圖

(1)新建2個分支:Source Control->GitDemo(工程名)->New Branch,分別建立Git-developer和Git-release這兩個分支

(2)切換到Git-developer分支:Source Control->GitDemo(工程名)->Switch to Branch,選擇Git-developer

(3)新建GitTest類,此時當前版本Git-developer多出GitTest.h和GitTest.m這2個檔案,分別切換到master和Git-release檢視發現都沒有GitTest.h和.m檔案

如下圖:


Git-developer
master

6、現在developer分支有新的更新,可以把提交這次的更新(注意:切換到developer分支後提交更新)Source Control->commit

在彈出的介面中左側選中需要提交的檔案,在視窗的底部寫上更新的描述,點選右下角的commit Files。這樣就提交完成了一次更新,在Source Control->history可以檢視此次的更新。

7、現在可以嘗試將developer分支的更新合併到release和master分支中

Source Control->GitDemo(工程名)->Merge into Branch 選中需要合併到的目標分支,分別選擇release和Master分支,點選右下角merge,這樣就合併完成了。

8、重新切換到release和Master分支,發現這兩個分支下面都有剛才新建的GitTest.h和.m這兩個檔案了。

截圖就不上傳了,比較麻煩,操作起來也比較容易上手,xcode裡面git的基本操作就這些。

題外話:一般在開發中,多人合作開發的時候,版本控制非常重要,所以一定要有穩定的主分支Master,開發功能的分支developer,預釋出的分支release這三個重要分支。每次有新功能和需求的時候每個開發人員就從developer分支分別拉取專案開發,最後合併入developer,功能完成後就併入release,修改bug時在release分支操作,修復完成後分別併入Master和developer分支,最後從Master分支拉取最終的程式碼打包上傳APP Store。參考連結

這裡介紹一些管理git方面的內容具體如下:
1, 首先要了解什麼是Git。

簡而言之,Git是一個分散式的程式碼版本管理工具。類似的常用工具還有SVN,CVS。

概念瞭解參見;http://baike.baidu.com/subview/1531489/12032478.htm?fromId=1531489&from=rdtself&fr=wordsearch

2,為什麼要使用Git。

Git相比SVN,CVS,最大的特點也是優點在於提供分散式的程式碼管理。這不是說SVN等不具有該功能,但就目前來看,Git更完善,而且也越來越多地被人們所接受。前途和易用是我一向選擇的基準。

在使用中,目前體驗到最大的相比SVN的好處有;
分支程式碼只有一份!log在本地!合併程式碼更加方便!更加安全!目錄更加簡潔!

簡單做下解釋;

分支程式碼只有一份!
使用過svn的童鞋想必都知道,當我們要開發一個新功能或者增加一個新版本或者修改一個複雜bug的時候,通常需要copy整份程式碼到本地一個目錄,然後新增到svn伺服器上進行程式碼管理。
而Git不同,Git可以建立許多branches,每個branch都是獨立的,當我們需要修改程式碼的時候,commit也只是對本地倉庫的修改。如果使用SourceTree,我們會發現在工具欄的Git Flow功能,已經很好的為此做了準備。

log在本地!
svn的log都是儲存在伺服器上的,當我們要查閱修改記錄的時候,必須要能夠連線上遠端伺服器,並且具有許可權。而Git不同,Git對於本地倉庫的修改記錄都是在本地上的,方便查閱。

合併程式碼更加方便!
因為Git支援本地無限Branches,當我們個體在本地建立多個branches用於不同目的的時候(修改,新增,探索),合併一份程式碼顯然要比svn合併一堆工程copy更加簡單。

更加安全!
Git的commit命令不同於SVN,commit只是對本地倉庫程式碼的一次更新。當需要提交到master遠端倉庫,或者其他遠端分支倉庫的時候,需要使用push功能。雖然增加了一個過程,卻可以防止隨意修改導致後期合併出現大問題的風險。

目錄更加簡潔!
在Git本地倉庫根目錄,只有一個.git檔案,它包含了所有的管理資訊。而SVN想必大家都知道,每個子目錄下都有噁心的.svn。這個當需要修改檔案衝突等問題時,就需要考慮了。肯定是一個檔案簡單。

3, 如何安裝Git到MAC OS X
這裡介紹兩種方式;
一,使用Git command-line
二,使用GUI工具SourceTree,功能很強大,很方便

在進行安裝前,要說一下,Git和SVN一樣,都需要建立一個伺服器的,他們都可以建立自己的版本管理伺服器。對於個人和小團隊來說,使用託管伺服器可能更合適,
常見的有Github 和 Bitbucket。這裡我介紹下Bitbucket,Github因為沒有個人免費倉庫使用,程式碼放上去就是開源的,所以這裡我選擇Bitbucket。另外,現在Bitbucket的個人倉庫相關頁面已經基本漢化了。註冊流程也比較簡單。
詳見連結;https://bitbucket.org/

這裡先介紹下使用Command-line。
1,下載Git installer,地址;http://git-scm.com/downloads
2,下載之後開啟,雙擊.pkg安裝
3, 開啟終端,使用git --version命令檢視安裝版本,有就是安裝成功了
/*以下4.5命令如果已經使用Bitbucket建立過了,將會自動包含*/
4,建立一個全球使用者名稱
git config --global user.name "FIRST_NAME LAST_NAME"
5,建立一個全球郵箱
git config --global user.email "[email protected]"
6, 如果不想每次連線遠端倉庫都輸入密碼的話,輸入如下命令
git credential-osxkeychain
------>等待
git config --global credential.helper osxkeychain
# Set git to use the osxkeychain credential helper
到此Git就安裝完成了。

二,關於SourceTree這裡先不做介紹。初始安裝和SVN類似。

4, 如何使用Git
這裡也介紹兩種方式
一,使用command
二,使用SourceTree

先介紹第一種;Command line

使用終端的命令列時,首先我們要有一定的linux命令列知識。實際使用中經常用到的比較少,這裡只介紹一些必要的。
參考連結;http://www.renfei.org/blog/mac-os-x-terminal-101.html

linux基礎命令;
sudo -s   獲取絕對使用者許可權
cd xxx    進入xxx目錄
ls (-a/-A)   顯示當前路徑下所有檔案(隱藏的)
pwd       顯示當前絕對路徑
mkdir  xxx   建立資料夾xxx
man xxx     檢視xxx命令手冊

然後介紹下Git基礎命令的含義;
clone   克隆遠端倉庫
init       初始化倉庫
remote 連線遠端倉庫
pull      從遠端倉庫下拉獲取新資料
push    將本地倉庫新增或修改檔案上傳到遠端倉庫
add     新增檔案或者修改檔案,commit以及push之前使用
log      當前倉庫提交過的日誌資訊
status  當前倉庫版本狀態
commit 提交到當前倉庫中
branch 分支命令,相關增刪查操作
checkout 使用遠端倉庫最後一個版本完全覆蓋當前倉庫內容/選擇分支branch
diff      對比版本內容
merge   合併版本內容
詳細參見連結;https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+Documentation+Home

使用Git,我們當然要有一個遠端倉庫,這裡假設我們已經建立好了Bitbucket賬號(建立遠端倉庫repository使用)。
建立遠端倉庫的方法這裡也介紹兩種方式。
一,使用Git 命令建立
二,在Bitbucket上建立

第一種,使用Git 命令列

初始化
git init
--------->
從Bitbucket上覆制倉庫地址
--------->
新增別名為origin的源到遠端倉庫地址
git  remote  add  origin  https://[email protected]/myAccountName/myRepositoryName.git

第二種,Bitbucket上建立遠端倉庫
註冊之後按照提示建立即可,非常簡單。。。不再複述。
詳見參考;https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+Documentation+Home中的Bitbucket 101文件

---------以上為初始建立--------------華麗的分割線---------------以下為操作版本庫-------------------

有了遠端倉庫Repostiory,我們該新增程式碼或者其他檔案什麼的了

這裡還是介紹兩種;
一, 使用command-line
二, 使用SourceTree

第一種, 使用command-line
在本地目錄連結了遠端倉庫後(clone命令),使用如下方法操作檔案。

git add xxx           新增或要修改的xxx檔案
------------------>
git commit -m "adding repo instructions"         提交xxx檔案到本地倉庫版本中 ;-m “XXXX” ;提交log
------------------>
git push -u origin master                提交xxx和log,到遠端倉庫origin(剛才建立的遠端倉庫Repository的別名)的master分支下

第二種, 使用SourceTree
和svn類似,具體流程為;
add----新增檔案到索引----->commit------提交到本地倉庫------>push--------上傳到遠端倉庫--------->

之後就是對倉庫中檔案的增加修改刪除操作了

Ps:記得如果不是單獨另需建立的branch,每次對本地倉庫操作的時候都要使用 git pull命令,更新遠端倉庫到本地中,防止衝突。這點和SVN的update類似

先介紹到這裡,其實操作起來基本和SVN的命令列工具還有gui工具類似。
實際使用中主要區別還是分散式的開發模式不同。

歡迎大家來補充~

----------------------------------------------------------------------分割線-------------------------------以下為對Git的Branch進行說明-------------------------------------------------

Branch就是分支,Git相比SVN,最大的優點是完善的分散式管理。每一個本地的Repository,也就是倉庫,都相當於一個本地版本伺服器,在此基礎上我們可以進行許多Branches,進行不同
型別的開發。Branch的目錄統一性使得它的管理,包括merge非常簡單方便。

一, 先介紹下SourceTree下的Branch,
這裡提供個比較詳細的部落格連結,供大家參考,圖文並茂,已經解釋的比較詳細了,不再複述。
參考地址: http://www.takobear.tw/12/post/2014/02/bear-git-flow-sourcetreegit-flow.html

二, 使用command-line建立branch分支

待續。。。。。。

----------------------------------------------------------------------分割線-------------------------------以下為小技巧-----------------------------------------------

1,   Git Stash命令
說到branches,使用Git開發較複雜的專案我想本地肯定會有多個。假如我們有一個臨時緊急的重要任務,需要切換到其它branch,那麼我們需要commit當前的內容。
但是,假如我修改的內容比較亂,或者其它什麼原因不想提交到倉庫中呢,這時候我們就可以使用Stash命令了。
$ git stash
這個命令的意思是將當前工作區的內容放到一個臨時的區域,這意味著,使用git status,或者add commit命令,是無效的。
但是我們很好的保護了現場。接下來就可以checkout到其它branch工作了。

回來之後,要回復一下現場。這裡要簡單說明下,stash命令的一個工作機制。
當使用了stash命令後,當前工作區域的內容會被push進一個棧佇列裡,是的,就和navigationController一樣。
假如我們要回復現場。有兩種選擇;pop, 或者apply

pop顧名思義,當前暫存內容從棧佇列裡消失了,apply則和objectAtIndex一樣,佇列裡仍然有該暫存內容。

相關推薦

linux運維、架構之路-git版本管理

nbsp font 同步 class ges 之路 blog git服務器 工作目錄 一、常見版本管理系統 1、SVN 集中式的版本控制系統,只有一個中央數據倉庫,如果中央數據倉庫掛了或者不能訪問,所有的使用者無法使用svn,無法進行提交或者備份文件 2、Gi

一圖看懂git版本管理 reset revert checkout

技術分享 git design alt sig res 就是 文件 eset git是一個流程,流程就有提交和回滾,git提供這些命令就是讓你提交修改和回滾修改的. 自己用powerdesign畫了一張圖,可以很容易看懂git中版本如何向前提交和向後回滾 提交相關:add

git版本管理規範

團隊 通過 git 命名 otf ××× ast 代碼 完成 一般約定 一般分為一下幾個分支進行管理: master(主分支):穩定的線上版本 develop(開發分支):用於開發集成測試分支,不穩定 release(測試分支):用於測試的分支 hotfix:用於緊急修復

git版本管理 .gitignore不起作用的解決辦法

暫存 範圍 -m gitignore pan 說明 遠程 git版本管理 span 一、出現的問題   從服務器克隆下來的項目,在本地修復運行產生了部分緩存文件後,確認可以提交到遠程分支了,提交時發現居然把緩存文件也列入了提交的範圍了,去.gitignore文件查看,發現

git版本管理實用筆記

1.git目前是世界上最先進的分散式版本管理器。 2.版本 控制: (1)集中式版本控制:集中存放在中央伺服器上,首先從中央伺服器上獲取最新的版本,完成自己的內容之後推送給中央伺服器。最大的特點是必須連網才能夠繼續工作。 (2)分散式版本控制:沒有所謂的中央伺服器,每個人的電腦都是一

使用git版本管理工具

git add 提交檔案 git commit -m "提交解釋" git push origin master 提交到主分支 2.生成ssh-key和新增ssh-key ssh-keygen -t rsa -C "[email protected]" ssh-add ~/.ssh/id_

Git--版本管理的使用及理解

如果多人合作時,git也是需要中間交換伺服器來解決衝突合併,這不還是集中式版本控制嗎? 而svn不是也可以將所有原始碼下載到本機,然後在本機修改,儲存在本機上,為什麼這個不能說是分散式,提交的時候不也是解決衝突合併就ok嗎? git和svn的區別: https://blog.csdn.n

Linux 下安裝Git 版本管理工具 使用記錄

Git -Version 檢視已經安裝的Git版本 預設1.7.x版本比較老 1.yum remove git 移除當前版本 2.安裝git依賴包    yum install curl-devel expat-devel gettext-devel openssl-devel zl

mac 上 IntelliJ IDEA git relocate 給 git 版本管理的專案更換個 git 專案地址

專案使用git管理(不是svn,有svn不用,非得再弄個git來管理專案,搞不懂為啥,純屬搞事情嘛。) 當git地址改變了該怎麼辦? 其實git遠端地址改變和idea沒有任何關係,idea上git裡面也沒有重新定位遠端地址的選項。 svn的選單裡面是有個 relocate 的選項的,

idea配置git版本管理

本文部分內容轉自博文:https://www.cnblogs.com/java-maowei/p/5950930.html 第一部分: 安裝 1. 下載地址:  https://git-scm.com/download/win; 如果速度慢, 使用 迅雷下載; 2.

Git版本管理使用

初次執行配置 配置 使用者名稱 git config --global user.name xxx 配置 郵箱 git config --global user.email xxx 檢視使用者名稱 git config user.name 開始正式使用

Git版本管理-Tony講義

這是一個有關版本管理的培訓課件,以Git版本管理為例,講述版本管理的歷史,為什麼選擇Git作為版本管理,Git基本操作,如新增,修改,提交,推送,下載等;Git高階操作,如衝突解決,里程碑,分支操作,遠端版本庫和補丁的提取和打補丁的方式。 這個課件通過業餘時間整理,花費了兩個

ubuntu 上git版本管理庫搭建攻略

GIT版本控制系統第一部分 基本概念版本庫:本地庫、公共庫每個開發人員在本地都有自己的版本庫,在伺服器上有一個公共的版本庫。所有的歷史記錄都儲存在本地庫中。向版本庫提交程式碼無須連線遠端版本庫而是記錄在本地庫中。版本庫中儲存什麼:和專案相關的所有檔案。工作目錄樹:又稱版本

Android Studio 使用Git 版本管理並提交到Github 詳解

開發的時候,一定會用到版本管理工具,常見的兩個分別是SVN 和 Git 。 SVN相對來說比較簡單,屬於集中式版本管理工具,簡單來說就是大家都往同一臺電腦(服務)上提交。 而Git 屬於分散式版本管理工具,每個人在自己的電腦上擁有一個版本倉庫。當然也可以提交到Github上

git 版本管理的說明

什麼是Git----------------->為什麼選擇Git----------------->如何安裝Git到MAC OS X------------------>如何使用Git 在使用Xcode如何利用git管理程式碼,這裡首先說明一下怎麼在Xco

Git版本管理之旅(一)—— Git簡介及架構淺析

背景與誕生 功能 架構 安裝 背景與誕生 1991年,Linus建立了開源的Linux; 2002年以前,世界各地的志願者把原始碼檔案通過diff的方式發給Linus,然後由Linus本人通過手工方式合併程式碼! Q:為什麼把L

idea新建的maven web專案配置git版本管理

一、首先在碼雲上註冊並新建一個專案:下面按如下配置即可:二、建立README.md檔案,內容為git上專案名稱三、建立.gitignore檔案,即git提交時忽略的檔案內容為:*.class #package file *.war *.ear #kdiff3 ignore

Git版本管理之旅(二)—— Git基本操作流程及相關命令

本章繼續上章的型別,介紹基於空專案的版本庫操作,本教程基於Ubuntu 建立版本庫 新增檔案 修改檔案 刪除檔案 版本回退 基本概念 管理以及撤銷修改 新增到遠端倉庫 從遠端倉庫克隆 建立版本庫 版本庫又名倉庫,英文名repository,可以

使用git版本管理工具上傳程式碼到碼雲

因工作需要使用程式碼管理工具。當然,程式碼管理是可以更方便,助於團隊的合作及程式碼的合併。但之前沒有實際操作過上傳和下載,下載只是壓縮包的直接下載,通過git工具使用命令下載還是第一次操作。 中間波折許多,嘗試多次未能完成,同事幫忙也沒搞定,幸好有一大神實際操作了一把,大

WebStorm建立nodejs Express工程(node js web 開發),並進行git版本管理

2. 填寫相關資訊(windows下node環境配置,可直接在官網下載安裝程式按照程式指示步驟安裝(我的node安裝到了D:/soft/node目錄下 了)) 3. 建立後通過快捷鍵Alt+1切換到專案檢視 4. 可點選執行,控制檯日誌輸出監聽埠3000