日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
基礎(chǔ)|校招,你必須掌握的Git知識

寫在前面

最近在寫業(yè)務(wù)需求的時候,總是和導(dǎo)師的代碼發(fā)生沖突,自己在處理的時候還是挺耗費(fèi)時間的。導(dǎo)師一直提醒我更改和添加代碼后要及時提交,但是我總是一股腦寫完一串后才提交,沒有養(yǎng)成良好的提交習(xí)慣。在進(jìn)行協(xié)同工作時,導(dǎo)師提問git的使用原理,而我卻只能零星的幾個命令的作用?,F(xiàn)在就對常用的git命令的作用和原理進(jìn)行總結(jié),希望能夠幫助更多人少走彎路,提升開發(fā)效率。

站在用戶的角度思考問題,與客戶深入溝通,找到湖州網(wǎng)站設(shè)計與湖州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、空間域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋湖州地區(qū)。

1. git下載&配置

工欲善其事,必先利其器。你想要順利的使用git管理代碼,必須先下載和在本地配置好你的git環(huán)境。

  • 下載git工具,前往git官網(wǎng)自行根據(jù)電腦系統(tǒng)選擇對應(yīng)版本即可。
  • 配置和ssh賬戶信息,在命令行輸入配置git賬號信息并可以進(jìn)行查看。

當(dāng)然,配置git賬戶信息也分為項目級別和系統(tǒng)級別的,采用就近原則(項目級別優(yōu)先于系統(tǒng)級別,二者都有時采用項目級別的簽名),如果只有系統(tǒng)級別則以系統(tǒng)級別為準(zhǔn),但是不允許二者都沒有。通常的,設(shè)置系統(tǒng)級別賬戶信息即可。

 
 
 
 
  1. // 創(chuàng)建系統(tǒng)級別賬戶信息 
  2. $ git config --global user.name "我的姓名" 
  3. $ git config --global user.email "我的郵箱" 
  4.  
  5. // 查看系統(tǒng)級別賬戶信息 
  6. $ git config --global user.name  
  7. $ git config --global user.email 

項目賬戶信息存儲在.git/config文件中,系統(tǒng)賬戶信息存儲在~/.gitconfig中。

 
 
 
 
  1. // 創(chuàng)建項目級別賬戶信息 
  2. $ git config user.name "我的姓名" 
  3. $ git config user.email "我的郵箱" 
  4.  
  5. // 查看項目級別賬戶信息 
  6. $ git config user.name  
  7. $ git config user.email 

3.本地生成ssh密鑰,輸入并執(zhí)行 ssh-keygen -t rsa -C "xxxxx@xxxxx.com",如果執(zhí)行成功,切換到 ~/.ssh 目錄下輸入命令查看vim ~/.ssh/id_rsa.pub。

當(dāng)然你也可以使用windows電腦在c盤下進(jìn)行查找文件:

4.復(fù)制公鑰到github、gitlab以及碼云等git倉庫(切記三個平臺可以使用同一個公鑰)

5.查看ssh密鑰是否配置成功

 
 
 
 
  1. //碼云 
  2. ssh -T git@gitee.com 
  3. //Hi hanmeimei! You've successfully authenticated, but GITEE.COM does not provide shell access.表示連接成功  
  4.  
  5. //github 
  6. ssh -T git@github.com 
  7. //Hi hanmeimei! You've successfully authenticated, but GitHub does not provide shell access.表示連接成功。 

經(jīng)歷了以上五步,你就已經(jīng)順利完成了git環(huán)境的配置,可以和git進(jìn)行愉快地玩耍了。之所以讓你配置那么多,這是因?yàn)榭梢宰屇惚苊馐褂眯枰泐l繁輸入賬戶和密碼的https方式。具體的,通過ssh配置git可以通過本地私鑰和遠(yuǎn)程倉庫配置的公鑰進(jìn)行匹配,判讀是否為一對密鑰,可以讓你開發(fā)效率得以提升。

前面只是開胃菜,接下來將呈上正菜,硬菜干貨。

二. git簡要概述

一句話概括:git是一個開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何項目。

git的特點(diǎn)

git最核心的特點(diǎn)就是分布式,其實(shí)就是去中心化,讓它之間的依賴變?nèi)酢K前凑赵獢?shù)據(jù)方式存儲內(nèi)容數(shù)據(jù),將文件的元信息通過SHA-1哈希算法進(jìn)行處理隱藏在類似.svn、.cvs等文件中。

git的其它幾個特點(diǎn)是:

  • 協(xié)同修改,多人并行不悖地修改同一服務(wù)器的同一文件。
  • 數(shù)據(jù)備份,不僅保存目錄和文件的當(dāng)前狀態(tài),還能夠保存每個提交過的歷史狀態(tài)。
  • 版本管理,在保存每個版本的文件信息時,要做到不重復(fù)保存數(shù)據(jù),節(jié)約存儲空間,提升運(yùn)行效率。
  • 權(quán)限控制,對團(tuán)隊成員進(jìn)行權(quán)限控制,對團(tuán)隊外開發(fā)者的代碼進(jìn)行審核提交。
  • 歷史記錄,查看修改人員、修改時間、修改內(nèi)容、日志信息等,將本地文件回復(fù)到某一個歷史狀態(tài)。
  • 分支管理, 允許開發(fā)團(tuán)隊在工作過程中多條生產(chǎn)線并行工作,提升工作效率。

git的工作區(qū)域和流程

關(guān)于git是如何進(jìn)行工作和代碼管理的,那么我們得先去了解git的工作區(qū)域是如何劃分的,這樣我們才能在合適的區(qū)域使用合適的命令。

在本地系統(tǒng)中的git劃分為:工作區(qū)、暫存區(qū)和本地庫(版本庫),它們的大致作用如下:

  • 工作區(qū)(Workspace):就是本地系統(tǒng)的文件目錄,是當(dāng)前開發(fā)過程中看到的最新代碼
  • 暫存區(qū)(Index):在執(zhí)行g(shù)it add命令后,工作區(qū)的文件就臨時存儲在暫存區(qū)中,而暫存區(qū)就會對當(dāng)前移入的文件進(jìn)行標(biāo)記索引(index),告知那些文件是被git管理的。(在實(shí)際開發(fā)中,要養(yǎng)成使用git暫存代碼的好習(xí)慣,完成某個需求或功能后立刻使用git add 提交到暫存區(qū),防止自己手賤刪除)。
  • 本地庫(Respository):本地系統(tǒng)作為本地倉庫存儲著開發(fā)項目的歷史版本,在執(zhí)行g(shù)it commit命令后便會將提交暫存區(qū)的內(nèi)容到本地倉庫存儲。

本地系統(tǒng)的git工作區(qū)域

在上圖所示流程中,我們可以看到本地庫也是棧存儲的,在最后提交的文件會存放在最上面,在進(jìn)行g(shù)it回滾的時候取得head文件也是最后一次提交的文件內(nèi)容。

當(dāng)然將項目文件只存儲在本地倉庫是沒有任何意義的,我們使用git的目的不就是為了協(xié)同開發(fā)嘛?那么我們就應(yīng)該將代碼從本地庫上傳到遠(yuǎn)程庫。

  • 遠(yuǎn)程庫(Remote):就是用來托管代碼的服務(wù)器作為遠(yuǎn)程倉庫,通過執(zhí)git push命令將代碼從本地庫同步到遠(yuǎn)程庫中,這樣便能實(shí)現(xiàn)倉庫內(nèi)容分布在多個地點(diǎn)多個電腦進(jìn)行協(xié)同操作。

完整的git工作區(qū)域

簡而言之,git的工作流程就是:

  • 在工作區(qū)修改、添加文件
  • 將工作區(qū)中操作后的代碼通過git add添加到暫存區(qū)
  • 將暫存區(qū)的文件通過git commit提交到本地倉庫
  • 將本地庫的修改通過git push推送到遠(yuǎn)程庫,方便分布協(xié)同工作

三. git常用命令

git的工作就是創(chuàng)建和保存項目的快照以及與之后的快照進(jìn)行對比,接下來就讓我們上手實(shí)踐git常用命令。

創(chuàng)建本地倉庫和鏈接遠(yuǎn)程倉庫

  • git init:在本項目目錄下創(chuàng)建本地倉庫
  • git remote add origin:將本地倉庫與遠(yuǎn)程倉庫進(jìn)行鏈接,origin默認(rèn)是遠(yuǎn)程倉庫的別名url

查詢操作

文檔查詢

  • git help (--help):查詢git命令的幫助信息
  • git help -a:查詢git命令大綱全部信息列表
  • git help:查詢具體命令說明手冊

狀態(tài)查詢

  • git status:查看本地系統(tǒng)的git狀態(tài)
  • git reflog:查看git歷史操作記錄信息
  • git log:查看git操作日志

文件提交 git commit

  • git commit:提交暫存文件到本地庫,會打開編輯器進(jìn)行編輯。
  • git commit -m "filename message":提交暫存文件到本地庫,記錄下提交文件的備注。
  • git commit -am:提交暫存文件到本地庫,等價于git add . && git commit -m。
  • git commit --amend:提交暫存文件到本地庫,對最近的一次提交信息進(jìn)行修改,會修改commit的hash值。

拉取文件 git pull

  • git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>:從遠(yuǎn)程倉庫拉取代碼合并到本地工作區(qū),當(dāng)然日常拉取可以簡寫為git pull等價于git fetch && git merge。
  • git pull --rebase <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>:使用rebase模式進(jìn)行合并

拉取遠(yuǎn)程更改文件 git fetch

git fetch和git pull都是進(jìn)行遠(yuǎn)程文件拉取,區(qū)別在于git pull是將指定分支的所有文件合并到本地,而git fetch是將指定分支的更新文件進(jìn)行拉取,但是不會進(jìn)行合并

  • git fetch <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>:從遠(yuǎn)程倉庫拉取指定分支的更新內(nèi)容到本地指定分支。
  • git fetch --all:從遠(yuǎn)程倉庫拉取所有分支的更新內(nèi)容

分支管理

  • git branch:查看本地分支
  • git branch -r:查看遠(yuǎn)程分支
  • git branch -a:查看本地和遠(yuǎn)程分支
  • git checkout <其它分支>:從當(dāng)前分支切換到其它分支
  • git checkout -b <新建分支名>:創(chuàng)建并切換到新建分支
  • git branch -d <待刪除的分支名>:刪除指定的本地分支
  • git merge <指定分支名>:將當(dāng)前分支與指定分支進(jìn)行合并
  • git branch -m <舊分支名>:<新分支名>,將舊分支名更改為新分支名
  • git branch --merged:查看當(dāng)前有哪些分支已與當(dāng)前所處分支合并
  • git branch --no-merged:查看當(dāng)前有哪些分支尚未與當(dāng)前分支合并
  • git branch -v:查看本地的各個分支最后一次提交對象的信息
  • git branch -b <本地分支名> <遠(yuǎn)程分支名>,拉取遠(yuǎn)程分支并創(chuàng)建本地分支

撤銷操作

git checkout --:撤銷工作區(qū)的修改操作

git reset HEAD:撤銷暫存區(qū)的最后一次提交操作(不會覆蓋工作區(qū))

git reset --(soft|mixed|hard) |<指定commit id>:將當(dāng)前代碼回滾到指定版本

  • --hard指的是回滾全部代碼,包括HEAD、index、工作樹
  • --mixed指的是回滾部分代碼,包括HEAD、index
  • --soft指的是只回退到HEAD

差異比較

  • git diff:用于比較當(dāng)前工作區(qū)和暫存區(qū)的文件差異
  • git diff --cached:比較暫存區(qū)和本地庫最近一次commit提交的內(nèi)容
  • git diff HEAD:比較工作區(qū)和本地庫最近一次commit提交的內(nèi)容

思維導(dǎo)圖

小結(jié)

在本篇文章中是筆者在工作實(shí)際開發(fā)和閱讀文章總結(jié)的,可以快速讓你上手git開發(fā),事半功倍,希望對你工作和招聘有所幫助。


分享文章:基礎(chǔ)|校招,你必須掌握的Git知識
本文鏈接:http://www.dlmjj.cn/article/dpjspig.html