前言
Git是一款免費(fèi)谐岁、開(kāi)源的分布式版本控制系統(tǒng)墨礁,用于敏捷高效地處理任何或小或大的項(xiàng)目幢竹。
git的常用命令
1.git? init 【創(chuàng)建一個(gè)空的Git倉(cāng)庫(kù)或重新初始化一個(gè)現(xiàn)有倉(cāng)庫(kù)】
2.git? clone ? 【從現(xiàn)有的倉(cāng)庫(kù)拷貝一份到本地,但是clone下來(lái)的只是master分支恩静,沒(méi)有其它分支】
3.git? branch? 分支名A? ? 【創(chuàng)建分支A】
? git? checkout? 分支名A? ? 從【當(dāng)前分支切換到分支A】
? git? checkout? -b? 分支名A? ? 【創(chuàng)建分支A并且切換到分支A】
? git? checkout? -b? ? 分支名A? 【start_point】? ? 【指定新建的分支A是基于start_point這個(gè)節(jié)點(diǎn)焕毫,并且切換到這個(gè)分支A】
4.git? ? branch? ? 【查看本地的分支】?
? ?git? ? branch? -r? ? 【查看遠(yuǎn)端分支】?
? ?git? ? branch? -a? ? 【查看所有分支蹲坷,包括本地和遠(yuǎn)程的】
5.git? ? fetch ?【用于從另一個(gè)存儲(chǔ)庫(kù)下載對(duì)象和引用,遠(yuǎn)程跟蹤分支已更新(Git術(shù)語(yǔ)叫做commit)邑飒,需要將這些更新取回本地循签,這時(shí)就要用到git fetch命令】
? ? git fetch <遠(yuǎn)程主機(jī)名> ? 【將某個(gè)遠(yuǎn)程主機(jī)的更新,全部取回本地疙咸,可以簡(jiǎn)寫(xiě)為git fetch】
? ?git fetch <遠(yuǎn)程主機(jī)名> <分支名> ? 【取回特定分支的更新】
? ?eg:git fetch origin master ?【取回origin主機(jī)的master分支县匠,所取回的更新,在本地主機(jī)上要用”遠(yuǎn)程主機(jī)名/分支名”的形式讀取撒轮。比如origin主機(jī)的master分支乞旦,就可以用origin/master】
6.git? ? pull? [options] [<repository> [<refspec>…]] ?【取回遠(yuǎn)程主機(jī)某個(gè)分支的更新,再與本地的指定分支合并】
eg:git pull origin next:master【取回origin主機(jī)的next分支题山,與本地的master分支合并】
? ? ? ? git pull origin next【取回origin/next分支杆查,再與當(dāng)前分支合并,備注:如果遠(yuǎn)程分支(next)要與當(dāng)前分支合并臀蛛,則冒號(hào)后面的部分可以省略】
? ? ? ??git pull origin【本地的當(dāng)前分支自動(dòng)與對(duì)應(yīng)的origin主機(jī)”追蹤分支”(remote-tracking branch)進(jìn)行合并亲桦。備注:在某些場(chǎng)合,Git會(huì)自動(dòng)在本地分支與遠(yuǎn)程分支之間浊仆,建立一種追蹤關(guān)系(tracking)客峭。比如,在git clone的時(shí)候抡柿,所有本地分支默認(rèn)與遠(yuǎn)程主機(jī)的同名分支舔琅,建立追蹤關(guān)系,也就是說(shuō)洲劣,本地的master分支自動(dòng)”追蹤”origin/master分支备蚓。如果當(dāng)前分支與遠(yuǎn)程分支存在追蹤關(guān)系,git pull就可以省略遠(yuǎn)程分支名囱稽〗汲ⅲ】
? ? ? ??git pull ?【當(dāng)前分支自動(dòng)與唯一一個(gè)追蹤分支進(jìn)行合并。備注:如果當(dāng)前分支只有一個(gè)追蹤分支战惊,連遠(yuǎn)程主機(jī)名都可以省略】
7.git fetch和git pull的區(qū)別:
? ?git fetch:相當(dāng)于是從遠(yuǎn)程獲取最新版本到本地流昏,不會(huì)自動(dòng)合并。
? ?git pull:相當(dāng)于是從遠(yuǎn)程獲取最新版本并merge到本地吞获,相當(dāng)于git fetch和git merge
8.git? ? log ?【用于顯示提交日志信息】
9.git tag ? 【列顯已有的標(biāo)簽】
10.git? ? diff 【用于顯示提交和工作樹(shù)等之間的更改】
? ?eg:git diff origin/release_5.0.0 ?origin/release_5.1.0 ?【可以顯示兩個(gè)分支之間的代碼差異】
? ? ? ? ? ?git diff origin/release_5.0.0 origin/release_5.1.0 --stat ? 【顯示兩個(gè)分支之間的代碼都在哪里文件上有差異】
如何使用git命令從倉(cāng)庫(kù)拉取代碼况凉,以贛州為例
前提條件:
1.拉取代碼首先要有g(shù)itlab的拉取代碼的權(quán)限,可以找滿(mǎn)哥加各拷。
2.配置好ssl協(xié)議刁绒。
拉取步驟:
1.先在本地建一個(gè)存放代碼的文件夾,例如我的文件夾路徑是/Users/yunhuizhi/Documents/ganzhou
2.cd? /Users/yunhuizhi/Documents/ganzhou? 【進(jìn)入贛州這個(gè)文件夾】
3.? git? clone? http://10.20.11.218/FFProject/App_IOS.git
? http://10.20.11.218/FFProject/App_IOS.git為倉(cāng)庫(kù)地址烤黍,可以在構(gòu)建站查看知市,此條命令的含義按照以上git命令的描述就是把倉(cāng)庫(kù)的代碼復(fù)制一份到本地傻盟,復(fù)制完成后可以看到文件夾下多了一個(gè)App_IOS的文件夾。
4.cd App_IOS? 進(jìn)入這個(gè)文件夾初狰,可以使用git branch -r查看遠(yuǎn)端所有的分支莫杈,并且可以看到目前默認(rèn)的當(dāng)前分支是master_dev。
5.git? checkout? -b? bank_ganzhou? origin/bank_ganzhou
在遠(yuǎn)程贛州的分支上新建一個(gè)本地的贛州分支并切換到贛州分支上奢入,建完以后可以git branch查看一下筝闹。
6.git? pull ?從遠(yuǎn)程主機(jī)拉取贛州分支上最新的更新與本地的贛州分支合并
7../fmanager? init ? ?重新初始化主工程和所有子模塊的代碼,這步只需要第一次的時(shí)候用腥光,后續(xù)再更新就不需要了,看到動(dòng)物圖案的就是初始化完成了关顷。
7../fmanager ?update ? 初始化完成后,再更新整個(gè)倉(cāng)庫(kù)的代碼就好了