說明:
1、本章節不講如何安裝,不講用戶信息配置。
2、主要針對初學者,爲了便於理解,儘量按我自己的分析,寫得易於理解一些。本文分爲兩塊,一塊爲第一次上傳項目,和已上傳過的項目如何下載,並如何再次提交。
3、本文主要重點在通過命令行的方式,環境在Windows 7,不涉及在Linux如何去操作的命令,也不會涉及到客戶端的操作。希望這樣不會被分散注意力。
4、之前有參考過一些博客,但大家碰到的問題不盡相同,只是希望能幫上忙吧。
簡而言之,沒有分支的話,在GitHub上先建個倉庫後,以下命令足夠:
git clone https://github.com/sujiujiu/mybbs.git
git add .
git commit -m "註釋"
git push
命令解釋詳情如下:
第一部分 初次上傳
1、先在GitHub網頁端創建一個項目(倉庫),包括README.md。這個不做多說,很簡單,但是一定要建。因爲本地沒有的話,一會可能會報如下的錯誤:
2、隨便在一個盤新建一個文件夾,比如我在E盤,文件夾名字叫GitHub。
3、我們打開Git Bash,cd到這個目錄下。比如我的,在E盤,先cd到E盤下,cd e:
,再進去,cd github
,不區分大小寫。
4、將網頁端已建好的項目下載下來,通過git clone 網址,在你GitHub新建的項目裏就有。
我的是https://github.com/sujiujiu/mybbs.git
,
所以就是
git clone https://github.com/sujiujiu/mybbs.git
。這時會自動生成你網頁端已有的項目中的文件,如README.md
、.git
文件夾、.gitignore
文件。如果你沒有勾選最後一個,就沒有。文件夾忘了截圖,反正就是這麼三個文件就對了。
5、當你clone下來之後,是一個目錄,要cd到這個目錄裏面去,否則將報如下錯:
6、初始化一個倉庫,(一般情況下,clone下來都會有),如果是右鍵進入的Git Bash,可省略:
git init
最後一行的意思就是在這個目錄下創建並初始化了一個git的倉庫。
7、將修改添加到暫存區:
git add .
提交所有的文件,add和後面的小點是有空格的,然後可能會出來很長的信息,也可能不會出現任何信息(說明沒有任何問題)。
8、添加註釋,
git commit -m "message"
message就是你這次提交的內容,或者修改了什麼,不過是個註釋,讓人能看懂而已。
如果是第一次上傳項目,則所有的文件顯示爲紅色,如圖:
9、最後執行
git push -u origin master
如果沒有分支,也可以省略push後的命令:
git push
待你看到100%的字眼就知道弄完了,如圖所示:
10、如果你是通過遠程的方式,那麼在push前使用:
git remote add origin https://github.com/sujiujiu/mybbs.git
這裏是我的項目地址,你改成你的就好了。這個命令的作用在於你可以使用它將遠程的倉庫與本地的項目建立連接,但一定要在push命令之前 。
如果提示你已經存在就算了,我的就是,不用管,直接下一步吧,或者你也可以先執行,然後再執行下面這條命令:
git remote rm origin
git remote rm
命令用於刪除遠程主機。這條命令等於就是重新連接。
我之前提示所有已更新,可我到網頁端看並沒有成功,後來重新弄了一遍。
如果這一步提示如開頭error:failed to push som refs to……
之類的錯誤,那是因爲你本地沒有README.md文件,你可以嘗試新建一個,再執行
git pull origin master
之後再重複push的命令。但如果仍不成功,建議重來,這就是爲什麼我們需要第三步的原因。我們需要下下來然後提交,而不是自己在本地創建。如果你有多個版本,那麼就可以再建一個目錄。
如果不小心上傳錯了分支,先pull下那個分支,或重新remote那個分支,
git remote add origin https://github.com/sujiujiu/mybbs.git
git rm -r --cached
git commit -m "remove xx"
git push -u origin master
第二部分 更改完提交
將文件下載下來,並修改完再上傳。如果代碼在你當前使用的機子上沒有,需要下下來,就這樣:
1、同上第二步,切換到你所想要放文件的文件夾。
2、如上第三步,使用命令克隆下來。
git clone https://github.com/sujiujiu/mybbs.git
。
如果是自己的項目,這裏直接修改完本地,然後
git add .
git commit -m "註釋"
git push
3、而如果是公司的,通過遠程的方式獲取,則有兩種方法:
第一種:
1、獲取遠程更新
git fetch origin
2、把更新的內容與網頁端的合併。
git merge origin/master
第二種:使用pull(pull=fetch+merge)
git pull origin master
而如果在本地已經有了,那麼你可以先用這條命令查看哪些文件被改動了:
git status
然後使用命令提交你所改動的文件
git add +你改動的文件
再添加註釋
git commit -m "message"
最後提交都用這個
git push origin master
我又碰到了一個問題,就是我上傳完之後納悶的發現,我明明是Python的項目,它卻給我分類到了javascript。
就去Google了一下,原因是因爲Github是根據項目裏文件數量最多的文件類型來當做項目類型,那沒辦法,Python代碼本來就少,前端項目數目自然會超過Python的代碼。
普遍有兩種解決辦法:
一種是將項目中的靜態文件放到別處用連接導入即可,這種使用的不多。
另一種使用的較多,就是通過使用
.gitattributes
配置文件,將靜態文件如.js、css、html當作你想要的那門語言來統計。
用法基本就是這樣:
*.js linguist-language=Python
因爲考慮到既然我的是被替換成了JavaScript,只要改js部分就可以了,css和HTML可能不算特別多,所以只改了js,你也可以全都改了,寫法一樣,星號就是所有的js文件我讓它強制性被當成Python處理。
因爲在Windows下並不好創建這個文件,你想想它的格式就知道了,按Windows的命名法它沒有名字,只有後綴名,我看很多都是用命令行創建,比如touch/echo什麼的,但其實GitHub官網上就可以創建文件啊。反正都上傳上去了,爲何我們還要去本地改了再提交呢?
然後輸入文件名和文件內容就可以了。
參考鏈接:
1、http://www.cnblogs.com/ruofengzhishang/p/3842587.html這篇其實已經講的蠻清楚了,是我自己遇到了一些別的問題,所以一直在重複。
2、http://blog.csdn.net/kingzone_2008/article/details/8533868這個命令講的很詳細,但沒有init,我開始照着做差點忘了,而上面那個沒有add,純當我是結合了一下吧。
3、http://www.ruanyifeng.com/blog/2014/06/git_remote.html這個是git具體每條命令的作用,我其實也是在寫博客的時候想要知道那些命令的寫法及作用才搜到的,之前也沒用到,不過挺有用的。
4、http://dyhdyh.com/archives/161.html修改Github上倉庫的項目語言的解決辦法