一、新建倉儲:
注冊GitHub后你就會有0.3G的免費空間,不過只能創建公開項目,這也滿足代碼分享的目的,我最喜歡的倒是它的代碼展示方式,可以直接瀏覽你的代碼,代碼是經過高亮、添加行號處理過的,十分漂亮,體驗一流,比如這個Webpy托管的地方。而作為想要了解你代碼的人,可以選擇直接在線瀏覽自己感興趣的,也可以直接下載壓縮包,或者直接使用Git clone到本地。
因為GitHub是基於Git版本控制系統,所以你上傳修改代碼什么的,都需要使用Git工具。我這里主要是用來分享和展示代碼,所以不想在版本控制方面做過多的闡述,下面就簡單講解一下怎么在GitHub上新建一個項目,還有把自己的代碼傳上去。下面的前提是你已經注冊了GitHub和下載安裝了Git——Git下載、Windows版本下載。
上傳分享代碼
1.在GitHub上建立項目
登錄GitHub后,你可以在右邊靠中那里找到一個按鈕“New Repository”,點擊過后,填入項目名稱、說明和網址過后就可以創建了,然后會出現一個提示頁面,記下類似git@github.com:XXX/XXX.git的地址,這個就是你這個項目的地址了。
2.配置Git以及上傳代碼
安裝Git成功后,如果是Windows下,選擇Git Bash,在命令行中完成一切,可能開始有點麻煩,不過就那幾條命令行,用幾次就記住啦。首先初始設置Git:
1 git config --global user.name "Your Real Name" 2 git config --global user.email you@email.address
然后開始進行最麻煩的一步了,你需要上傳文件到GitHub的Git系統上,得需要一個SSH密匙來認證,下面就開始生成密鑰和提交密鑰。打開Git Bash,創建SSH key:
1 ssh-keygen -C 'your@email.address' -t rsa
然后要你輸入SSH密匙的存放位置,可以不管,直接回車使用默認路徑。再輸入你想要的密碼,SSH key就生成了。現在你需要將這個Key提交到GitHub,首先打開Key保存的位置,里面會有三個文件,找到id_rsa.pub,用文本編輯器打開,復制里面的全部字符。到GitHub,在右上方工具欄里找到Account Settings。在這個頁面上有一個SSH Public Keys標簽,選擇Add another public key。Title可以隨便填一個,Key就粘貼剛才的字符,提交。
完成這些工作后,就可以上傳自己的代碼了。找到自己要分享上傳的代碼文件夾,右擊選擇Git Bash,或者在Git Bash中進入這個文件夾。建立一個倉庫:
1 git init
選擇要添加進倉庫的文件:
2 git add .
一般如果你想分享這個文件夾里的所有代碼,就在 add后面加“.”,上面的例子就是這樣,如果傳指定的,只需要把“.”改為文件名即可,現在只是選擇了要加入倉庫的文件,下面才是添加進入倉庫:
3 git commit -m 'Test'
-m后面跟一個參數,表示說明,將代碼提交到GitHub后,將會在代碼文件信息上顯示這個說明,如下圖標記的地方。
搞了這么久,現在才開始把本地倉庫上傳到GitHub了,下面兩行命令搞定問題:
4 git remote add origin git@github.com:XXX/XXX.git
5 git push -u origin master
這個git@github.com:XXX/XXX.git就是上面創建項目是生成的地址。現在打開你的項目網址,你就可以發現你的代碼已經展示出來了。如果你要更新代碼的話,就重復上面的吧。
如果提交了敏感信息,比如代碼中設置的自己的密碼什么的忘刪除就上傳上去了怎么辦?重新修改過后上傳依然有歷史記錄,而使用Git刪除歷史記錄貌似很麻煩,於是就采用刪除項目吧,刪除了再重新上傳。刪除項目需要在GitHub網站上右上方找到admin按鈕,進去后右邊最下面有個刪除的按鈕,這樣就可以刪除了。
一些可能遇到的問題解決:
如果輸入$ git remote add origin git@github.com:djqiang(github帳號名)/gitdemo(項目名).git
提示出錯信息:fatal: remote origin already exists.
解決辦法如下:
1、先輸入$ git remote rm origin
2、再輸入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不會報錯了!
3、如果輸入$ git remote rm origin 還是報錯的話,error: Could not remove config section ‘remote.origin’. 我們需要修改gitconfig文件的內容
4、找到你的github的安裝路徑,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc
5、找到一個名為gitconfig的文件,打開它把里面的[remote "origin"]那一行刪掉就好了!
如果輸入$ ssh -T git@github.com
出現錯誤提示:Permission denied (publickey).因為新生成的key不能加入ssh就會導致連接不上github。
解決辦法如下:
1、先輸入$ ssh-agent,再輸入$ ssh-add ~/.ssh/id_key,這樣就可以了。
2、如果還是不行的話,輸入ssh-add ~/.ssh/id_key 命令后出現報錯Could not open a connection to your authentication agent.解決方法是key用Git Gui的ssh工具生成,這樣生成的時候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行來做。
3、最好檢查一下在你復制id_rsa.pub文件的內容時有沒有產生多余的空格或空行,有些編輯器會幫你添加這些的。
如果輸入$ git push origin master
提示出錯信息:error:failed to push som refs to …….
解決辦法如下:
1、先輸入$ git pull origin master //先把遠程服務器github上面的文件拉下來
2、再輸入$ git push origin master
3、如果出現報錯 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.
4、則需要重新輸入$ git remote add origingit@github.com:djqiang/gitdemo.git
使用git在本地創建一個項目的過程
$ makdir ~/hello-world //創建一個項目hello-world
$ cd ~/hello-world //打開這個項目
$ git init //初始化
$ touch README
$ git add README //更新README文件
$ git commit -m ‘first commit’ //提交更新,並注釋信息“first commit”
$ git remote add origin git@github.com:defnngj/hello-world.git //連接遠程github項目
$ git push -u origin master //將本地項目更新到github項目上去
簡單步驟:
$ git init //初始化
$ git add -all
$ git commit -m 'all'
$ git remote add origin git@github.com:defnngj/hello-world.git //連接遠程github項目
$ git push -u origin master //將本地項目更新到github項目上去
二、更新代碼:
代碼提交一般有五個步驟:1.查看目前代碼的修改狀態;2.查看代碼修改內容;3.暫存需要提交的文件;4.提交已暫存的文件;5.同步到服務器
1. 查看目前代碼的修改狀態
提交代碼之前,首先應該檢查目前所做的修改,運行git status命令
a) 已暫存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示刪除文件
b) 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示刪除文件
另外,git 給出了可能需要的操作命令,git add/rm, gitcheckout --
c) 未跟蹤 (untracked files)
2. 查看代碼修改的內容
git diff <file>
比較某文件與最近提交節點的差異。
注意:如果該文件已暫存,那么應該使用git diff –cached<file>
git diff <hashcode> <hashcode> <file>
比較某文件在提交節點a,節點b的差異。
技巧:如果省略后面一個hashcode,則默認表示與上一提交節點比較。(也可以利用^運算符)
3. 暫存需要提交的文件
如果是新建的文件
則git add <file>
如果是修改的文件
則git add <file>
如果是刪除的文件
則 git rm <file>
4. 提交已暫存的文件
git commit
注意注釋填寫規范。
git commit --amend
修改最近一次提交。有時候如果提交注釋書寫有誤或者漏提文件,可以使用此命令。
5. 同步到服務器
同步到服務器前先需要將服務器代碼同步到本地
命令: git pull
如果執行失敗,就按照提示還原有沖突的文件,然后再次嘗試同步。
命令:git checkout -- <有沖突的文件路徑>
同步到服務器
命令: git push origin <本地分支名>
如果執行失敗,一般是沒有將服務器代碼同步到本地導致的,先執行上面的git pull命令。
三、最常用的 git 命令有:
add 添加文件內容至索引
bisect 通過二分查找定位引入 bug 的變更
branch 列出、創建或刪除分支
checkout 檢出一個分支或路徑到工作區
clone 克隆一個版本庫到一個新目錄
commit 記錄變更到版本庫
diff
顯示提交之間、提交和工作區之間等的差異
fetch 從另外一個版本庫下載對象和引用
grep
輸出和模式匹配的行
init 創建一個空的 Git 版本庫或重新初始化一個已存在的版本庫
log 顯示提交日志
merge 合並兩個或更多開發歷史
mv
移動或重命名一個文件、目錄或符號鏈接
pull 獲取並合並另外的版本庫或一個本地分支
push 更新遠程引用和相關的對象
rebase 本地提交轉移至更新后的上游分支中
reset 重置當前HEAD到指定狀態
rm
從工作區和索引中刪除文件
show 顯示各種類型的對象
status 顯示工作區狀態
tag 創建、列出、刪除或校驗一個GPG簽名的 tag 對象