一、單機(jī)上使用Git
成都創(chuàng)新互聯(lián)是專業(yè)的桐梓網(wǎng)站建設(shè)公司,桐梓接單;提供成都網(wǎng)站制作、做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行桐梓網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
#?yum?install?-y?git #?mkdir?/data/gitroot #?cd?/data/gitroot #?git?init???//初始化倉庫,初始化后ls?-la可以看到一個(gè).git的目錄 在該目錄下,隨便寫點(diǎn)東西,vim?1.txt #?git?add?1.txt???//把1.txt添加到倉庫做標(biāo)記 #?git?commit?-m?"add?1.txt"???//add完了必須要commit才算真正把文件提交到git倉庫里,-m指定解釋說明的信息。解釋說明一定要寫清楚。 報(bào)錯(cuò): ***?Please?tell?me?who?you?are. Run ??git?config?--global?user.email?"you@example.com" ??git?config?--global?user.name?"Your?Name" to?set?your?account's?default?identity. Omit?--global?to?set?the?identity?only?in?this?repository. fatal:?unable?to?auto-detect?email?address?(got?'root@MRX.(none)') 解決方法: #?git?config?--global?user.name?"aming" #?git?config?--global?user.email?"youjian" 定義好你的名字和郵箱。 #?git?commit?-m?"add?1.txt" [master(根提交)?7e55239]?add?1.txt ?1?file?changed,?5?insertions(+) ?create?mode?100644?1.txt ? #?git?status???//查看當(dāng)前倉庫中的狀態(tài),比如是否有改動的文件 #?位于分支?master 無文件要提交,干凈的工作區(qū) 再次更改1.txt ?先不添加到git倉庫里,查看狀態(tài) ?#?git?status? #?位于分支?master #?尚未暫存以備提交的變更: #???(使用?"git?add..."?更新要提交的內(nèi)容) #???(使用?"git?checkout?--..."?丟棄工作區(qū)的改動) # # 修改:??????1.txt # 修改尚未加入提交(使用?"git?add"?和/或?"git?commit?-a") #?git?diff?1.txt???//相比較倉庫里面的版本,對比本次修改了什么內(nèi)容。 diff?--git?a/1.txt?b/1.txt index?958a6f4..100ff5b?100644 ---?a/1.txt +++?b/1.txt @@?-4,3?+4,4?@@?lehopigbnipa ?hjkasnklfejhuofj ?ioveripooabvo ?eovhsdidhbviabu +bviagb #?git?add?1.txt #?git?commit?-m?"add?1.txt?again"??//把前面未提交的提交一下 [master?7802c4f]?add?1.txt?again ?1?file?changed,?1?insertion(+) 再更改一下1.txt的內(nèi)容 #?git?add?1.txt? #?git?commit?-m?"ch?1.txt?again" [master?c3792d6]?ch?1.txt?again ?1?file?changed,?2?deletions(-) #?git?log??//查看所有變更記錄 commit?c3792d659aba7feae2be7e09337067bfbf14db76 Author:?aming//這里定義了名字和郵箱 Date:???Sat?Aug?31?20:38:58?2019?+0800 ????ch?1.txt?again commit?7802c4fbfb41a3426aec1e224c6b3b56b746ebfd Author:?amingDate:???Sat?Aug?31?20:37:12?2019?+0800 ????add?1.txt?again commit?7e55239fcf6283f801b2bb44e4f4feb163ef9406 Author:?amingDate:???Sat?Aug?31?20:22:09?2019?+0800 ????add?1.txt ?#?cat?/root/.gitconfig???//這里面顯示了名字和郵箱 [user] name?=?aming email?=?youjian #?git?log?--pretty=oneline??//將內(nèi)容用一行顯示 c3792d659aba7feae2be7e09337067bfbf14db76?ch?1.txt?again???//前面的字符串為版本ID 158eee38da7accb5da0abcf5d8dd4afb2d5a587c?add?1.txt?again 7e55239fcf6283f801b2bb44e4f4feb163ef9406?add?1.txt [root@MRX?gitroot]#?git?reset?--hard?158eee38???//回退版本,后面跟的字符串可以是簡寫 HEAD?現(xiàn)在位于?158eee3?add?1.txt?again #?git?log?--pretty=oneline???//因?yàn)榘姹净赝肆耍院竺娴陌姹緵]有了 158eee38da7accb5da0abcf5d8dd4afb2d5a587c?add?1.txt?again 7e55239fcf6283f801b2bb44e4f4feb163ef9406?add?1.txt #?git?reflog???//查看所有歷史版本,可以根據(jù)歷史版本再恢復(fù)到后面的版本 158eee3?HEAD@{0}:?reset:?moving?to?158eee38 c3792d6?HEAD@{1}:?commit:?ch?1.txt?again 7802c4f?HEAD@{2}:?commit:?add?1.txt?again 158eee3?HEAD@{3}:?commit:?add?1.txt?again 7e55239?HEAD@{4}:?commit?(initial):?add?1.txt #?git?reset?--hard?c3792d6 git?log?--pretty=oneline??//后面的版本就都回來了 #?rm?-f?1.txt??//不小心刪除了 #?git?checkout?--?1.txt??//恢復(fù)1.txt 如果1.txt文件做了更改,做了add但是沒有做commit,再想回退到上一次提交的狀態(tài), 可以使用git?reset?HEAD?1.txt???//這條命令可以把a(bǔ)dd的標(biāo)記給它去掉 重置后撤出暫存區(qū)的變更: M 1.txt 再執(zhí)行g(shù)it?checkout?--?1.txt???//恢復(fù)成修改之前的內(nèi)容,就是把代碼庫里面最新的文件搞回來。 刪除文件 #?git?rm?1.txt rm?'1.txt' #?git?commit?-m?"delete?1.txt"???//把庫里面的也刪掉,提交一次。 [master?742df99]?delete?1.txt ?1?file?changed,?5?deletions(-) ?delete?mode?100644?1.txt ?如果連庫里的也刪掉了,要想再恢復(fù),就git?log?--pretty=oneline看歷史版本,直接回退到上一個(gè)版本。
二、建立遠(yuǎn)程倉庫
【本地項(xiàng)目推送到遠(yuǎn)程】
1、首先到https://github.com注冊一個(gè)賬號。再點(diǎn)sign in登錄。
2、創(chuàng)建自己的git,點(diǎn)右上角加號,再點(diǎn)new repository。
3、數(shù)據(jù)庫名字自定義,比如叫apelearn,選擇public(公有),點(diǎn) create repository。
4、添加密鑰key:右上角點(diǎn)自己頭像,選擇settings,左側(cè)選擇SSH and GPG keys。//加密鑰的目的是為了認(rèn)證。
5、右側(cè)點(diǎn)New SSH key,把linux機(jī)器上的~/.ssh/id_rsa.pub內(nèi)容粘貼到key里,這個(gè)是公鑰。如果沒有,就使用ssh-keygen命令生成。
6、到/tmp目錄下創(chuàng)建一個(gè)apelearn目錄,進(jìn)入apelearn目錄。執(zhí)行命令:
echo "# apelearn" >> README.md?
git init?
git add README.md?
git commit -m "first commit"
#?echo?"#?apelearn"?>>?README.md #?git?init 初始化空的?Git?版本庫于?/tmp/apelearn/.git/ //初始化以后會生成一個(gè).git的目錄,ls?-la可以看到。 #?git?add?README.md #?git?commit?-m?"first?commit" #?git?remote?add?origin?https://github.com/yaoweiyaowei/apelearn.git???????//把當(dāng)前倉庫里的東西推到遠(yuǎn)程上去 #?git?push?-u?origin?master ?Username?for?'https://github.com':?yaoweiyaowei???????????//輸入你GitHub的用戶名和密碼。 Password?for?'https://yaoweiyaowei@github.com':? Counting?objects:?3,?done. Writing?objects:?100%?(3/3),?209?bytes?|?0?bytes/s,?done. Total?3?(delta?0),?reused?0?(delta?0) To?https://github.com/yaoweiyaowei/apelearn.git ?*?[new?branch]??????master?->?master 分支?master?設(shè)置為跟蹤來自?origin?的遠(yuǎn)程分支?master。
7、把本地倉庫推送到遠(yuǎn)程倉庫git remote add origin https://github.com/yaoweiyaowei/apelearn.git ?//這一步是在遠(yuǎn)程創(chuàng)建一個(gè)新的倉庫apelearn,名字盡量和本地的一致。
8、git push -u origin master ?//然后把本地的apelearn倉庫推送到遠(yuǎn)程的apelearn。推送以后,到GitHub的apelearn倉庫里刷新一下,就可以看到README.md存在了。
下一次再推送,就可以直接 git push。
試驗(yàn):
寫一個(gè)1.txt,內(nèi)容隨意。
#?vim?1.txt #?git?add?1.txt #?git?commit?-m?"add?1.txt" #?git?push
再到GitHub上倉庫里刷新則可以看到2.txt了。
三、克隆遠(yuǎn)程倉庫
【把遠(yuǎn)程的項(xiàng)目克隆到本地】
打開GitHub的一個(gè)倉庫,里面有一個(gè)綠色的圖標(biāo),寫著Clone or download,點(diǎn)開后,將鏈接復(fù)制,然后到home目錄下就可以使用克隆命令了。
#?cd?/home #?git?clone?git@github.com:yaoweiyaowei/lanmp.git?????//后面跟Git的地址。
它提示,會在這個(gè)當(dāng)前/home目錄下初始化一個(gè)倉庫,并創(chuàng)建一個(gè).git的目錄。
如果還沒有把公鑰上傳到GitHub上,也能克隆這個(gè)項(xiàng)目,可以讀,但是沒有權(quán)限寫。
#?cd?lanmp #?vim?README.md??//隨便加點(diǎn)東西 #?git?add?README.md #?git?commit?-m?"change?readme.md" #?git?push
再到GitHub的倉庫里刷新可以看到變動。
關(guān)于在服務(wù)端改動文件內(nèi)容,需要注意瀏覽器的不同,QQ瀏覽器無法識別變更內(nèi)容,不能改,F(xiàn)irefox或者Chrome都可以。
QQ瀏覽器在這里是灰色的,不可以更改。改動內(nèi)容提交后,可以再次看到變更:
服務(wù)端改了內(nèi)容后,想將客戶端的內(nèi)容再更新,使用命令git pull,把它拉下來。
git push是往服務(wù)端上推。
git pull是往客戶端下拉。
如果從來沒有做過克隆,第一次做的時(shí)候要用git clone命令,SVN是checkout。
總結(jié):
單擊上使用Git:
# yum install -y git
# git init ? //初始化倉庫
# git add 1.txt
# git commit -m "add 1.txt"
# git status ? ? ?//查看當(dāng)前倉庫的狀態(tài)。
# git diff 1.txt ? //和倉庫里的版本對比,本次修改了什么內(nèi)容。
# git log ? //查看所有變更記錄
# git log --pretty=oneline ? //將內(nèi)容用一行顯示
# git reset --hard 158eee38 ? //回退版本
# git reflog ? ?//查看所有歷史版本
# git checkout -- 1.txt ? //不小心刪除了文件,再恢復(fù)文件
# git rm 1.txt ? //刪除文件
# git commit -m "delete 1.txt" ? //將庫里面的也刪掉
建立遠(yuǎn)程倉庫:
1、登錄GitHub
2、創(chuàng)建一個(gè)數(shù)據(jù)庫(git)
3、添加密鑰ssh key
4、到客戶端的對應(yīng)目錄下初始化倉庫
5、
echo "# 11111" >> README.md?
git init?
git add README.md?
git commit -m "first commit"?
git remote add origin git@github.com:yaoweiyaowei/11111.git ? //在遠(yuǎn)程創(chuàng)建一個(gè)新倉庫?
git push -u origin master
克隆遠(yuǎn)程倉庫:
git clone命令,將遠(yuǎn)程項(xiàng)目克隆到客戶端。后續(xù)用法一致,git add,git commit。
git push,往上推。
git pull,往下拉。