git学习(10):Git的使用--如何将本地项目上传到Github(两种简单、方便的方法)
將本地項目上傳到Github(兩種簡單、方便的方法)
一、第一種方法:
首先你需要一個github賬號,所有還沒有的話先去注冊吧!
https://github.com/
我們使用git需要先安裝git工具,這里給出下載地址,下載后一路直接安裝即可:
https://git-for-windows.github.io/
1.進入Github首頁,點擊New repository新建一個項目
?2.填寫相應信息后點擊create即可
Repository name: 倉庫名稱
Description(可選): 倉庫描述介紹
Public, Private : 倉庫權限(公開共享,私有或指定合作者)
Initialize this repository with a README: 添加一個README.md
gitignore: 不需要進行版本管理的倉庫類型,對應生成文件.gitignore
license: 證書類型,對應生成文件LICENSE
4.點擊Clone or dowload會出現一個地址,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這兩個文件,有就跳到下一步,沒有就通過下面命令創建
?? $ ssh-keygen -t rsa -C "youremail@example.com"
?????? 然后一路回車。這時你就會在用戶下的.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命令
查看、添加、提交、刪除、找回,重置修改文件
??? git help <command> # 顯示command的help
??? ?
??? git show # 顯示某次提交的內容 git show $id
??? ?
??? git co -- <file> # 拋棄工作區修改
??? ?
??? git co . # 拋棄工作區修改
??? ?
??? git add <file> # 將工作文件修改提交到本地暫存區
??? ?
??? git add . # 將所有修改過的工作文件提交暫存區
??? ?
??? git rm <file> # 從版本庫中刪除文件
??? ?
??? git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件
??? ?
??? git reset <file> # 從暫存區恢復到工作文件
??? ?
??? git reset -- . # 從暫存區恢復到工作文件
??? ?
??? git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交后的所有本次修改
??? ?
??? git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments"
??? ?
??? git ci --amend # 修改最后一次提交記錄
??? ?
??? git revert <$id> # 恢復某次提交的狀態,恢復動作本身也創建次提交對象
??? ?
??? git revert HEAD # 恢復最后一次提交的狀態
查看文件diff
??? git help <command> # 顯示command的help
??? ?
??? git show # 顯示某次提交的內容 git show $id
??? ?
??? git co -- <file> # 拋棄工作區修改
??? ?
??? git co . # 拋棄工作區修改
??? ?
??? git add <file> # 將工作文件修改提交到本地暫存區
??? ?
??? git add . # 將所有修改過的工作文件提交暫存區
??? ?
??? git rm <file> # 從版本庫中刪除文件
??? ?
??? git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件
??? ?
??? git reset <file> # 從暫存區恢復到工作文件
??? ?
??? git reset -- . # 從暫存區恢復到工作文件
??? ?
??? git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交后的所有本次修改
??? ?
??? git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合并在一起做 git ci -am "some comments"
??? ?
??? git ci --amend # 修改最后一次提交記錄
??? ?
??? git revert <$id> # 恢復某次提交的狀態,恢復動作本身也創建次提交對象
??? ?
??? git revert HEAD # 恢復最后一次提交的狀態
??? ?
?
查看提交記錄
??? git log git log <file> # 查看該文件每次提交記錄
??? ?
??? git log -p <file> # 查看每次詳細修改內容的diff
??? ?
??? git log -p -2 # 查看最近兩次詳細修改內容的diff
??? ?
??? git log --stat #查看提交統計信息
??? ?
tig
Mac上可以使用tig代替diff和log,brew install tig
Git 本地分支管理
查看、切換、創建和刪除分支
??? git br -r # 查看遠程分支
??? ?
??? git br <new_branch> # 創建新的分支
??? ?
??? git br -v # 查看各個分支最后提交信息
??? ?
??? git br --merged # 查看已經被合并到當前分支的分支
??? ?
??? git br --no-merged # 查看尚未被合并到當前分支的分支
??? ?
??? git co <branch> # 切換到某個分支
??? ?
??? git co -b <new_branch> # 創建新的分支,并且切換過去
??? ?
??? git co -b <new_branch> <branch> # 基于branch創建新的new_branch
??? ?
??? git co $id # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其他分支會自動刪除
??? ?
??? git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,創建成一個分支
??? ?
??? git br -d <branch> # 刪除某個分支
??? ?
??? git br -D <branch> # 強制刪除某個分支 (未被合并的分支被刪除的時候需要強制)
??? ?
?分支合并和reba
??? git merge <branch> # 將branch分支合并到當前分支
??? ?
??? git merge origin/master --no-ff # 不要Fast-Foward合并,這樣可以生成merge提交
??? ?
??? git rebase master <branch> # 將master rebase到branch,相當于: git co <branch> && git rebase master && git co master && git merge <branch>
??? ?
?Git補丁管理(方便在多臺機器上開發同步時用)
??? git merge <branch> # 將branch分支合并到當前分支
??? ?
??? git merge origin/master --no-ff # 不要Fast-Foward合并,這樣可以生成merge提交
??? ?
??? git rebase master <branch> # 將master rebase到branch,相當于: git co <branch> && git rebase master && git co master && git merge <branch>
??? ?
?
?Git暫存管
??? git stash # 暫存
??? ?
??? git stash list # 列所有stash
??? ?
??? git stash apply # 恢復暫存的內容
??? ?
??? git stash drop # 刪除暫存區
??? ?
??? Git遠程分支管理
??? ?
??? git pull # 抓取遠程倉庫所有分支更新并合并到本地
??? ?
??? git pull --no-ff # 抓取遠程倉庫所有分支更新并合并到本地,不要快進合并
??? ?
??? git fetch origin # 抓取遠程倉庫更新
??? ?
??? git merge origin/master # 將遠程主分支合并到本地當前分支
??? ?
??? git co --track origin/branch # 跟蹤某個遠程分支創建相應的本地分支
??? ?
??? git co -b <local_branch> origin/<remote_branch> # 基于遠程分支創建本地分支,功能同上
??? ?
?
git push # push所有分支
??? git push origin master # 將本地主分支推到遠程主分支
??? ?
??? git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創建,用于初始化遠程倉庫)
??? ?
??? git push origin <local_branch> # 創建遠程分支, origin是遠程倉庫名
??? ?
??? git push origin <local_branch>:<remote_branch> # 創建遠程分支
??? ?
??? git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然后再push刪除遠程分支
??? ?
?
Git遠程倉庫管
??? git remote -v # 查看遠程服務器地址和倉庫名稱
??? ?
??? git remote show origin # 查看遠程服務器倉庫狀態
??? ?
??? git remote add origin git@ github:robbin/robbin_site.git # 添加遠程倉庫地址
??? ?
??? git remote set-url origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址(用于修改遠程倉庫地址) git remote rm <repository> # 刪除遠程倉庫
??? ?
?
創建遠程倉庫
??? git clone --bare robbin_site robbin_site.git # 用帶版本的項目創建純版本倉庫
??? ?
??? scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到服務器上
??? ?
??? mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務器創建純倉庫
??? ?
??? git remote add origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址
??? ?
??? git push -u origin master # 客戶端首次提交
??? ?
??? git push -u origin develop # 首次將本地develop分支提交到遠程develop分支,并且track
??? ?
??? git remote set-head origin master # 設置遠程倉庫的HEAD指向master分支
??? ?
?
也可以命令設置跟蹤遠程庫和本地庫
??? git branch --set-upstream master origin/master
??? ?
??? git branch --set-upstream develop origin/develop
?
總結
以上是生活随笔為你收集整理的git学习(10):Git的使用--如何将本地项目上传到Github(两种简单、方便的方法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: libghttp 编译及封装使用实例
- 下一篇: shell中的${},##和%%的使用