快速學會使用Git

快速學會使用Git

git是什么?

Git是一款免費、開源的分布式版本控制系統(tǒng)荞胡,用于敏捷高效地處理任何或小或大的項目。
對于開發(fā)者的我們來說,沒有必要花費太多時間去把git學透,因為可能你學會了,也用不到,我們只需要學會一些常用的指令就可以了.

git的優(yōu)勢在哪里?

之前主流的管理工具就是Git和Svn,那么Git相比與Svn它的有何優(yōu)勢呢?

  • Git是分布式,而Svn是集中式不是分布式的,那么分布式又是什么?分布式就是好比每個人都是一個獨立的系統(tǒng)可以獨立運轉(zhuǎn),然后可以在自己的本地對項目進行有效的控制,而Svn在沒有網(wǎng)絡(luò)的情況下,在本地不能像Git一樣靈活.

  • Git沒有一個全局版本號,而SVN有:目前為止這是跟SVN相比Git缺少的最大的一個特征圆凰。

  • (commit)提交的方式也是Git優(yōu)于Svn的一個地方,Svn在沒有網(wǎng)絡(luò)的情況下是沒有辦法提交的,Git提交是在提交在本地倉庫,而與遠程倉庫的交互(項目倉庫)是進行"推"(Git push),也就是把本地的代碼更新到項目倉庫里面铸敏。

  • GIT分支和SVN的分支不同:
    分支在SVN中一點不特別缚忧,就是版本庫中的另外的一個目錄。如果你想知道是否合并了一個分支杈笔,你需要手工運行像這樣的命令svn propget svn:mergeinfo闪水,來確認代碼是否被合并。
    然而蒙具,處理GIT的分支卻是相當?shù)暮唵魏陀腥で蛴堋D憧梢詮耐粋€工作目錄下快速的在幾個分支間切換。你很容易發(fā)現(xiàn)未被合并的分支禁筏,你能簡單而快捷的合并這些文件持钉。
    Git鼓勵分Branch,而SVN篱昔,說實話每强,我用Branch的次數(shù)還挺少的,SVN自帶的Branch merge我還真沒用過州刽,有merge時用的是Beyond Compare工具合并后再Commit的空执;

  • GIT的內(nèi)容完整性要優(yōu)于SVN:
    GIT的內(nèi)容存儲使用的是SHA-1哈希算法。這能確保代碼內(nèi)容的完整性穗椅,確保在遇到磁盤故障和網(wǎng)絡(luò)問題時降低對版本庫的破壞辨绊。

  • Git下載下來后,在本地不必聯(lián)網(wǎng)就可以看到所有的log匹表,很方便學習门坷,SVN卻需要聯(lián)網(wǎng);

開始Git操作

配置用戶名和郵件

打開git bash 配置命令

git config --global user.name "您的用戶名"

git config --global user.email "您的郵箱"

Git創(chuàng)建版本庫:

1. 找到一個放置項目的文件夾
2. 然后右鍵點擊鼠標Git Bash Here 在命令行里面輸入git init    

版本庫就創(chuàng)建好了
如果你沒有看到.git目錄桑孩,那是因為這個目錄默認是隱藏的拜鹤,用ls -ah命令就可以看見。

刪除遠程倉庫: git  remote rm test

關(guān)聯(lián)/克隆遠程倉庫

Git支持多種協(xié)議流椒,包括https敏簿,但通過ssh支持的原生git協(xié)議速度最快。

克隆:

1.使用git clone 加上遠程倉庫的地址    就可以克隆項目了

(如果出現(xiàn)ssl認證錯誤輸入下面命令)
git config --global http.sslVerify false

關(guān)聯(lián):

1. 要關(guān)聯(lián)一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git惯裕;

2. 關(guān)聯(lián)后温数,使用命令git push -u origin master第一次推送master分支的所有內(nèi)容;

3.此后蜻势,每次本地提交后撑刺,只要有必要,就可以使用命令git push origin master推送最新修改握玛;

4.查看修改內(nèi)容(工作區(qū)和倉庫的區(qū)別): git diff (file)

5.查看版本(參數(shù)可以簡化版本信息,commit id和備注):
git log --pretty=oneline

創(chuàng)建合并分支:

查看本地分支:git branch

查看遠程分支:  git branch -r

查看所有分支:  git branch -a

創(chuàng)建分支:git branch <name>

創(chuàng)建遠程倉庫分支:git push origin <本地分支名> : <遠程分支名>   

切換分支:git checkout <name>

創(chuàng)建+切換分支:git checkout -b <name>

合并某分支到當前分支:git merge <name>

刪除分支:git branch -d <name>

刪除遠程分支:git push origin --delete <name>

用git log --graph命令可以看到分支合并圖

git cherry-pick  <name>   也可以用來合并分支

git cherry-pick <commitid>  合并某一次提交記錄的代碼

建立本地分支和遠程分支的關(guān)聯(lián),使用:
git branch --set-upstream branch-name  origin/branch-name;

再合并分支的時候可能有的小伙伴會出現(xiàn)沖突的情況這個時候應(yīng)該解決沖突然后 通過 git status 查看通途文件解決以后然后在添加提交就可以了
當工作沒有完成時够傍,又有其他事情出現(xiàn),這個時候可以先把工作現(xiàn)場git stash一下,然后去其他事情挠铲,完成后冕屯,再git stash pop,回到工作現(xiàn)場.

推送分支 :

就是把該分支上所有本地提交到遠程庫中拂苹,推送時安聘,要指定本地分支,這樣瓢棒,Git就會把該分支推送到遠程庫對應(yīng)的遠程分支上:
首先浴韭,可以試圖用git push origin branch-name推送自己的修改.
如果推送失敗,則因為遠程分支比你的本地更新早脯宿,需要先用git pull試圖合并念颈。
如果合并有沖突,則需要解決沖突连霉,并在本地提交舍肠。再用git push origin branch-name推送。

多人協(xié)作:

當你從遠程庫克隆時候窘面,實際上Git自動把本地的master分支和遠程的master分支對應(yīng)起來了,并且遠程庫的默認名稱是origin叽躯。

要查看遠程庫的信息 使用 git remote
要查看遠程庫的詳細信息 使用 git remote –v

標簽

Git設(shè)置標簽很簡單

命令git tag <name>用于新建一個標簽财边,默認為HEAD,也可以指定一個commit id点骑;

git tag -a <tagname> -m "blablabla..."可以指定標簽信息酣难;

git tag -s <tagname> -m "blablabla..."可以用PGP簽名標簽;

命令git tag可以查看所有標簽黑滴。

命令git push origin <tagname>可以推送一個本地標簽憨募;

命令git push origin --tags可以推送全部未推送過的本地標簽;

命令git tag -d <tagname>可以刪除一個本地標簽袁辈;

命令git push origin :refs/tags/<tagname>可以刪除一個遠程標簽菜谣。

項目管理

  1. 版本回退

     HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭尾膊,使用命令git reset --hard commit_id媳危。
    
     穿梭前,用git log可以查看提交歷史冈敛,以便確定要回退到哪個版本待笑。
    
     要重返未來,用git reflog查看命令歷史抓谴,以便確定要回到未來的哪個版本暮蹂。
    
  2. 撤銷修改刪除

     1.當你改亂了工作區(qū)某個文件的內(nèi)容,想直接丟棄工作區(qū)的修改時癌压,用命令git checkout -- file仰泻。
    
     2.當你不但改亂了工作區(qū)某個文件的內(nèi)容,還添加到了暫存區(qū)時措拇,想丟棄修改我纪,分兩步,第一步用命令git reset HEAD file丐吓,浅悉,第二步按1操作。
    
     3.命令git rm用于刪除一個文件券犁。
    

Git基本常用命令如下:

mkdir: XX (創(chuàng)建一個空目錄 XX指目錄名)

pwd: 顯示當前目錄的路徑术健。

git init 把當前的目錄變成可以管理的git倉庫,生成隱藏.git文件粘衬。

git add XX 把xx文件添加到暫存區(qū)去荞估。

git commit –m “XX” 提交文件 –m 后面的是注釋。

git status 查看倉庫狀態(tài)

git diff XX 查看XX文件修改了那些內(nèi)容

git log 查看歷史記錄

git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一個版本

(如果想回退到100個版本稚新,使用git reset –hard HEAD~100 )

cat XX 查看XX文件內(nèi)容

git reflog 查看歷史記錄的版本號id

git checkout -- XX 把XX文件在工作區(qū)的修改全部撤銷勘伺。

git rm XX 刪除XX文件

git remote add origin <倉庫地址> 關(guān)聯(lián)一個遠程庫

git push –u(第一次要用-u 以后不需要) origin master 把當前master分支推送到遠程庫

git clone <倉庫地址> 從遠程庫中克隆

git checkout –b dev 創(chuàng)建dev分支 并切換到dev分支上

git branch 查看當前所有的分支

git checkout master 切換回master分支

git merge dev 在當前的分支上合并dev分支

git branch –d dev 刪除dev分支

git branch name 創(chuàng)建分支

git stash 把當前的工作隱藏起來 等以后恢復(fù)現(xiàn)場后繼續(xù)工作

git stash list 查看所有被隱藏的文件列表

git stash apply 恢復(fù)被隱藏的文件,但是內(nèi)容不刪除

git stash drop 刪除文件

git stash pop 恢復(fù)文件的同時 也刪除文件

git remote 查看遠程庫的信息

git remote –v 查看遠程庫的詳細信息

git push origin master Git會把master分支推送到遠程庫對應(yīng)的遠程分支上

如有更好的建議提議,可以發(fā)到我的郵箱diosamolee2014@gmail.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末褂删,一起剝皮案震驚了整個濱河市飞醉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屯阀,老刑警劉巖缅帘,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異难衰,居然都是意外死亡钦无,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門盖袭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來失暂,“玉大人彼宠,你說我怎么就攤上這事∪は” “怎么了兵志?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宣肚。 經(jīng)常有香客問我想罕,道長,這世上最難降的妖魔是什么霉涨? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任按价,我火速辦了婚禮,結(jié)果婚禮上笙瑟,老公的妹妹穿的比我還像新娘楼镐。我一直安慰自己,他們只是感情好往枷,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布框产。 她就那樣靜靜地躺著,像睡著了一般错洁。 火紅的嫁衣襯著肌膚如雪秉宿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天屯碴,我揣著相機與錄音描睦,去河邊找鬼。 笑死导而,一個胖子當著我的面吹牛忱叭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播今艺,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼韵丑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了虚缎?” 一聲冷哼從身側(cè)響起埂息,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎遥巴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體享幽,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡铲掐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了值桩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摆霉。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出携栋,到底是詐尸還是另有隱情搭盾,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布婉支,位于F島的核電站鸯隅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏向挖。R本人自食惡果不足惜蝌以,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望何之。 院中可真熱鬧跟畅,春花似錦、人聲如沸溶推。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蒜危。三九已至虱痕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舰褪,已是汗流浹背皆疹。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留占拍,地道東北人略就。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像晃酒,于是被迫代替她去往敵國和親表牢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git贝次,從https:/...
    落魂灬閱讀 12,664評論 4 54
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評論 9 163
  • 夜晚崔兴,空中一輪月 靜思,霜鬢點斑白 木榻蛔翅,簾卷幾薄紗 犬吠敲茄,溪澗滴青露 云邊,絲縷皺舊顏 昏暗的湖邊柳燈 照明了路...
    終南山下玩泥巴閱讀 178評論 0 1
  • 他曾說過,如果全世界背叛了你笋轨,我會站在你身后背叛全世界秆剪。 他曾說過赊淑,我不怕等,我只怕等到盡頭沒有你仅讽。 他曾說過陶缺,天...
    Stranger_o閱讀 212評論 0 2
  • 1)今天在店里工作的時候,想著明天要包餃子給家人洁灵,回家走到小區(qū)門口的時候就看見了一大伯賣新鮮的韭菜饱岸,哈哈~開心宇宙...
    不器zlj閱讀 176評論 0 3