將本地項目文件上傳至github相關步驟(以下未特殊說明的均代表首次)
git官網:https://git-scm.com/
github官網:https://github.com/
git的安裝以及GitHub的註冊這裏就不說了。
下邊就直接從上傳開始。
第一步:我們需要先創建一個本地的版本庫(其實也就是一個文件夾)。
你可以直接在桌面右擊新建文件夾,也可以右擊打開Git bash命令行窗口通過命令來創建。
第二步:在命令行中輸入git init把這個文件夾變成Git可管理的倉庫
這時你會發現test裏面多了個.git文件夾,它是Git用來跟蹤和管理版本庫的,因爲它默認是隱藏文件,要是看不到就設置下文件夾和搜索選項,讓隱藏文件可見。
之後把需要上傳到GitHub的文件全部複製到這test這個目錄下。
然後通過git add .(注意這個".",是有空格的,"."代表這個test這個文件夾下的目錄全部都提交。你也可以通過git add 文件名 提交指定的文件)把文件添加到緩存區
我這裏的warning你們可以忽略,因爲這個是與我的小程序配置有一點出入(之前的代碼是託管在svn上的)。因爲我已經將原來的代碼已經備份了,所以這裏我不用擔心。一般情況下是沒有這種提示的。
然後可以通過git status命令,查看下現在的狀態,也可以不看,隨你
看到有css,js文件夾的內容都提交上去了。
然後,在使用命令git commit -m "這裏面寫你的註釋" 把文件提交的本地倉庫
第三步:連接遠程倉庫(也就是連接Github)
由於本地Git倉庫和Github倉庫之間的傳輸是通過SSH加密的,所以連接時需要設置一下:
先創建SSH KEY。先看一下你C盤用戶目錄下有沒有.ssh目錄,有的話看下里面有沒有id_rsa和id_rsa.pub這兩個文件,有就跳到下一步,沒有就通過下面命令創建
$ ssh-keygen -t rsa -C "[email protected]"
然後一路回車。創建成功後會顯示這樣:
這時你就會在用戶下的.ssh目錄裏找到id_rsa和id_rsa.pub這兩個文件。但是這個文件剛創建的時候是沒有known_hosts文件的,而我這裏有是因爲我提交成功後生成的。
第四步:登錄Github,找到右上角的圖標,打開點進裏面的Settings,再選中裏面的SSH and GPG KEYS,點擊右上角的New SSH key,然後Title裏面隨便填,再把剛纔id_rsa.pub裏面的內容複製到Title下面的Key內容框裏面,最後點擊Add SSH key,這樣就完成了SSH Key的加密。具體步驟也可看下面:
(這幾步是把項目上傳至github服務器,但是多數情況下,企業會把項目上傳至自己的服務器上,跟上傳至github服務器步驟差不多,也是要在GitLab(相當於國內的github吧)新建一個屬於你自己的賬號,然後管理員將你拉進公司項目開發組,隨後你自己再將公鑰上傳上去即可,接下來的步驟類似)
上面key默認在C:\Users\Administrator\.ssh下的id_rsa.pub文件中,把這個文件中的內容全部複製到上面的key裏面就可以了。如下圖:
第五步:在Github上創建一個Git倉庫。
你可以直接點New repository來創建,比如我創建了一個tes2t的倉庫。
上面我沒有默認勾選Initialize this repository with a README,勾選和不勾選創建的結果區別如下:
下邊這個是勾選的
第六步:在Github上創建好Git倉庫之後我們就可以和本地倉庫進行關聯了,根據創建好的Git倉庫頁面的提示,可以在本地倉庫的命令行輸入:
$ git remote add origin [email protected]:CharlesTian07/test2.git
一定要記得$ git remote add origin [email protected]:這部分命令是固定的,但是後面的是你的github賬戶暱稱和你創建的項目名稱。上面的只是舉個例子,實際上要怎麼找到這兩個信息,看下圖:
附(特殊說明):
這是第一次上傳至github上,且github上是空的情況下,如果github上不是空的,那麼你在本地修改代碼之後要更新至github上時(第一次需先連接遠程倉庫
git remote add origin [email protected]),這時 你可以使用命令:git status查詢你的文件有哪些修改了(修改的文件顯示爲紅色),然後輸入命令git add ./,意思是把修改的文件提交上去,這時再git status會發現修改的文件是綠色的,最後再git commit -m "你的註釋"即可上傳上去。
若是想在另外一臺電腦同步的話,那麼輸入命令git pull [email protected]即可(第一次需先連接遠程倉庫
git remote add origin [email protected])。
但是第一次pull或者上傳的時候會出現以下問題,如圖:
意思很明顯,因爲你是第一次,所以遠程倉庫並不知道你是誰,即使組長已經將你添加進開發組中,這時你需要先表明你的身份是否在開發組中, 接下來根據提示的步驟來:
①git config --global user.email "[email protected]"
②git config --global user.name "yourname"
表明之後再提交即可,即:git commit -m "your comment"
第七步:關聯好之後我們就可以把本地庫的所有內容推送到遠程倉庫(也就是Github)上了,通過:
$ git push -u origin master
由於新建的遠程倉庫是空的,所以要加上-u這個參數。
注意:這裏可能會報這樣的錯誤:
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
提示:這裏有個小坑!!!值得注意!那就是在報第一句話的錯誤時候,它會顯示這麼一句:
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?
而這裏千萬不能直接回車!!!千萬不能直接回車!!!千萬不能直接回車!!!
其實這裏只需要在命令欄輸入:yes即可!就可將本地項目文件上傳至github!
如果上述操作之後還是會報錯,那麼可能有以下幾個原因:
原因:1.github上沒有與本地倉庫相關聯(重新remote)
2.ssh不對(多數情況)
ssh解決:
1. cat ~/.ssh/id_rsa.pub 查看ssh是否是自己的,不是說明是ssh問題,是的就是遠程關聯問題
2. 如果是ssh問題則在git倉庫同目錄 刪除.ssh文件夾 (隱藏文件夾)
判斷刪除成功: cat ~/.ssh/id_rsa.pub
出現cat: /c/Users/ZhangLin/.ssh/id_rsa.pub: No such file or directory
3.重新創建ssh ssh-keygen -t rsa -C "[email protected]“
一路回車
4.在ssh文件夾下pub文件中的內容複製 github上新建一個ssh鏈接
最後上傳完畢之後,進去GitHub battleEnglish這個倉庫刷新下就會有已經上傳的文件夾了。
如果新建遠程倉庫不是空的,例如你勾選了 Initialize this repository with a README。那麼你通過命令 $ git push -u origin master是會報錯的,如下:
這是由於你新創建的那個倉庫裏面的README文件不在本地倉庫目錄中,這時我們可以通過以下命令先將內容合併以下:
$ git pull --rebase origin master
再輸入$ git push origin master。
等遠程倉庫裏面有了內容之後,下次再從本地庫上傳內容的時候只需下面這樣就可以了:
$ git push origin master。
至此就完成了將本地項目上傳到Github的整個過程。
如果項目是由一個人開發的:
(1)如果項目已在github上:
1.在另外一臺計算上,從你的github賬戶上點擊clone or download下載你的項目文件;
2.下載好之後,在桌面任意地方右鍵git Bash here彈出git命令操作窗口(前提是要下載git工具);
3.然後在裏面輸入命令進入到你存放項目的路徑文件夾中;
4.下載下來的文件中是沒有.git文件夾的,而.git文件夾的作用是連接你本地和github服務器的,所以你要輸入命令:git init創建一個.git文件夾,這個文件夾默認是隱藏的,如果你看不見,你可以設置一下對隱藏文件可見(具體操作可百度);
5.如果你要實時從github上更新數據到你的本地,那麼你要輸入命令:git pull "your project http URL",下面就會出現哪些文件更新到了你的本地;
二、如果項目是由多人開發的:
可以創建分支branch,然後各開發各的,最後再merge即可。
具體實現操作待更新....
參考文獻:https://www.cnblogs.com/smfx1314/p/8426115.html
----------------------------------------------------------------------------------------------------------------------------------------
2018.11.13更新
----------------------------------------------------------------------------------------------------------------------------------------
1.遠程倉庫創建新建分支(可百度搜索)之後,在git輸入命令:git branch -a;可查看遠程分支的名字,此時是看不到的,因爲你還沒有把這個分支取到,所以你要先獲取到;
2.接下來需要在git中輸入命令:git fetch origin develop(develop是新建的分支名)可獲取遠程所有分支,然後再輸入命令:git branch -a;可查看遠程分支的名字;
3.再輸入命令:git checkout -b develop origin/develop即可切換分支
---------------------------------------------------------------------------------------------------------------------------------------
2019.4.15更新
---------------------------------------------------------------------------------------------------------------------------------------
1. 如果是所有的開發配置都已經弄好(一般新手剛入職時,負責你的同事基本會幫你把這些配置都弄好了),只需要直接新建一個分支進行開發的話,在相應的開發項目根目錄下,運行git bash here,然後直接輸入:git checkout -b yourdevname(yourdevname就是你分支的名字,-b的意思是新建分支,下圖dev-tc是博主創建的分支名);
2. 這個時候,因爲你已經在項目開發當中,每天需要把修改的文件提交至gitlab,該怎麼提交?
1)git add . (後面的點不要忘記!)
意思是把修改過的本地文件甄別出來
2)git status (這個步驟對於新手來說,最好不要忽略!)
這個步驟可顯示你修改的文件具體是哪些,便於覈查,避免出錯(有時候連高手也不會跳過這個步驟)
3)git commit -m "your comment is here"
這個步驟是寫下你的註釋,即你修改的需求是啥
4)因爲你是第一次提交代碼,所以你先要連接遠程倉庫:git remote add origin project-url
否則你直接跳過步驟4)和5)而進行步驟6)會報以下錯誤:
5) 還是因爲你是第一次提交代碼,且遠程倉庫並沒有你在第1個大步驟創建的分支,所以你還需要把你的分支給上傳至遠程倉庫
git push --set-upstream origin yourdevname
如果跳過5)步驟直接進行6)步驟會報以下錯誤:
6)所有準備步驟都已備齊,是時候表演真正的技術了,最後一步就是把修改的代碼提交至遠程倉庫即可。
git push
它會顯示push的實時進程
7)去gitlab可查看你的分支名和上傳的代碼,會發現你在git操作的指令與gitlab上的項目完美配對~
8)看到自己的代碼上傳上去之後,是不是覺得有一種成就感?哈哈哈,別急着高興,由於你提交的代碼只在你的分支上,若是有其他人跟你一起開發同一個項目(不同模塊),他也有一個分支,剛好在你提交代碼的前幾分鐘他也上傳他的最新代碼,那怎麼讓他做的功能也顯示在你的本地代碼上呢?很簡單,執行命令:
git pull origin dev-anotherDeveloper
就可以拉取到他的最新代碼了,然後再一起提交至你的代碼即可。
9)若是在第五步的時候,你想提交的並不是你的分支,而就是master,且你已做了以上六個步驟,在第七個步驟的時候,發現gitlab上的commits並沒有你提交代碼的記錄,那說明還沒有提交至master,那麼應該這樣操作:
(1)git pull
(2)git branch --set-upstream-to=origin/master master
(3)git push
-----------------------------------------------------------------------------------------------------------------------------
2019.05.16更新
-----------------------------------------------------------------------------------------------------------------------------
1. 如果自己剛上傳的版本,在測試環境下運行符合自己的預期,但是在接下來的修改中(修改有點多的情況下),再運行時發現總是報錯,且查找錯誤耗費了一定時間,實在耗不起了,則可以進行回滾版本操作:
在git命令窗口裏輸入:
git reset --hard HEAD^
(^表示回滾一次)
或者
git reset --hard HEAD~n
(n表示n次)
2. 如果自己本地有修改的文件,在上傳的時候發現有遠程版本需要pull,但是你會發現你git pull之後,命令窗口會顯示需要你輸入merge之後的commit(註釋),這個你發現按enter鍵無效,不知道該怎樣才能進行接下來的git操作,此時:
在git命令窗口裏按照順序依次按下:
①shift + :
②q
③enter
就好了。
------------------------------------------------------------2019.5.27更新------------------------------------------------------
如果你完全進入到了項目開發中,而你最近的代碼是一直上傳在你的分支上的,如果你的組長現在要你將分支的代碼更新到master上,那麼你要這樣做:
1. 首先從你的分支切換到master:git checkout master
2. 然後拉取你原先的分支代碼:git pull origin dev-branchName
3. 跟組長申請權限,權限下放之後,就可以提交代碼了:git push --set-upstream origin master
4. 再切換至你的分支,進行下一版本的開發工作:git checkout branchName