您好,登錄后才能下訂單哦!
一、單機上使用Git
#?yum?install?-y?git #?mkdir?/data/gitroot #?cd?/data/gitroot #?git?init???//初始化倉庫,初始化后ls?-la可以看到一個.git的目錄 在該目錄下,隨便寫點東西,vim?1.txt #?git?add?1.txt???//把1.txt添加到倉庫做標記 #?git?commit?-m?"add?1.txt"???//add完了必須要commit才算真正把文件提交到git倉庫里,-m指定解釋說明的信息。解釋說明一定要寫清楚。 報錯: ***?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???//查看當前倉庫中的狀態,比如是否有改動的文件 #?位于分支?master 無文件要提交,干凈的工作區 再次更改1.txt ?先不添加到git倉庫里,查看狀態 ?#?git?status? #?位于分支?master #?尚未暫存以備提交的變更: #???(使用?"git?add..."?更新要提交的內容) #???(使用?"git?checkout?--..."?丟棄工作區的改動) # # 修改:??????1.txt # 修改尚未加入提交(使用?"git?add"?和/或?"git?commit?-a") #?git?diff?1.txt???//相比較倉庫里面的版本,對比本次修改了什么內容。 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的內容 #?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??//將內容用一行顯示 c3792d659aba7feae2be7e09337067bfbf14db76?ch?1.txt?again???//前面的字符串為版本ID 158eee38da7accb5da0abcf5d8dd4afb2d5a587c?add?1.txt?again 7e55239fcf6283f801b2bb44e4f4feb163ef9406?add?1.txt [root@MRX?gitroot]#?git?reset?--hard?158eee38???//回退版本,后面跟的字符串可以是簡寫 HEAD?現在位于?158eee3?add?1.txt?again #?git?log?--pretty=oneline???//因為版本回退了,所以后面的版本沒有了 158eee38da7accb5da0abcf5d8dd4afb2d5a587c?add?1.txt?again 7e55239fcf6283f801b2bb44e4f4feb163ef9406?add?1.txt #?git?reflog???//查看所有歷史版本,可以根據歷史版本再恢復到后面的版本 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??//恢復1.txt 如果1.txt文件做了更改,做了add但是沒有做commit,再想回退到上一次提交的狀態, 可以使用git?reset?HEAD?1.txt???//這條命令可以把add的標記給它去掉 重置后撤出暫存區的變更: M 1.txt 再執行git?checkout?--?1.txt???//恢復成修改之前的內容,就是把代碼庫里面最新的文件搞回來。 刪除文件 #?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 ?如果連庫里的也刪掉了,要想再恢復,就git?log?--pretty=oneline看歷史版本,直接回退到上一個版本。
二、建立遠程倉庫
【本地項目推送到遠程】
1、首先到https://github.com注冊一個賬號。再點sign in登錄。
2、創建自己的git,點右上角加號,再點new repository。
3、數據庫名字自定義,比如叫apelearn,選擇public(公有),點 create repository。
4、添加密鑰key:右上角點自己頭像,選擇settings,左側選擇SSH and GPG keys。//加密鑰的目的是為了認證。
5、右側點New SSH key,把linux機器上的~/.ssh/id_rsa.pub內容粘貼到key里,這個是公鑰。如果沒有,就使用ssh-keygen命令生成。
6、到/tmp目錄下創建一個apelearn目錄,進入apelearn目錄。執行命令:
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/ //初始化以后會生成一個.git的目錄,ls?-la可以看到。 #?git?add?README.md #?git?commit?-m?"first?commit" #?git?remote?add?origin?https://github.com/yaoweiyaowei/apelearn.git???????//把當前倉庫里的東西推到遠程上去 #?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?設置為跟蹤來自?origin?的遠程分支?master。
7、把本地倉庫推送到遠程倉庫 git remote add origin https://github.com/yaoweiyaowei/apelearn.git ?//這一步是在遠程創建一個新的倉庫apelearn,名字盡量和本地的一致。
8、git push -u origin master ?//然后把本地的apelearn倉庫推送到遠程的apelearn。推送以后,到GitHub的apelearn倉庫里刷新一下,就可以看到README.md存在了。
下一次再推送,就可以直接 git push。
試驗:
寫一個1.txt,內容隨意。
#?vim?1.txt #?git?add?1.txt #?git?commit?-m?"add?1.txt" #?git?push
再到GitHub上倉庫里刷新則可以看到2.txt了。
三、克隆遠程倉庫
【把遠程的項目克隆到本地】
打開GitHub的一個倉庫,里面有一個綠色的圖標,寫著Clone or download,點開后,將鏈接復制,然后到home目錄下就可以使用克隆命令了。
#?cd?/home #?git?clone?git@github.com:yaoweiyaowei/lanmp.git?????//后面跟Git的地址。
它提示,會在這個當前/home目錄下初始化一個倉庫,并創建一個.git的目錄。
如果還沒有把公鑰上傳到GitHub上,也能克隆這個項目,可以讀,但是沒有權限寫。
#?cd?lanmp #?vim?README.md??//隨便加點東西 #?git?add?README.md #?git?commit?-m?"change?readme.md" #?git?push
再到GitHub的倉庫里刷新可以看到變動。
關于在服務端改動文件內容,需要注意瀏覽器的不同,QQ瀏覽器無法識別變更內容,不能改,Firefox或者Chrome都可以。
QQ瀏覽器在這里是灰色的,不可以更改。改動內容提交后,可以再次看到變更:
服務端改了內容后,想將客戶端的內容再更新,使用命令git pull,把它拉下來。
git push是往服務端上推。
git pull是往客戶端下拉。
如果從來沒有做過克隆,第一次做的時候要用git clone命令,SVN是checkout。
總結:
單擊上使用Git:
# yum install -y git
# git init ? //初始化倉庫
# git add 1.txt
# git commit -m "add 1.txt"
# git status ? ? ?//查看當前倉庫的狀態。
# git diff 1.txt ? //和倉庫里的版本對比,本次修改了什么內容。
# git log ? //查看所有變更記錄
# git log --pretty=oneline ? //將內容用一行顯示
# git reset --hard 158eee38 ? //回退版本
# git reflog ? ?//查看所有歷史版本
# git checkout -- 1.txt ? //不小心刪除了文件,再恢復文件
# git rm 1.txt ? //刪除文件
# git commit -m "delete 1.txt" ? //將庫里面的也刪掉
建立遠程倉庫:
1、登錄GitHub
2、創建一個數據庫(git)
3、添加密鑰ssh key
4、到客戶端的對應目錄下初始化倉庫
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 ? //在遠程創建一個新倉庫?
git push -u origin master
克隆遠程倉庫:
git clone命令,將遠程項目克隆到客戶端。后續用法一致,git add,git commit。
git push,往上推。
git pull,往下拉。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。