將你的代碼託管到github
github
是程序猿的代碼託管平臺,也是基於git的開源分佈式版本控制系統。然而,當你登陸github官網時,它並沒有爲你準備一個很好的代碼上傳的系統,這是因爲它是基於git
的分佈式版本管理系。那麼,如何更快更有效的將本地代碼上傳到github
呢?首先,我們需要在本地安裝git
,這樣才能在本地環境中使用git
命令行,(例如:$
git add index.html
)其次是要連接到你的github
賬戶上,這樣才能把你的代碼文件上傳上去,而每一次的更改都會形成一個版本記錄,這樣對團隊協作是很有幫助的。
安裝 Git
這裏主要講的是mac
系統,windows
也是一樣的,只不過mac
是在終端下進行,而windows
是在cmd
下進行的。安裝git
,這裏推薦安裝Apple
公司的Xcode
,Xcode
集成了Git
,最新版的Xcode
已經默認安裝好了git
。完成安裝之後,就可以使用 git
的命令行工具。
當然,首先你需要註冊一個github
賬戶。
配置帳號信息
在cmd
或者終端下輸入以下命令行:
git config --global user.name trigkit4
git config --global user.email 345823102@qq.com
當然,這是我的賬戶信息,你需要將他們換成你自己的。
創建本地ssh
這是一種傳輸代碼的方法,速度快又安全。SSH
是目前較可靠,專爲遠程登錄會話和其他網絡服務提供安全性的協議。
在終端或cmd
輸入以下命令行:
ssh-keygen -t rsa -C "345823102@qq.com"
當然,郵箱依然換成你註冊github
時所用的郵箱。如下圖所示:
路徑選擇 : 使用該命令之後, 會出現提示選擇ssh-key
生成路徑,
這裏直接點回車默認即可, 生成的ssh-key在
默認路徑中;
密碼確認 : 這裏我們不使用密碼進行登錄, 用密碼太麻煩;就一路回車下去
將ssh配置到GitHub中
在mac os X
下前往文件夾,/Users/自己電腦用戶名/.ssh
。
windows
應該是(C:\Documents
and Settings\Administrator\.ssh
(或者 C:\Users\自己電腦用戶名\.ssh
)中)。
然後用記事本打開id_rsa.pub
,將裏面的全部代碼複製到github
的SSH
中。
id_rsa.pub
文件內容 :
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDS0qLtpontavr43AQntX4oBOsg2R3QlWubMYvfgJsIDX6NWd5RaIDLBLEMwIFLDcpvpQKvk5S/bTy4vTuWqeY6fkQ/tZBKksQn1WuYDcSfjLF8BuPMfdkboTh9NaKESKnsiWdranEVbmB5vOAHm8T+HFGdzG7Tz4ygzCnTwvdpBYrd/4jgeazws2d7CuMeuyb+FxdDTQy9YmJJm+82ypfR//bLyzRJo3SYadnPO3VdOAZCO1Isky+p/0nNN/obC4t2y2+oHBAqJV9h37f9S8UShgDmZoVLicRi4poni0i70xj+t/hnOsT8fmEc+vM9USyN+ndawz2oWjikKgln1jOB 345823102@qq.com
登陸github
網站,點擊Settings
——SSH
keys
——點擊右側的Add SSH key
,接下去你懂得。
驗證是否配置成功 :
複製如下代碼:
ssh -T git@github.com
然後出現如下信息:
Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts.
Hi hawx1993! You've successfully authenticated, but GitHub does not provide shell access.
驗證時可能讓你輸入YES
,當出現以上信息時,說明配置成功,可以連接上GitHub
;
創建版本庫
第一步,在本地創建一個版本庫,代碼如下:
$ mkdir test #test是你的文件夾的名字
$ cd test #進入test所在目錄
$ pwd #pwd命令用於顯示當前目錄
/Users/trigkit4/test #這是在我的Mac上的目錄
第二步,通過git init
命令把這個目錄變成Git
可以管理的倉庫:
$ git init
然後會輸出以下信息:
Initialized empty Git repository in /Users/trigkit4/banner/.git/
這裏的.git
目錄是Git
用來跟蹤管理版本庫的,默認是隱藏的。
第三部,接着,在github
上創建一個你自己的new
repository
,然後下一步,
mkdir test
cd test
git init
# initialize your git repository
touch README
# create a file named README
git add README
# add README to cache
git commit -m 'first commit'
# commit your files to local repository
然後我們將本地的文件傳送至github
中,使用如下命令:
git remote add origin https://github.com/yourname/test.git
git push -u origin master
從現有倉庫克隆
git clone git://github.com/yourname/test.git
git clone git://github.com/yourname/grit.git mypro#克隆到自定義文件夾
本地
git add *#跟蹤新文件
rm *&git rm *#移除文件
git rm -f *#移除文件
git rm --cached *#取消跟蹤
git mv file_from file_to#重命名跟蹤文件
git log#查看提交記錄
git commit#提交更新
git commit -m 'message'
git commit -a#跳過使用暫存區域,把所有已經跟蹤過的文件暫存起來一併提交
git commit --amend#修改最後一次提交
git reset HEAD *#取消已經暫存的文件
git checkout -- file#取消對文件的修改(從暫存區去除file)
git checkout branch|tag|commit -- file_name#從倉庫取出file覆蓋當前分支
git checkout -- .#從暫存區去除文件覆蓋工作區
分支
git branch#列出本地分支
git branch -r#列出遠端分支
git branch -a#列出所有分支
git branch -v#查看各個分支最後一個提交對象的信息
git branch --merge#查看已經合併到當前分支的分支
git branch --no-merge#查看爲合併到當前分支的分支
git branch test#新建test分支
git checkout test#切換到test分支
git checkout -b test#新建+切換到test分支
git checkout -b test dev#基於dev新建test分支,並切換
git branch -d test#刪除test分支
git branch -D test#強制刪除test分支
git merge test#將test分支合併到當前分支
git rebase master#將master分之上超前的提交,變基到當前分支
常見錯誤
第一個:
error: src refspec master does not match any.
error: failed to push some refs to 'https://github.com/yourname/test.git'
輸入如下代碼:
$ cd myproject
$ git init
$ git add .
$ git commit -m 'initial commit'
$ git push origin master
第二個:
git push -u origin master fatal: unable to access 'https://github.com/ZeyuChen/TPlus.git/': SSLRead() return error -9806
這種錯誤就是https
掛了,解決方案就是在project
目錄裏面的.git/config
文件裏面,修改repo
的url
連接,從https
修改爲git協議就可以了。
本來是url = https://github.com/ZeyuChen/TPlus.git
修改爲
[remote "origin"]
url = ssh://[email protected]/ZeyuChen/TPlus.git
fetch = +refs/heads/*:refs/remotes/origin/*
再次push
就ok了。
Git 命令詳解
現在我們有了本地和遠程的版本庫,讓我們來試着用用Git的基本命令:
git pull:從其他的版本庫(既可以是遠程的也可以是本地的)將代碼更新到本地,例如:'git pull origin master'就是將origin這個版本庫的代碼更新到本地的master主枝,該功能類似於SVN的update
git add:是 將當前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示記入了版本歷史中,這也是提交之前所需要執行的一步,例如'git add app/model/user.rb'就會增加app/model/user.rb文件到Git的索引中,該功能類似於SVN的add
git rm:從當前的工作空間中和索引中刪除文件,例如'git rm app/model/user.rb',該功能類似於SVN的rm、del
git commit:提交當前工作空間的修改內容,類似於SVN的commit命令,例如'git commit -m story #3, add user model',提交的時候必須用-m來輸入一條提交信息,該功能類似於SVN的commit
git push:將本地commit的代碼更新到遠程版本庫中,例如'git push origin'就會將本地的代碼更新到名爲orgin的遠程版本庫中
git log:查看歷史日誌,該功能類似於SVN的log
git revert:還原一個版本的修改,必須提供一個具體的Git版本號,例如'git revert bbaf6fb5060b4875b18ff9ff637ce118256d6f20',Git的版本號都是生成的一個哈希值
git思維導圖