github客户端与git使用指南
?
目錄
?
一、環(huán)境配置
1. 首先本地安裝git
2. 到github使用郵箱注冊(cè)賬號(hào)
3. 將github與git關(guān)聯(lián)起來
4. github客戶端安裝(可選)
二、git指令
三、github客戶端使用指南
1. 基本概念
2. 對(duì)版本的基本操作
3. 分支branch
4. 團(tuán)隊(duì)協(xié)作
5. 貢獻(xiàn)開源項(xiàng)目流程
6. 額外的功能
四、git服務(wù)器搭建
一、環(huán)境配置
1. 首先本地安裝git
安裝教程:https://www.runoob.com/git/git-install-setup.html
windows系統(tǒng)直接到?https://gitforwindows.org/?下載并安裝
可以下載Sourcetree作為git客戶端使用
2. 到github使用郵箱注冊(cè)賬號(hào)
3. 將github與git關(guān)聯(lián)起來
參考鏈接:https://www.runoob.com/git/git-remote-repo.html
https://www.runoob.com/w3cnote/git-guide.html
步驟:
(1)打開安裝好的Git文件夾下的git-bash.exe
(2)輸入
$ ssh-keygen -t rsa -C "your_email@youremail.com"然后一路回車
(3)然后會(huì)生成.ssh文件,將id_rsa.pub用notepad++打開,并復(fù)制。(因?yàn)楸镜谿it倉庫和GitHub倉庫之間的傳輸是通過SSH加密傳輸?shù)?#xff0c;GitHub需要識(shí)別是否是你推送,GitHub只要知道了你的公鑰,就可以確認(rèn)只有你自己才能推送,所以需要配置ssh key。id_rsa和id_rsa.pub就是SSH Key的秘鑰對(duì),id_rsa是私鑰,不能泄露,id_rsa.pub是公鑰,可以公開。)
打開setting,將復(fù)制的黏貼到圖中key的位置,title可以隨便填。
(4)為了驗(yàn)證是否成功,在git bash下輸入:
$ ssh -T git@github.com Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.出現(xiàn)以上結(jié)果,說明連接成功了。
(5)Git 為你的每一個(gè)提交都記錄你的名字與電子郵箱地址,所以需要配置用戶名和郵箱地址。(global是針對(duì)所有倉庫)
$ git config --global user.name 'runoob' $ git config --global user.email test@runoob.com用戶名和郵箱信息可于github客戶端中修改。
4. github客戶端安裝(可選)
直接到?https://desktop.github.com/?下載安裝即可,然后打開客戶端登錄自己的賬號(hào)。
github客戶端使用指南:https://gitbeijing.com/? (這個(gè)文檔對(duì)應(yīng)的github網(wǎng)頁和github客戶端比較版本比較老的,有些地方不太一致)
配套慕課網(wǎng)課程:https://www.imooc.com/learn/390?(版本控制入門 – 搬進(jìn) Github)
二、git指令
直接看:https://www.runoob.com/git/git-tutorial.html?總結(jié)得挺好的。
快速git 指令?https://www.cnblogs.com/my--sunshine/p/7093412.html
https://www.cnblogs.com/Gxiaopan/p/6714539.html
git中的撤銷和回滾操作:https://blog.csdn.net/ligang2585116/article/details/71094887
快速github指令(標(biāo)準(zhǔn),但是是英文版):https://www.runoob.com/manual/github-git-cheat-sheet.pdf
git clone/git pull/git fetch 三者的區(qū)別:https://segmentfault.com/a/1190000017030384
部分總結(jié):
(1)總體流程
暫存區(qū)其實(shí)挺重要的,又可以作為本地電腦的一份備份,又不會(huì)產(chǎn)生版本信息。
(2)本地倉庫與遠(yuǎn)程倉庫關(guān)聯(lián)
將github網(wǎng)頁上新建的倉庫與本地的文件夾關(guān)聯(lián)起來,并push(origin是遠(yuǎn)程的意思)
1. // 本地初始化倉庫$ git init reponame 2. 在github官網(wǎng)上創(chuàng)建同名倉庫 3. 將本地倉庫與github的倉庫相關(guān)聯(lián)$ git remote add origin git@github.com:tianqixin/runoob-git-test.git 4. 將本地的倉庫 push 到遠(yuǎn)端倉庫的master分支$ git push -u origin master(3)標(biāo)簽管理
- 查看所有標(biāo)簽? ? git tag
- 創(chuàng)建標(biāo)簽? ? ? ? ? ?git tag name
- 指定提交信息? ? git tag -a name -m "comment"
- 刪除標(biāo)簽? ? ? ? ? ?git tag -d name
- 標(biāo)簽發(fā)布? ? ? ? ? ?git push origin name
(4) 常用指令
git init
在本地新建一個(gè)repo,進(jìn)入一個(gè)項(xiàng)目目錄,執(zhí)行g(shù)it init,會(huì)初始化一個(gè)repo,并在當(dāng)前文件夾下創(chuàng)建一個(gè).git文件夾.
git clone [url]
獲取一個(gè)url對(duì)應(yīng)的遠(yuǎn)程Git repo, 創(chuàng)建一個(gè)local copy
git status
查詢r(jià)epo的狀態(tài).
git status -s
-s表示short, -s的輸出標(biāo)記會(huì)有兩列,第一列是對(duì)staging區(qū)域而言,第二列是對(duì)working目錄而言.
git log
展示分支的commit歷史
git add .?
工作時(shí)的所有變化提交到暫存區(qū)(git add . 會(huì)把本地所有untrack的文件都加入暫存區(qū),并且會(huì)根據(jù).gitignore做過濾,但是git add * 會(huì)忽略.gitignore把任何文件都加入)
git add file
將指定文件提交到暫存區(qū)
git commit -m “the commit message"
commit時(shí)添加描述
git commit -a?
跳過add直接commit
git push?
push所有分支(clone 是本地沒有 repository 時(shí),將遠(yuǎn)程 repository 整個(gè)下載過來。pull 是本地有 repository 時(shí),將遠(yuǎn)程 repository 里新的 commit 數(shù)據(jù)(如有的話)下載過來,并且與本地代碼merge)
git push origin master?
將本地主分支推到遠(yuǎn)程主分支
git reset HEAD
取消已緩存的內(nèi)容
git branch (branchname)
創(chuàng)建分支命令
git checkout (branchname)
切換分支命令
git merge sub-branch
將子分支合并到master
git pull?
抓取遠(yuǎn)程倉庫所有分支更新并合并到本地
git revert
反轉(zhuǎn)撤銷提交.只要把出錯(cuò)的提交(commit)的名字(reference)作為參數(shù)傳給命令就可以了.
git revert HEAD
撤銷最近的一個(gè)提交.
git log
git log --oneline --number: 每條log只顯示一行,顯示number條
三、github客戶端使用指南
1. 基本概念
一次 commit 就對(duì)應(yīng)著一個(gè)版本,點(diǎn)擊14 commits 可查看詳細(xì)的commit歷史。繼續(xù)點(diǎn)擊簡(jiǎn)寫形式的版本號(hào)(只有7位)可查看詳細(xì)的改版內(nèi)容,包括完整的40位16進(jìn)制版本號(hào)。
當(dāng)前分支不等于默認(rèn)分支
2. 對(duì)版本的基本操作
(1)不僅可以選擇添加哪個(gè)文件到下一個(gè)版本中,還可以選擇添加文件的部分內(nèi)容到下一個(gè)版本中。
(2)選擇undo可以撤銷上一次commit的版本,只適用于沒有同步(push)到github上的版本。
(3)如果已經(jīng)同步到github上,可以在歷史版本上右鍵,選擇revert this commit,然后push到github,即可抵消上一次commit的操作。(同時(shí)會(huì)修改本地的文件)
(4)如果要選擇回滾到某次commit,可以在歷史版本上右鍵,選擇roll back to this commit。(免費(fèi)版的github客戶端沒有這個(gè)功能,可以選擇使用git指令來實(shí)現(xiàn))。
3. 分支branch
(1)分支合并分為兩種方式:merge 和 rebase
merge:合并分支時(shí),首先把當(dāng)前分支切換為主分支,然后把分分支merge到主分支。
rebase:
(2)區(qū)別:你可以認(rèn)為rebase的作用是修剪枝杈,merge只是按照操作順序進(jìn)行合并代碼,不按時(shí)間順序的commit只能作為分支嫁接到主干上。rebase就是把這些枝杈剪下來,按照時(shí)間重排之后重新嫁接到主干上,因此被rebase修剪過的commit會(huì)非常好看,在分支圖上看到的是一條直線。缺點(diǎn)就是你的merge不按時(shí)間順序來的太多,會(huì)導(dǎo)致以前解決過的沖突全部重新解決一次,非常痛苦,因此選用rebase還是merge團(tuán)隊(duì)一開始就必須規(guī)定好,否則后期調(diào)整很麻煩。
(3)合并分支導(dǎo)致的代碼沖突:
但是如果在兩個(gè)分支上改動(dòng)了同一個(gè)地方,合并的就會(huì)出現(xiàn)代碼沖突。 因?yàn)?git 不知道該聽哪個(gè)分支的,所以只能報(bào)出沖突的位置,讓開發(fā)者手動(dòng)解決。
4. 團(tuán)隊(duì)協(xié)作
整個(gè) Github Flow 的幾個(gè)步驟:
第一步,創(chuàng)建新分支,用來開發(fā)這個(gè)新功能。如下圖所示
第二步,不斷實(shí)現(xiàn)功能,做成一個(gè)個(gè)新版本。
第三步,發(fā)起”拉取請(qǐng)求“( Pull Request ),后面簡(jiǎn)稱 PR 吧。
將完成的新分支push到github上,然后拉起請(qǐng)求
拉起請(qǐng)求后,可以查看新分支相對(duì)于master詳細(xì)的修改信息
第四步,大家討論。這是一個(gè)代碼審核的過程。
第五步,部署代碼。
第六步,把分支的內(nèi)容合并到 master 。
這就是整個(gè) Github Flow 的幾個(gè)步驟了。
5. 貢獻(xiàn)開源項(xiàng)目流程
基于 fork 的整個(gè)的流程就是上圖展示的思路。第一步,先 fork,這樣我就有了 happypeter/TLCL 這個(gè)倉庫了,既然是屬于自己的倉庫,我就可以把它 clone 到本地,做修改,然后推送到回這個(gè)倉庫之中。這樣我把我自己的倉庫(或者說 fork )跟上游的倉庫( billie66 名下的倉庫)來進(jìn)行對(duì)比,就可以發(fā) Pull Request 了,最后項(xiàng)目的協(xié)作者來決定是否merge。
如果只是要改一個(gè)很小的地方,可以直接在github網(wǎng)頁版上,打開這個(gè)項(xiàng)目的某個(gè)文件,然后直接編輯。
6. 額外的功能
Github 上的每個(gè)項(xiàng)目倉庫,都有三套基礎(chǔ)設(shè)置可供使用:一個(gè)是通過 Github Pages 機(jī)制建立項(xiàng)目網(wǎng)站,后面會(huì)介紹的。另外一個(gè)就是每個(gè)項(xiàng)目都可以開自己的 wiki ,作為項(xiàng)目的知識(shí)庫。第三個(gè)就是咱們今天的主角,事務(wù)卡片( Issues )。很多比較復(fù)雜的項(xiàng)目管理軟件會(huì)把“報(bào) Bug ”,“提新需求”,“其他討論”,這些項(xiàng)目相關(guān)的內(nèi)容分成不同的板塊來進(jìn)行,在 Github 這里,所有的內(nèi)容就都作為事務(wù)卡片來統(tǒng)一管理了。
(1)issues
issues與pull request區(qū)別: pull request是修改代碼后引發(fā)的討論,而issues一般是先有討論,再配合解釋或修改代碼。
commit 版本時(shí),描述加上issues號(hào),push之后,就會(huì)出現(xiàn)在issuues的記錄里。(前提是必須在master分支上)
這樣寫,會(huì)關(guān)閉編號(hào)為2的事務(wù)卡片。
(2)GitHub Pages 搭建網(wǎng)站
四、git服務(wù)器搭建
Github 公開的項(xiàng)目是免費(fèi)的,但是如果你不想讓其他人看到你的項(xiàng)目就需要收費(fèi)。這時(shí)我們就需要自己搭建一臺(tái)Git服務(wù)器作為私有倉庫使用。
兩者的教程基本一致
以 Centos 為例搭建 Git 服務(wù)器:?https://www.runoob.com/git/git-server.html
以 ubuntu為例搭建 Git 服務(wù)器:https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664
?
總結(jié)
以上是生活随笔為你收集整理的github客户端与git使用指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ListView几个比较特殊的属性
- 下一篇: [转]Microsoft Solutio