教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Github官網(wǎng)git手冊(cè)

更新時(shí)間:2019年02月12日11時(shí)46分 來(lái)源:github官網(wǎng) 瀏覽次數(shù):

什么是版本控制系統(tǒng)?

版本控制系統(tǒng)或VCS會(huì)跟蹤人員和團(tuán)隊(duì)一起協(xié)作項(xiàng)目時(shí)的更改歷史記錄。隨著項(xiàng)目的發(fā)展,團(tuán)隊(duì)可以運(yùn)行測(cè)試,修復(fù)錯(cuò)誤并提供新代碼,并確信任何版本都可以隨時(shí)恢復(fù)。開(kāi)發(fā)人員可以查看項(xiàng)目歷史記錄以找出:

·做了哪些更改?

·是誰(shuí)做出了改變?

·什么時(shí)候做出改變?

·為什么需要更改?

·什么是分布式版本控制系統(tǒng)?

Git是通常用于開(kāi)源和商業(yè)軟件開(kāi)發(fā)的分布式版本控制系統(tǒng)(DVCS)的示例。DVCS允許完全訪問(wèn)項(xiàng)目的每個(gè)文件,分支和迭代,并允許每個(gè)用戶訪問(wèn)所有更改的完整且自包含的歷史記錄。與曾經(jīng)流行的集中式版本控制系統(tǒng)不同,像Git這樣的DVCS不需要與中央存儲(chǔ)庫(kù)的持續(xù)連接。開(kāi)發(fā)人員可以在任何地方工作,并可以從任何時(shí)區(qū)異步協(xié)作。

如果沒(méi)有版本控制,團(tuán)隊(duì)成員將受到冗余任務(wù),較慢的時(shí)間線和單個(gè)項(xiàng)目的多個(gè)副本的影響。為了消除不必要的工作,Git和其他VCS為每個(gè)貢獻(xiàn)者提供了一個(gè)統(tǒng)一且一致的項(xiàng)目視圖,展示了正在進(jìn)行的工作。查看變更的透明歷史,由誰(shuí)創(chuàng)建,以及他們?nèi)绾螢轫?xiàng)目的開(kāi)發(fā)做出貢獻(xiàn),有助于團(tuán)隊(duì)成員在獨(dú)立工作時(shí)保持一致。

為什么Git?

根據(jù)最新的Stack Overflow開(kāi)發(fā)人員調(diào)查,超過(guò)70%的開(kāi)發(fā)人員使用Git,使其成為世界上使用最多的VCS。Git通常用于開(kāi)源和商業(yè)軟件開(kāi)發(fā),為個(gè)人,團(tuán)隊(duì)和企業(yè)帶來(lái)顯著的好處。

Git允許開(kāi)發(fā)人員在一個(gè)地方查看他們的變更,決策和任何項(xiàng)目進(jìn)展的整個(gè)時(shí)間表。從他們?cè)L問(wèn)項(xiàng)目歷史的那一刻起,開(kāi)發(fā)人員就擁有了解它并開(kāi)始貢獻(xiàn)所需的所有上下文。

開(kāi)發(fā)人員在每個(gè)時(shí)區(qū)工作。使用像Git這樣的DVCS,可以在保持源代碼完整性的同時(shí)進(jìn)行協(xié)作。使用分支,開(kāi)發(fā)人員可以安全地建議更改生產(chǎn)代碼。

使用Git的企業(yè)可以打破團(tuán)隊(duì)之間的溝通障礙,讓他們專注于做最好的工作。此外,Git使整個(gè)企業(yè)的專家能夠在重大項(xiàng)目上進(jìn)行協(xié)作。

什么是存儲(chǔ)庫(kù)?

一個(gè)倉(cāng)庫(kù),或Git項(xiàng)目,包括與項(xiàng)目相關(guān)的文件和文件夾的整個(gè)集合,每個(gè)文件的修訂歷史記錄一起。文件歷史記錄顯示為稱為提交的快照,并且提交作為鏈接列表關(guān)系存在,并且可以組織成稱為分支的多個(gè)開(kāi)發(fā)行。由于Git是DVCS,因此存儲(chǔ)庫(kù)是自包含單元,擁有存儲(chǔ)庫(kù)副本的任何人都可以訪問(wèn)整個(gè)代碼庫(kù)及其歷史記錄。使用命令行或其他易用的接口,git存儲(chǔ)庫(kù)還允許:與歷史記錄,克隆,創(chuàng)建分支,提交,合并,比較代碼版本之間的更改等進(jìn)行交互。

在存儲(chǔ)庫(kù)中工作可以保持開(kāi)發(fā)項(xiàng)目的組織和保護(hù)。鼓勵(lì)開(kāi)發(fā)人員修復(fù)錯(cuò)誤或創(chuàng)建新功能,而不必?fù)?dān)心會(huì)破壞主線開(kāi)發(fā)工作。Git通過(guò)使用主題分支來(lái)實(shí)現(xiàn)這一點(diǎn):歷史記錄中的提交的輕量級(jí)指針可以在不再需要時(shí)輕松創(chuàng)建和棄用。

通過(guò)像GitHub這樣的平臺(tái),Git還為項(xiàng)目透明度和協(xié)作提供了更多機(jī)會(huì)。公共存儲(chǔ)庫(kù)可幫助團(tuán)隊(duì)協(xié)同工作,以構(gòu)建最佳的最終產(chǎn)品。

基本Git命令

要使用Git,開(kāi)發(fā)人員使用特定命令來(lái)復(fù)制,創(chuàng)建,更改和組合代碼。這些命令可以直接從命令行執(zhí)行,也可以使用GitHub Desktop或Git Kraken 等應(yīng)用程序執(zhí)行。以下是一些使用Git的常用命令:

git init
初始化一個(gè)全新的Git存儲(chǔ)庫(kù)并開(kāi)始跟蹤現(xiàn)有目錄。它在現(xiàn)有目錄中添加了一個(gè)隱藏的子文件夾,其中包含版本控制所需的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。

git clone
創(chuàng)建已遠(yuǎn)程存在的項(xiàng)目的本地副本??寺“ㄋ许?xiàng)目的文件,歷史記錄和分支。

git add
發(fā)生變化。Git跟蹤對(duì)開(kāi)發(fā)人員代碼庫(kù)的更改,但是有必要暫存并拍攝更改的快照以將其包含在項(xiàng)目的歷史記錄中。此命令執(zhí)行分段,這是兩步過(guò)程的第一部分。任何已暫存的更改都將成為下一個(gè)快照的一部分,并成為項(xiàng)目歷史的一部分。分別進(jìn)行分段和提交可使開(kāi)發(fā)人員完全控制其項(xiàng)目的歷史記錄,而無(wú)需更改其編碼和工作方式。

git commit
將快照保存到項(xiàng)目歷史記錄中并完成更改跟蹤過(guò)程。簡(jiǎn)而言之,提交功能就像拍照片一樣。任何已經(jīng)上演的東西都git add將成為快照的一部分git commit。

git status
將更改狀態(tài)顯示為未跟蹤,已修改或已暫存。

git branch
顯示在本地工作的分支。

git merge
將發(fā)展線融合在一起。此命令通常用于組合在兩個(gè)不同分支上進(jìn)行的更改。例如,當(dāng)開(kāi)發(fā)人員想要將來(lái)自功能分支的更改組合到主分支以進(jìn)行部署時(shí),他們會(huì)合并。

git pull
使用遠(yuǎn)程對(duì)應(yīng)的更新更新本地開(kāi)發(fā)線。如果隊(duì)友已經(jīng)對(duì)遠(yuǎn)程分支進(jìn)行了提交,開(kāi)發(fā)人員會(huì)使用此命令,并且他們希望在本地環(huán)境中反映這些更改。

git push
使用本地提交給分支的任何提交來(lái)更新遠(yuǎn)程存儲(chǔ)庫(kù)。

從Git命令的完整參考指南中了解更多信息。

探索更多Git命令

有關(guān)Git實(shí)踐的詳細(xì)介紹,展示了如何充分利用一些Git命令。

git status

兩步提交

git pull 和 git push

GitHub如何適應(yīng)

GitHub是一個(gè)Git托管存儲(chǔ)庫(kù),它為開(kāi)發(fā)人員提供工具,通過(guò)命令行功能,問(wèn)題(線程討論),拉取請(qǐng)求,代碼審查或在GitHub Marketplace中使用一系列免費(fèi)和購(gòu)買應(yīng)用程序來(lái)發(fā)送更好的代碼。通過(guò)GitHub流程等協(xié)作層,擁有1500萬(wàn)開(kāi)發(fā)人員的社區(qū)以及擁有數(shù)百個(gè)集成的生態(tài)系統(tǒng),GitHub改變了軟件的構(gòu)建方式。

GitHub如何工作

GitHub直接將協(xié)作構(gòu)建到開(kāi)發(fā)過(guò)程中。工作被組織到存儲(chǔ)庫(kù)中,開(kāi)發(fā)人員可以在其中概述需求或方向并為團(tuán)隊(duì)成員設(shè)置期望。然后,使用GitHub流程,開(kāi)發(fā)人員只需創(chuàng)建一個(gè)分支來(lái)處理更新,提交更改以保存更新,打開(kāi)拉取請(qǐng)求以提出并討論更改,并在每個(gè)人都在同一頁(yè)面上時(shí)合并拉取請(qǐng)求。

GitHub流程

GitHub流程是一個(gè)基于分支的輕量級(jí)工作流程,圍繞全球團(tuán)隊(duì)(包括我們的團(tuán)隊(duì))使用的核心Git命令構(gòu)建。

GitHub流程有六個(gè)步驟,每個(gè)步驟在實(shí)施時(shí)都有明顯的好處:

創(chuàng)建分支:從規(guī)范部署分支(通常master)創(chuàng)建的主題分支允許團(tuán)隊(duì)為許多并行工作做出貢獻(xiàn)。特別是短命的主題分支,可以使團(tuán)隊(duì)專注并快速發(fā)展。

添加提交:分支內(nèi)的開(kāi)發(fā)工作快照可在項(xiàng)目歷史記錄中創(chuàng)建安全,可恢復(fù)的點(diǎn)。

打開(kāi)拉取請(qǐng)求:拉取請(qǐng)求宣傳項(xiàng)目的持續(xù)努力,并為透明的開(kāi)發(fā)過(guò)程定下基調(diào)。

討論和審查代碼:團(tuán)隊(duì)通過(guò)評(píng)論,測(cè)試和審查開(kāi)放拉取請(qǐng)求來(lái)參與代碼審查。代碼審查是開(kāi)放和參與性文化的核心。

合并:點(diǎn)擊合并后,GitHub會(huì)自動(dòng)執(zhí)行本地“git merge”操作。GitHub還在合并的拉取請(qǐng)求中保留整個(gè)分支開(kāi)發(fā)歷史記錄。

部署:團(tuán)隊(duì)可以選擇最佳的發(fā)布周期或合并持續(xù)集成工具,并確保部署分支上的代碼經(jīng)過(guò)了強(qiáng)大的工作流程。

了解有關(guān)GitHub流程的更多信息

開(kāi)發(fā)人員可以在下面提供的資源中找到有關(guān)GitHub流的更多信息。

互動(dòng)指南

GitHub Flow視頻

GitHub和命令行

對(duì)于剛接觸命令行的開(kāi)發(fā)人員,GitHub培訓(xùn)團(tuán)隊(duì)已經(jīng)整理了一系列關(guān)于Git命令的教程來(lái)指導(dǎo)方向。有時(shí)候,一系列命令可以描繪出如何使用Git的圖片:

示例:為現(xiàn)有存儲(chǔ)庫(kù)提供幫助

# download a repository on GitHub.com to our machine
git clone https://github.com/me/repo.git
# change into the `repo` directory
cd repo
# create a new branch to store any new changes
git branch my-branch
# switch to that branch (line of development)
git checkout my-branch
# make changes, for example, edit `file1.md` and `file2.md` using the text 
editor
# stage the changed files
git add file1.md file2.md
# take a snapshot of the staging area (anything that's been added)
git commit -m "my snapshot"
# push changes to github
git push --set-upstream origin my-branch

示例:?jiǎn)?dòng)新存儲(chǔ)庫(kù)并將其發(fā)布到GitHub

首先,您需要在GitHub上創(chuàng)建一個(gè)新的存儲(chǔ)庫(kù)。您可以在我們的Hello World指南中學(xué)習(xí)如何創(chuàng)建新的存儲(chǔ)庫(kù)。不要使用README,.gitignore或License初始化存儲(chǔ)庫(kù)。這個(gè)空的存儲(chǔ)庫(kù)將等待您的代碼。

# create a new directory, and initialize it with git-specific functions
git init my-repo
# change into the `my-repo` directory
cd my-repo
# create the first file in the project
touch README.md
# git isn't aware of the file, stage it
git add README.md
# take a snapshot of the staging area
git commit -m "add README to initial commit"
# provide the path for the repository you created on github
git remote add origin 
https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git
# push changes to github
git push --set-upstream origin master

示例:貢獻(xiàn)給GitHub上的現(xiàn)有分支

# assumption: a project called `repo` already exists on the machine, and a 
new branch has been pushed to GitHub.com since the last time changes were made 
locally
# change into the `repo` directory
cd repo
# update all remote tracking branches, and the currently checked out 
branch
git pull
# change into the existing branch called `feature-a`
git checkout feature-a
# make changes, for example, edit `file1.md` using the text editor
# stage the changed file
git add file1.md
# take a snapshot of the staging area
git commit -m "edit file1"
# push changes to github
git push

協(xié)作開(kāi)發(fā)的模型


人們?cè)贕itHub上合作有兩種主要方式:

1.共享存儲(chǔ)庫(kù)

2.叉和拉

使用共享存儲(chǔ)庫(kù),個(gè)人和團(tuán)隊(duì)被明確指定為具有讀取,寫入或管理員訪問(wèn)權(quán)限的貢獻(xiàn)者。這種簡(jiǎn)單的權(quán)限結(jié)構(gòu)與受保護(hù)的分支和Marketplace等功能相結(jié)合,可以幫助團(tuán)隊(duì)在采用GitHub時(shí)快速進(jìn)步。

對(duì)于開(kāi)源項(xiàng)目或任何人都可以貢獻(xiàn)的項(xiàng)目,管理個(gè)人權(quán)限可能具有挑戰(zhàn)性,但是fork and pull模型允許任何可以查看項(xiàng)目的人做出貢獻(xiàn)。fork是開(kāi)發(fā)人員個(gè)人帳戶下項(xiàng)目的副本。每個(gè)開(kāi)發(fā)人員都可以完全控制他們的分支,并可以自由地實(shí)現(xiàn)修復(fù)或新功能。在貨叉中完成的工作要么保持獨(dú)立,要么通過(guò)拉動(dòng)請(qǐng)求浮現(xiàn)回原始項(xiàng)目。在那里,維護(hù)人員可以在合并之前查看建議的更改。

git手冊(cè)

猜你喜歡:
程序員刷題神器-趣IT(https://www.funit.cn)

0 分享到:
和我們?cè)诰€交談!