1.創(chuàng)建版本庫
(1)首先選擇一個(gè)合適的地方,創(chuàng)建目錄
(2)通過git init命令把這個(gè)目錄變成Git可以管理的倉庫:
2.講文件添加到版本庫
(1)編寫readme.txt
(2)用命令git add告訴Git感昼,把文件添加到倉庫
(3)用命令git commit告訴Git,把文件提交到倉庫
備注:git commit命令赊豌,-m后面輸入的是本次提交的說明湾蔓,可以輸入任意內(nèi)容途样,當(dāng)然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動(dòng)記錄佛寿。一個(gè)一次add多個(gè)文件幌墓,然后一次commit
git status命令可以讓我們時(shí)刻掌握工作區(qū)的狀態(tài)
git diff顧名思義就是查看difference,查看修改的內(nèi)容
3.提交修改文件
(1)git add
(2)git commit
備注:在修改文檔未提交時(shí),查看git status命令得到反饋readme.txt被修改過了狗准,但還沒有準(zhǔn)備提交的修改克锣。在文檔添加后,即完成(1)腔长,使用git status告訴我們袭祟,將要被提交的修改包括readme.txt,提交后捞附,即完成(2)后巾乳,我們再用git status命令看看倉庫的當(dāng)前狀態(tài),此時(shí)Git告訴我們當(dāng)前沒有需要提交的修改鸟召,而且胆绊,工作目錄是干凈(working directory clean)的
4.回退
commit相當(dāng)于快照,一旦你把文件改亂了欧募,或者誤刪了文件压状,還可以從最近的一個(gè)commit恢復(fù),然后繼續(xù)工作跟继,而不是把幾個(gè)月的工作成果全部丟失
git log命令顯示從最近到最遠(yuǎn)的提交日志种冬,我們可以看到3次提交,最近的一次是append GPL舔糖,上一次是add distributed娱两,最早的一次是wrote a readme file。
基礎(chǔ)知識:Git必須知道當(dāng)前版本是哪個(gè)版本金吗,在Git中十兢,用HEAD表示當(dāng)前版本趣竣,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣),上一個(gè)版本就是HEAD^旱物,上上一個(gè)版本就是HEAD^^遥缕,當(dāng)然往上100個(gè)版本寫100個(gè)^比較容易數(shù)不過來,所以寫成HEAD~100宵呛。
使用git reset完成版本的回退通砍,命令如下:
$ git reset--hard HEAD^ ? //回到上一個(gè)版本
HEADisnowatea34578adddistributed
備注:回退后再log中查不到未來的信息了,也有辦法恢復(fù)
(1)知道append GPL的commit id烤蜕,此時(shí)可以通過git reset 即可回到未來狀態(tài)
(2)不知道append GPL的commit id,使用git reflog查找之前的命令迹冤,找到commit id 即可回到未來狀態(tài)
add是將文件存在暫存區(qū)讽营,commit是將文件放入master中,也即放入當(dāng)前的分支中
commit只提交當(dāng)前被add的操作
5.撤銷修改的操作
場景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容泡徙,想直接丟棄工作區(qū)的修改時(shí)橱鹏,用命令git checkout -- file。
場景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容堪藐,還添加到了暫存區(qū)時(shí)莉兰,想丟棄修改,分兩步礁竞,第一步用命令git reset HEAD file糖荒,就回到了場景1,第二步按場景1操作模捂。
場景3:已經(jīng)提交了不合適的修改到版本庫時(shí)捶朵,想要撤銷本次提交,參考版本回退一節(jié)狂男,不過前提是沒有推送到遠(yuǎn)程庫
6综看、文件刪除
(1)本地刪除,版本庫也要?jiǎng)h除岖食,操作為:git rm刪掉红碑,并且git commit
(2)本地刪除,版本庫存在泡垃,要恢復(fù)文件析珊,操作為:git checkout,本質(zhì)是讓版本庫中的文件代替當(dāng)前工作區(qū)的文件兔毙,此時(shí)工作區(qū)文件恢復(fù)了唾琼,但最新一次的修改未保存
GitHub作為git的遠(yuǎn)程倉虧,可以設(shè)置澎剥,完成SSH加密傳輸
也可以自己創(chuàng)建Git遠(yuǎn)程庫
7.多人協(xié)作
(1).當(dāng)一個(gè)成員創(chuàng)建了一個(gè)項(xiàng)目時(shí)锡溯,其他人使用git clone克隆一個(gè)本地庫赶舆,命令為:$ git clone git@github.com:michaelliao/gitskills.gi
注意把Git庫的地址換成你自己的,然后進(jìn)入對應(yīng)目錄查看祭饭,即可看到該項(xiàng)目中的文件
(2)多人協(xié)做時(shí)芜茵,可以創(chuàng)建自己的分支,來達(dá)到既保留自己當(dāng)前的進(jìn)度倡蝙,又不影響別人工作的效果九串。
操作步驟:
首先創(chuàng)建自己的分支,然后切換到新創(chuàng)建的分支寺鸥。命令為:
$ git checkout -b dev? //創(chuàng)建+切換到當(dāng)前分支
可以用git branch命令查看當(dāng)前分支進(jìn)行驗(yàn)證猪钮,得到的結(jié)果當(dāng)前分支前面會(huì)標(biāo)一個(gè)*號。
然后切換到分支后可以進(jìn)行文件的修改胆建,然后通過add和submit完成修改提交
接著切換到master分支(所有人在的分支)烤低,并將dev分支上的內(nèi)容合并到master上,命令為;
$ git checkout master? //回到master分支
$ git merge dev? ? ? ? //合并到master分支上
最后可以刪除dev分支笆载,再次查看當(dāng)前的分支? 命令為:
$ git branch -d dev? ? //刪除dev分支
$ git branch? ? ? ? ? //查看當(dāng)前分支
8.打標(biāo)簽
標(biāo)簽的作用是將commit id 轉(zhuǎn)換成標(biāo)簽扑馁,便于查找,命令為:
$git tag v1.0 ? ? ? ? ?//默認(rèn)標(biāo)簽是打在最新提交的commit上的
給歷史的commit提交標(biāo)簽凉驻,需要找到之前的comment ID腻要,然后使用命令:
$git tag v0.96224937? //其中96224937為commit ID
完成過程中可以通過git tag命令查當(dāng)前的tag
還可以創(chuàng)建帶有說明的標(biāo)簽,用-a指定標(biāo)簽名涝登,-m指定說明文字雄家。例如:
$git tag -a v0.1-m"version 0.1 released"3628164
命令git push origin 可以推送一個(gè)本地標(biāo)簽;
命令git push origin --tags可以推送全部未推送過的本地標(biāo)簽缀拭;
命令git tag -d 可以刪除一個(gè)本地標(biāo)簽咳短;
命令git push origin :refs/tags/可以刪除一個(gè)遠(yuǎn)程標(biāo)簽