
git與github
在學(xué)習(xí)如何使用git和github前我們先詳細(xì)了解下什么是git?而github又是什么?
git是一種分布式版本控制系統(tǒng),他可以記錄你開發(fā)過程中的每一次改動,也就是記錄你每次改變的版本,可以進(jìn)行回退,在版本間自由切換。而且git是分布式的也就說更利于團(tuán)隊(duì)間的合作,你發(fā)布你的版本后,如果有其他成員想對它進(jìn)項(xiàng)更改,只需要git clone你的版本 改動后在push下 如果你感覺他的改動符合你的想法只需要 合并就可以形成新的版本了。
而github就是一個開源的社區(qū),使用git來進(jìn)行操作。github就像是一個大倉庫,儲存了很多優(yōu)秀的開源代碼,也有人戲稱github是最大的 “同性交友社區(qū)”。
在了解了git與github后我們就來看一看如何進(jìn)行操作吧。(以下例子是已經(jīng)下載git 并且配置環(huán)境變量的前提下)
比如我完成了我的項(xiàng)目,以后可能會進(jìn)行更改,但是我又怕改動后找不到原來的版本了這時候我就覺得我該使用git了。
我的倉庫名字叫做 “demo”,這時候我需要在命令行輸出 cd demo 切換到demo目錄下:
然后 git init 代表我初始化了這個項(xiàng)目 要使用git對其進(jìn)行操作
再然后 使用 git add * 代表我把這個項(xiàng)目所有文件都存到了git的暫存區(qū)中
之后 git commit -m “版本一” 這句代表我這次的提交說明,代表我這次提交的是項(xiàng)目的版本一
這個時候如果你暫時不打算使用github,基本就告一段落了,git已經(jīng)把你的項(xiàng)目復(fù)制到一個隱藏的文件夾內(nèi)并且給她設(shè)置了一個名為版本一的信息。
這個時候你突然想繼續(xù)更改你的項(xiàng)目,只需要直接更改。 更改過后你想把這次的更改提交為版本二 這個時候 使用 git status 就可以查看你這次跟上次相比改動的部分,然后依舊 git add * 也可以只提交你改動的文件 * 代表所有文件。 之后git commit -m “版本二” 代表第二次提交的名稱為版本二。
你發(fā)布版本二后發(fā)現(xiàn)這個版本并不是你想要的你想從版本一重新開始編輯 這個時候我們使用 git log 可以查看每次提交的git 歷史記錄 我們可以看到有 版本一 版本二兩個版本,使用 git reset --hard HEAD^ 這個時候我們打開項(xiàng)目發(fā)現(xiàn)我們的項(xiàng)目代碼退回到了版本一的樣子。
git reset --hard commit_id 這個命令就是讓git回退到指定版本 使用git reflog可以查看每次版本的 commit_id ,之后使用命令就可切換到對應(yīng)版本。
現(xiàn)在我們想把我們的項(xiàng)目發(fā)布到github中:(下面例子在你已經(jīng)注冊了github的前提下進(jìn)行)
生成ssh-key : ssh-keygen -t rsa -c "user-email"
然后 cat ~/.ssh/id_rsa.pub 查看剛剛創(chuàng)建的ssh-key 復(fù)制它
如果命令無效 你就在你的盤中找id_rsa.pub文件復(fù)制里面的內(nèi)容。
在github中有個ssh設(shè)置 把你復(fù)制的內(nèi)容粘貼到上面。
然后輸入 ss -T git@github.com 查看是否連接github成功。
如果回車看到:You’ve successfully authenticated, but GitHub does not provide shell access 。表示已成功連上github。
首先讓git與github創(chuàng)建一個連接:
git config --global user.name 設(shè)置你的github名字到git配置文件中
git config --global user.email 設(shè)置你的github郵箱到你的git配置文件中
然后在github中創(chuàng)建一個庫用來裝你本地的項(xiàng)目,創(chuàng)建成功后 會有一個庫的地址記錄下來
git remote add origin git@github.com:yourName/yourRepo.git 把后面的部分改成你的倉庫地址 代表將你的項(xiàng)目與github庫連接
接下來使用 git push origin master 代表將你的本地項(xiàng)目上傳到github中 master代表上傳到主分支 如果傳到其他分支則需要更改為其他分支名字。
如果本地更改依舊執(zhí)行上述 git add 和 git commit 命令 然后git push 上傳,github就會更新你的項(xiàng)目。
這里有個注意點(diǎn),就是如果你在github中更改了文件,本地是不會有改動的,這個時候如果你改動了本地在push 就會有錯誤。 你先使用git pull 更新本地庫 然后 git merge <branch> 嘗試自動合并你的改動 之后再push 就可以了。
最后
其實(shí)還有如git checkout 、git branch等命令我沒有詳細(xì)的講,因?yàn)樯婕疤辔疫@里只是講一個大概的git與github的流程,讓大家對git和github有個簡單的了解。 如果大家想詳細(xì)的學(xué)習(xí)git我推薦下廖雪峰老師的git教學(xué),百度就可以搜到,很詳細(xì)并且有許多的配圖能形象的了解git的原理,我的文章中如果有哪些錯誤也請大家指正,我會加以修改。
最后也希望我能堅持住無聊時寫一些文章的習(xí)慣吧,我的個人博客也會同步更新文章。