一、第一種方法:
1.首先你需要一個(gè)github賬號(hào),所以還沒(méi)有的話先去注冊(cè)吧!
https://github.com/
我們使用git需要先安裝git工具,這里給出下載地址,下載后一路(傻瓜式安裝)直接安裝即可:
https://git-for-windows.github.io/
2.登陸后,進(jìn)入Github首頁(yè),點(diǎn)擊New repository新建一個(gè)項(xiàng)目
?3.填寫(xiě)相應(yīng)信息后點(diǎn)擊create repository即可?
Repository name: 倉(cāng)庫(kù)名稱(chēng)(輸入名字,最好不要使用中文)
Description(可選): 倉(cāng)庫(kù)描述介紹
Public,?Private?: 倉(cāng)庫(kù)權(quán)限(公開(kāi)共享,私有或指定合作者)
Initialize this repository with a README: 添加一個(gè)README.md
gitignore: 不需要進(jìn)行版本管理的倉(cāng)庫(kù)類(lèi)型,對(duì)應(yīng)生成文件.gitignore
license: 證書(shū)類(lèi)型,對(duì)應(yīng)生成文件LICENSE
4.創(chuàng)建成功以后,界面如下,copy這個(gè)地址備用。
5.接下來(lái)就到本地操作了,首先右鍵你的項(xiàng)目,如果你之前安裝git成功的話,右鍵會(huì)出現(xiàn)兩個(gè)新選項(xiàng),分別為Git Gui Here,Git Bash Here,這里我們選擇Git Bash Here,進(jìn)入如下界面,Test_Bluetooth即為我的項(xiàng)目名。
?
6.接下來(lái)輸入如下代碼(關(guān)鍵步驟),把github上面的倉(cāng)庫(kù)克隆到本地
git clone https://github.com/CKTim/BlueTooth.git(https://github.com/CKTim/BlueTooth.git替換成你之前復(fù)制的地址)
?
?7.這個(gè)步驟以后你的本地項(xiàng)目文件夾下面就會(huì)多出個(gè)文件夾,該文件夾名即為你github上面的項(xiàng)目名,如圖我多出了個(gè)Test文件夾,我們把本地項(xiàng)目文件夾下的所有文件(除了新多出的那個(gè)文件夾不用),其余都復(fù)制到那個(gè)新多出的文件夾下,
?
8.接著繼續(xù)輸入命令 cd Test,進(jìn)入Test文件夾
?
9.接下來(lái)依次輸入以下代碼即可完成其他剩余操作:
git add *? ? (注:別忘記后面的.,此操作是把Test文件夾下面的文件都添加進(jìn)來(lái))
git commit ?-m ?"提交信息" ?(注:“提交信息”里面換成你需要,如“first commit”)
git push -u origin master ? (注:此操作目的是把本地倉(cāng)庫(kù)push到github上面,此步驟需要你輸入帳號(hào)和密碼)
?
?
二、第二種方法:
第一步:我們需要先創(chuàng)建一個(gè)本地的版本庫(kù)(其實(shí)也就是一個(gè)文件夾)。
你可以直接右擊新建文件夾,也可以右擊打開(kāi)Git bash命令行窗口通過(guò)命令來(lái)創(chuàng)建。
現(xiàn)在我通過(guò)命令行在桌面新建一個(gè)TEST文件夾(你也可以在其他任何地方創(chuàng)建這個(gè)文件夾),并且進(jìn)入這個(gè)文件夾
?
? ? ? ? ? ? ??
第二步:通過(guò)命令git init把這個(gè)文件夾變成Git可管理的倉(cāng)庫(kù)??
這時(shí)你會(huì)發(fā)現(xiàn)TEST里面多了個(gè).git文件夾,它是Git用來(lái)跟蹤和管理版本庫(kù)的。如果你看不到,是因?yàn)樗J(rèn)是隱藏文件,那你就需要設(shè)置一下讓隱藏文件可見(jiàn)。?
?第三步:這時(shí)候你就可以把你的項(xiàng)目粘貼到這個(gè)本地Git倉(cāng)庫(kù)里面(粘貼后你可以通過(guò)git status來(lái)查看你當(dāng)前的狀態(tài)),然后通過(guò)git add把項(xiàng)目添加到倉(cāng)庫(kù)(或git add .把該目錄下的所有文件添加到倉(cāng)庫(kù),注意點(diǎn)是用空格隔開(kāi)的)。在這個(gè)過(guò)程中你其實(shí)可以一直使用git status來(lái)查看你當(dāng)前的狀態(tài)。?
?這里提示你雖然把項(xiàng)目粘貼過(guò)來(lái)了,但還沒(méi)有add到Git倉(cāng)庫(kù)上,然后我們通過(guò)git add .把剛才復(fù)制過(guò)來(lái)的項(xiàng)目全部添加到倉(cāng)庫(kù)
第四步:用git commit把項(xiàng)目提交到倉(cāng)庫(kù)。
?
?-m后面引號(hào)里面是本次提交的注釋內(nèi)容,這個(gè)可以不寫(xiě),但最好寫(xiě)上,不然會(huì)報(bào)錯(cuò),詳情自行Google。?好了,我們本地Git倉(cāng)庫(kù)這邊的工作做完了,下面就到了連接遠(yuǎn)程倉(cāng)庫(kù)(也就是連接Github)
由于本地Git倉(cāng)庫(kù)和Github倉(cāng)庫(kù)之間的傳輸是通過(guò)SSH加密的,所以連接時(shí)需要設(shè)置一下:
第五步:創(chuàng)建SSH KEY。先看一下你C盤(pán)用戶(hù)目錄下有沒(méi)有.ssh目錄,有的話看下里面有沒(méi)有id_rsa和id_rsa.pub這兩個(gè)文件,有就跳到下一步,沒(méi)有就通過(guò)下面命令創(chuàng)建。
1、輸入下邊的命令
1 |
|
?2、然后回車(chē),詢(xún)問(wèn)保存key的位置,默認(rèn)是在括號(hào)里的路徑下,你可以修改,也可以不做修改。如下圖所示:
3、這里不修改,回車(chē),提示已存在,是否覆蓋。因?yàn)槲疫@是第二次,所以有這個(gè)提示如下題所示:
4、輸入Y,回車(chē),提示輸入密碼,如下圖所示:
5、為了不必要麻煩,還是不要設(shè)置密碼,因?yàn)槿菀淄洠惠斎朊艽a,回車(chē),如下圖所示:
6、確認(rèn)密碼不輸入,回車(chē),如圖所示:
?出現(xiàn)上圖結(jié)果,表明創(chuàng)建key成功!
7、這時(shí)你就會(huì)在用戶(hù)下的.ssh目錄里找到id_rsa和id_rsa.pub這兩個(gè)文件 ?
?
第六步:登錄Github,找到右上角的圖標(biāo),打開(kāi)點(diǎn)進(jìn)里面的Settings,再選中里面的SSH and GPG KEYS,點(diǎn)擊右上角的New SSH key,然后Title里面隨便填,再把剛才id_rsa.pub里面的內(nèi)容復(fù)制到Title下面的Key內(nèi)容框里面,最后點(diǎn)擊Add SSH key,這樣就完成了SSH Key的加密。具體步驟也可看下面:
? ? ?
?
? ? ? ?
第七步:在Github上創(chuàng)建一個(gè)Git倉(cāng)庫(kù)。
你可以直接點(diǎn)New repository來(lái)創(chuàng)建,比如我創(chuàng)建了一個(gè)TEST2的倉(cāng)庫(kù)(因?yàn)槲依锩嬉呀?jīng)有了一個(gè)test的倉(cāng)庫(kù),所以不能再創(chuàng)建TEST倉(cāng)庫(kù))。
第八步:在Github上創(chuàng)建好Git倉(cāng)庫(kù)之后我們就可以和本地倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián)了,根據(jù)創(chuàng)建好的Git倉(cāng)庫(kù)頁(yè)面的提示,可以在本地TEST倉(cāng)庫(kù)的命令行輸入:
1 |
|
? ? ? ?
注意origin后面加的是你Github上創(chuàng)建好的倉(cāng)庫(kù)的地址。? ? ??
?第九步:關(guān)聯(lián)好之后我們就可以把本地庫(kù)的所有內(nèi)容推送到遠(yuǎn)程倉(cāng)庫(kù)(也就是Github)上了,通過(guò):
$ git push -u origin master
? ? ???由于新建的遠(yuǎn)程倉(cāng)庫(kù)是空的,所以要加上-u這個(gè)參數(shù),等遠(yuǎn)程倉(cāng)庫(kù)里面有了內(nèi)容之后,下次再?gòu)谋镜貛?kù)上傳內(nèi)容的時(shí)候只需下面這樣就可以了:
$ git push origin master
? ? ? ??上傳項(xiàng)目的過(guò)程可能需要等一段時(shí)間,完成之后是這樣的:
?
?這時(shí)候你再重新刷新你的Github頁(yè)面進(jìn)入剛才新建的那個(gè)倉(cāng)庫(kù)里面就會(huì)發(fā)現(xiàn)項(xiàng)目已經(jīng)成功上傳了:
? ? ? ??至此就完成了將本地項(xiàng)目上傳到Github的整個(gè)過(guò)程。
? ? ? 另外,這里有個(gè)坑需要注意一下,就是在上面第七步創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)的時(shí)候,如果你勾選了Initialize this repository with a README(就是創(chuàng)建倉(cāng)庫(kù)的時(shí)候自動(dòng)給你創(chuàng)建一個(gè)README文件),那么到了第九步你將本地倉(cāng)庫(kù)內(nèi)容推送到遠(yuǎn)程倉(cāng)庫(kù)的時(shí)候就會(huì)報(bào)一個(gè)failed to push some refs?to?https://github.com/guyibang/TEST2.git的錯(cuò)。
? ? ??
? ? ??這是由于你新創(chuàng)建的那個(gè)倉(cāng)庫(kù)里面的README文件不在本地倉(cāng)庫(kù)目錄中,這時(shí)我們可以通過(guò)以下命令先將內(nèi)容合并以下:
$ git pull --rebase origin master
? ? ? ?這時(shí)你再push就能成功了。
? ? ?總結(jié):其實(shí)只需要進(jìn)行下面幾步就能把本地項(xiàng)目上傳到Github
? ? ?1、在本地創(chuàng)建一個(gè)版本庫(kù)(即文件夾),通過(guò)git init把它變成Git倉(cāng)庫(kù);
? ? ?2、把項(xiàng)目復(fù)制到這個(gè)文件夾里面,再通過(guò)git add .把項(xiàng)目添加到倉(cāng)庫(kù);
? ? ?3、再通過(guò)git commit -m "注釋內(nèi)容"把項(xiàng)目提交到倉(cāng)庫(kù);
? ? ?4、在Github上設(shè)置好SSH密鑰后,新建一個(gè)遠(yuǎn)程倉(cāng)庫(kù),通過(guò)git remote add origin?https://github.com/guyibang/TEST2.git將本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián);
? ? ?5、最后通過(guò)git push -u origin master把本地倉(cāng)庫(kù)的項(xiàng)目推送到遠(yuǎn)程倉(cāng)庫(kù)(也就是Github)上;(若新建遠(yuǎn)程倉(cāng)庫(kù)的時(shí)候自動(dòng)創(chuàng)建了README文件會(huì)報(bào)錯(cuò),解決辦法看上面)。
三、第三種方法
第一步:Git客戶(hù)端安裝好
第二步:github注冊(cè)好賬號(hào)
第三步:本地電腦隨便建立一個(gè)文件夾,如:github,進(jìn)入此文件夾,在地址欄中輸入cmd
第四步:點(diǎn)擊->,進(jìn)入docs命令窗口,輸入git命令,出現(xiàn)如下圖說(shuō)明git安裝成功。
第五步:回到之前的github界面,下面幾個(gè)指令告訴你如何將代碼上傳
1 2 3 4 5 |
|
第六步:在上面創(chuàng)建的github文件中,放入要上傳的代碼,然后按照上面的指令開(kāi)始操作,執(zhí)行指令
1、git init? ? ? (建立本地倉(cāng)庫(kù))
2、git add? *? (將代碼添加到本地倉(cāng)庫(kù),《*是添加全部代碼,代碼全部更新》)
3、git commit -m "first commit"? (提交到本地緩沖,《引號(hào)里說(shuō)明提交了什么東西,說(shuō)白了就是注釋》)
4、git remote add origin?https://github.com/hongduhong/test.git? ?(將本地倉(cāng)庫(kù)的代碼提交遠(yuǎn)程github的倉(cāng)庫(kù),《后面的地址就是之前創(chuàng)建github的遠(yuǎn)程倉(cāng)庫(kù)地址》)
5、git push -u origin master? ? (將遠(yuǎn)程倉(cāng)庫(kù)的代碼 push到master分支上)
6、代碼上傳成功如下圖所示:
四、Git命令
1 查看、添加、提交、刪除、找回,重置修改文件 2 3 4 git help <command> # 顯示command的help 5 6 git show # 顯示某次提交的內(nèi)容 git show $id 7 8 git co -- <file> # 拋棄工作區(qū)修改 9 10 git co . # 拋棄工作區(qū)修改 11 12 git add <file> # 將工作文件修改提交到本地暫存區(qū) 13 14 git add . # 將所有修改過(guò)的工作文件提交暫存區(qū) 15 16 git rm <file> # 從版本庫(kù)中刪除文件 17 18 git rm <file> --cached # 從版本庫(kù)中刪除文件,但不刪除文件 19 20 git reset <file> # 從暫存區(qū)恢復(fù)到工作文件 21 22 git reset -- . # 從暫存區(qū)恢復(fù)到工作文件 23 24 git reset --hard # 恢復(fù)最近一次提交過(guò)的狀態(tài),即放棄上次提交后的所有本次修改 25 26 git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments" 27 28 git ci --amend # 修改最后一次提交記錄 29 30 git revert <$id> # 恢復(fù)某次提交的狀態(tài),恢復(fù)動(dòng)作本身也創(chuàng)建次提交對(duì)象 31 32 git revert HEAD # 恢復(fù)最后一次提交的狀態(tài) 33 34 查看文件diff 35 36 37 git help <command> # 顯示command的help 38 39 git show # 顯示某次提交的內(nèi)容 git show $id 40 41 git co -- <file> # 拋棄工作區(qū)修改 42 43 git co . # 拋棄工作區(qū)修改 44 45 git add <file> # 將工作文件修改提交到本地暫存區(qū) 46 47 git add . # 將所有修改過(guò)的工作文件提交暫存區(qū) 48 49 git rm <file> # 從版本庫(kù)中刪除文件 50 51 git rm <file> --cached # 從版本庫(kù)中刪除文件,但不刪除文件 52 53 git reset <file> # 從暫存區(qū)恢復(fù)到工作文件 54 55 git reset -- . # 從暫存區(qū)恢復(fù)到工作文件 56 57 git reset --hard # 恢復(fù)最近一次提交過(guò)的狀態(tài),即放棄上次提交后的所有本次修改 58 59 git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments" 60 61 git ci --amend # 修改最后一次提交記錄 62 63 git revert <$id> # 恢復(fù)某次提交的狀態(tài),恢復(fù)動(dòng)作本身也創(chuàng)建次提交對(duì)象 64 65 git revert HEAD # 恢復(fù)最后一次提交的狀態(tài) 66 67 查看提交記錄 68 69 git log git log <file> # 查看該文件每次提交記錄 70 71 git log -p <file> # 查看每次詳細(xì)修改內(nèi)容的diff 72 73 git log -p -2 # 查看最近兩次詳細(xì)修改內(nèi)容的diff 74 75 git log --stat #查看提交統(tǒng)計(jì)信息 76 tig 77 78 Mac上可以使用tig代替diff和log,brew install tig 79 80 81 Git 本地分支管理 82 查看、切換、創(chuàng)建和刪除分支 83 84 85 git br -r # 查看遠(yuǎn)程分支 86 87 git br <new_branch> # 創(chuàng)建新的分支 88 89 git br -v # 查看各個(gè)分支最后提交信息 90 91 git br --merged # 查看已經(jīng)被合并到當(dāng)前分支的分支 92 93 git br --no-merged # 查看尚未被合并到當(dāng)前分支的分支 94 95 git co <branch> # 切換到某個(gè)分支 96 97 git co -b <new_branch> # 創(chuàng)建新的分支,并且切換過(guò)去 98 99 git co -b <new_branch> <branch> # 基于branch創(chuàng)建新的new_branch 100 101 git co $id # 把某次歷史提交記錄checkout出來(lái),但無(wú)分支信息,切換到其他分支會(huì)自動(dòng)刪除 102 103 git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來(lái),創(chuàng)建成一個(gè)分支 104 105 git br -d <branch> # 刪除某個(gè)分支 106 107 git br -D <branch> # 強(qiáng)制刪除某個(gè)分支 (未被合并的分支被刪除的時(shí)候需要強(qiáng)制) 108 分支合并和reba 109 git merge <branch> # 將branch分支合并到當(dāng)前分支 110 111 git merge origin/master --no-ff # 不要Fast-Foward合并,這樣可以生成merge提交 112 113 git rebase master <branch> # 將master rebase到branch,相當(dāng)于: git co <branch> && git rebase master && git co master && git merge <branch> 114 Git補(bǔ)丁管理(方便在多臺(tái)機(jī)器上開(kāi)發(fā)同步時(shí)用) 115 116 117 git merge <branch> # 將branch分支合并到當(dāng)前分支 118 119 git merge origin/master --no-ff # 不要Fast-Foward合并,這樣可以生成merge提交 120 121 git rebase master <branch> # 將master rebase到branch,相當(dāng)于: git co <branch> && git rebase master && git co master && git merge <branch> 122 123 Git暫存管 124 git stash # 暫存 125 126 git stash list # 列所有stash 127 128 git stash apply # 恢復(fù)暫存的內(nèi)容 129 130 git stash drop # 刪除暫存區(qū) 131 132 Git遠(yuǎn)程分支管理 133 134 git pull # 抓取遠(yuǎn)程倉(cāng)庫(kù)所有分支更新并合并到本地 135 136 git pull --no-ff # 抓取遠(yuǎn)程倉(cāng)庫(kù)所有分支更新并合并到本地,不要快進(jìn)合并 137 138 git fetch origin # 抓取遠(yuǎn)程倉(cāng)庫(kù)更新 139 140 git merge origin/master # 將遠(yuǎn)程主分支合并到本地當(dāng)前分支 141 142 git co --track origin/branch # 跟蹤某個(gè)遠(yuǎn)程分支創(chuàng)建相應(yīng)的本地分支 143 144 git co -b <local_branch> origin/<remote_branch> # 基于遠(yuǎn)程分支創(chuàng)建本地分支,功能同上 145 146 git push # push所有分支 147 148 git push origin master # 將本地主分支推到遠(yuǎn)程主分支 149 150 git push -u origin master # 將本地主分支推到遠(yuǎn)程(如無(wú)遠(yuǎn)程主分支則創(chuàng)建,用于初始化遠(yuǎn)程倉(cāng)庫(kù)) 151 152 git push origin <local_branch> # 創(chuàng)建遠(yuǎn)程分支, origin是遠(yuǎn)程倉(cāng)庫(kù)名 153 154 git push origin <local_branch>:<remote_branch> # 創(chuàng)建遠(yuǎn)程分支 155 156 git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然后再push刪除遠(yuǎn)程分支 157 158 Git遠(yuǎn)程倉(cāng)庫(kù)管 159 git remote -v # 查看遠(yuǎn)程服務(wù)器地址和倉(cāng)庫(kù)名稱(chēng) 160 161 git remote show origin # 查看遠(yuǎn)程服務(wù)器倉(cāng)庫(kù)狀態(tài) 162 163 git remote add origin git@ github:robbin/robbin_site.git # 添加遠(yuǎn)程倉(cāng)庫(kù)地址 164 165 git remote set-url origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠(yuǎn)程倉(cāng)庫(kù)地址(用于修改遠(yuǎn)程倉(cāng)庫(kù)地址) git remote rm <repository> # 刪除遠(yuǎn)程倉(cāng)庫(kù) 166 167 創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù) 168 169 git clone --bare robbin_site robbin_site.git # 用帶版本的項(xiàng)目創(chuàng)建純版本倉(cāng)庫(kù) 170 171 scp -r my_project.git git@ git.csdn.net:~ # 將純倉(cāng)庫(kù)上傳到服務(wù)器上 172 173 mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務(wù)器創(chuàng)建純倉(cāng)庫(kù) 174 175 git remote add origin git@ github.com:robbin/robbin_site.git # 設(shè)置遠(yuǎn)程倉(cāng)庫(kù)地址 176 177 git push -u origin master # 客戶(hù)端首次提交 178 179 git push -u origin develop # 首次將本地develop分支提交到遠(yuǎn)程develop分支,并且track 180 181 git remote set-head origin master # 設(shè)置遠(yuǎn)程倉(cāng)庫(kù)的HEAD指向master分支 182 183 也可以命令設(shè)置跟蹤遠(yuǎn)程庫(kù)和本地庫(kù) 184 185 git branch --set-upstream master origin/master 186 187 git branch --set-upstream develop origin/develop
?五、遇到問(wèn)題和解決方案
1、出現(xiàn)如下圖所示,說(shuō)明你安裝的本地git客戶(hù)端的版本太低
解決方案:
a、點(diǎn)擊鼠標(biāo)右鍵,點(diǎn)擊“Git Bash Here”,進(jìn)入如圖
b、輸入命令 git update(git update-git-for-windows),將Git客戶(hù)端更新到最新。
2、提交到遠(yuǎn)程倉(cāng)庫(kù)的時(shí)候,提示:fatal :remote origin already exists。? 解決方案:刪除遠(yuǎn)程倉(cāng)庫(kù);輸入命令:git remote rm origin
3、首次操作需要輸入用戶(hù)名和密碼,就按提示輸入用戶(hù)名和密碼即可
4、在docs命令窗口看到下邊的提示:
$git config --global user.name "Jhon"?
$git config --global user.email Jhon@example.com"
解決方案:
按照上面的提示,輸入
>git config --global user.name "這里是你github的用戶(hù)名"?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-533037.html
>git config --global user.email 這里是你注冊(cè)github的郵箱文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-533037.html
到了這里,關(guān)于Git的使用--如何將本地項(xiàng)目上傳到Github(三種簡(jiǎn)單、方便的方法)(二)(詳解)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!