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