一天學(xué)習(xí)使用git

一:Git GitHub gitlab 三者的介紹

Git:是一個(gè)類似CVS,SVN的代碼版本管理軟件,用于敏捷高效地處理任何或小或大的項(xiàng)目,是一個(gè)完全分布式的版本控制工具。

Git的優(yōu)點(diǎn):①防止代碼丟失;②遠(yuǎn)程同步代碼;③利于團(tuán)隊(duì)協(xié)作;④記錄代碼版本;⑤代碼還原

分布式版本系統(tǒng)的最大好處之一是在本地工作完全不需要考慮遠(yuǎn)程庫(kù)的存在,也就是有沒有聯(lián)網(wǎng)都可以正常工作,而SVN在沒有聯(lián)網(wǎng)的時(shí)候是拒絕干活的!當(dāng)有網(wǎng)絡(luò)的時(shí)候,再把本地提交推送一下就完成了同步

GitHub:是一個(gè)用Git做版本控制的項(xiàng)目托管平臺(tái),提供給用戶空間創(chuàng)建git倉(cāng)儲(chǔ),保存用戶的一些數(shù)據(jù)文檔或者代碼等,是程序猿發(fā)布和尋找好代碼的天堂~

gitlab:是一款基于Git的項(xiàng)目管理軟件

GitHub和gitlab都是基于Git建立的,可以說是git的衍生品

此處插一句廣告,哈哈,GitHub是全球范圍的代碼托管平臺(tái),而碼云是國(guó)內(nèi)的代碼托管平臺(tái),訪問就比GitHub快多了。

或者可以利用域名重定向解決GitHub國(guó)內(nèi)訪問慢,方法在這:?武功秘籍

創(chuàng)建配置一個(gè)SSH密匙,在git bash命令框中執(zhí)行命令 ssh-keygen -t -rsa -C "碼云或者GitHub的郵箱地址",接著一路回車即可,最后就生成一個(gè)公鑰(id_rsa.pub),可以放心給人看,一個(gè)秘鑰(id_rsa),不能透露出去。

為什么GitHub需要SSH Key呢?因?yàn)镚itHub需要識(shí)別出你推送的提交確實(shí)是你推送的,而不是別人冒充的,而Git支持SSH協(xié)議,所以,GitHub和碼云只要知道了你的公鑰,就可以確認(rèn)只有你自己才能推送。GitHub允許你添加多個(gè)Key。假定你有若干電腦,你一會(huì)兒在公司提交,一會(huì)兒在家里提交,只要把每臺(tái)電腦的Key都添加到GitHub,就可以在每臺(tái)電腦上往GitHub推送了。

遠(yuǎn)程庫(kù)的名字就是origin,這是Git默認(rèn)的叫法,也可以改成別的,但是origin這個(gè)名字一看就知道是遠(yuǎn)程庫(kù)。

二:git常用命令的使用

注明:以下是根據(jù)廖雪峰大神的教程學(xué)習(xí)

快速設(shè)置

1、git clone url地址(這個(gè)是代碼托管地址) ——克隆遠(yuǎn)程倉(cāng)庫(kù)項(xiàng)目

? ? git clone -b 分支名 url地址 ?——克隆指定分支的內(nèi)容到本地

2、cd git-demo(本地新建的git倉(cāng)庫(kù))——切換到本地git倉(cāng)庫(kù)

3、git status ——查看本地git倉(cāng)庫(kù)的狀態(tài)

4、git add Readme.txt(這個(gè)是要添加的文件)——添加要提交的文件到你本地倉(cāng)庫(kù)的代碼

5、git commit -m "提交信息" ?——提交到本地倉(cāng)庫(kù)

git流程圖
add操作把準(zhǔn)備提交的文件添加到緩沖區(qū)
commit把緩沖區(qū)的文件一次性提交到分支上

重要概念:Git跟蹤并管理的是修改,而不是文件 (eg:每次修改,如果不add到緩沖區(qū),就不會(huì)被加入到commit中)

6、git push ?——推送到遠(yuǎn)程倉(cāng)庫(kù)

7、從遠(yuǎn)程倉(cāng)庫(kù)上拉取項(xiàng)目下來到本地倉(cāng)庫(kù)2方式:

①git fetch + git merge = git pull (推薦用這種) ②git pull (太強(qiáng)制了,沖突時(shí)會(huì)直接覆蓋本地)

8、git branch ——查看本地分支

9、git branch --all ?——查看所有分支(包括本地和遠(yuǎn)程)

10、git checkout dev ?——切換到dev(自己新建的)分支

? ? ? ? git checkout master ?——切換到master主分支

? ? ? ? git merge dev ? ——合并dev分支到當(dāng)前分支

11、git init ?——把當(dāng)前文件夾初始化為git文件夾

12、git remote add origin url地址(遠(yuǎn)程代碼倉(cāng)庫(kù)地址)——把本地的git倉(cāng)庫(kù)和遠(yuǎn)程的git倉(cāng)庫(kù)掛上鉤

13、git diff 文件名 ?——查看本地某個(gè)文件修改了什么內(nèi)容

14、git branch 分支名 ?—— 新建一個(gè)分支

15、git log ——顯示從最近到最遠(yuǎn)的提交日志,顯示提交記錄的詳細(xì)信息

? ? ? ? 如果嫌輸出信息太多,可以加上參數(shù) -pretty=oneline ?顯示提交記錄的簡(jiǎn)短信息

16、cat 文件名 ?——查看某個(gè)文件的內(nèi)容

17、git reset --hard HEAD^ ?——把版本庫(kù)回退到之前的版本,例如時(shí)光穿梭機(jī),HEAD代表當(dāng)前版本,HEAD^代表上一個(gè)版本,HEAD^^代表上 ? ? ? ? 2個(gè)版本,HEAD~100代表上100個(gè)版本

18、git reflog ?——用來記錄你的每一次命令,所以找到了commit id就有后悔藥吃了,但是記住如果push到遠(yuǎn)程倉(cāng)庫(kù)就沒救了

廖雪峰Git教學(xué)

19、git checkout -- 文件名 ——撤回未add到緩沖區(qū)的文件,記得--與文件名中間有個(gè)空格

轉(zhuǎn)

20、git reset HEAD 添加到暫存區(qū)的文件名 ?——git reset命令既可以回退版本,也可以把暫存區(qū)的修改回退到工作區(qū)。

21、rm 文件名 ?——從本地工作區(qū)中刪除文件,若是誤刪,可以使用git checkout -- 文件名 來從版本庫(kù)中恢復(fù)文件到本地工作區(qū)。但要是使用命令git rm 文件名 再git commit 提交刪除操作就從版本庫(kù)中刪除了文件,就恢復(fù)不了到本地工作區(qū)了

22、git push -u origin master ?——由于遠(yuǎn)程庫(kù)是空的,我們第一次推送master分支時(shí),加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令。

三:分支管理

git分支圖

你創(chuàng)建了一個(gè)屬于你自己的分支,別人看不到,還繼續(xù)在原來的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到開發(fā)完畢后,再一次性合并到原來的分支上,這樣,既安全,又不影響別人工作。

多人協(xié)作開發(fā)的規(guī)則,如下,基本都是先pull最新的下來改完再push

四:Idea結(jié)合git開發(fā)

1、創(chuàng)建項(xiàng)目(我自已有一個(gè)小練習(xí)),把它初始化為git項(xiàng)目,成功后文件夾會(huì)產(chǎn)生一個(gè).git文件,這個(gè)文件是記錄倉(cāng)庫(kù)的配置和版本的,最好不要?jiǎng)印?/p>

這些文件都會(huì)變紅表示沒有被追蹤

2、右鍵項(xiàng)目 Git->Add 就把項(xiàng)目添加到緩沖區(qū),文件就會(huì)變綠

3、右鍵項(xiàng)目 Git->Commit ?就把項(xiàng)目提交到本地倉(cāng)庫(kù)中

確保沒什么錯(cuò)的話就直接點(diǎn)commit了,如下

4、最后推送到遠(yuǎn)程倉(cāng)庫(kù)去

創(chuàng)建一個(gè)新分支并把代碼上傳到此分支

PS:使用命令行時(shí)遇到這個(gè)情況時(shí):git add命令,git commit命令,最后git push命令推送到遠(yuǎn)程倉(cāng)庫(kù),但是在git push 時(shí)出現(xiàn)了報(bào)錯(cuò),百度了解決方案,如下,任選一種即可

解決方案

這樣本地的項(xiàng)目就推送到遠(yuǎn)程倉(cāng)庫(kù)了


推薦文章:

Git從碼云Clone代碼到本地

怎么用IDEA上傳本地項(xiàng)目到碼云/Github?

神功秘籍,講的很好的一篇文章!

IntelliJ IDEA下的使用git


更新:

這有一篇非常簡(jiǎn)潔的文章將本地項(xiàng)目push到碼云上的文章,我貼出來分享:通過git把本地項(xiàng)目push到碼云上

還有可能是由于我之前改過git的密碼,而本機(jī)計(jì)算機(jī)之前存的密碼憑證沒有更改過,所以出現(xiàn)了再clone和push項(xiàng)目時(shí)總是報(bào)錯(cuò):fatal: Authentication failed for 'https://gitee.com/? 還有Incorrect username or password (access token)的錯(cuò)誤、這里通過百度

輸入命令git config --system --unset credential.helper? 重置用戶配置,之后再重新push就會(huì)讓你重新驗(yàn)證用戶名和密碼了,于是問題得以解決。如下圖操作:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git常用語(yǔ)法 [TOC] Git簡(jiǎn)介 描述 ? Git(讀音為/g?t/。)是一個(gè)開源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,937評(píng)論 0 13
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,852評(píng)論 9 163
  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,203評(píng)論 5 147
  • “如果沒有你,良辰美景更與何人說”當(dāng)開頭沒有恰當(dāng)?shù)膯柡蛘Z(yǔ)時(shí),我的年代里卻多了很多的詩(shī)歌和遠(yuǎn)方。也許不是每個(gè)人都理解...
    舟文月閱讀 341評(píng)論 0 1
  • 289.疾病的產(chǎn)生源自于你的基本假設(shè) 文字整理 心空 演講者 許添盛 我的老師賽斯講到疾病時(shí)說:“其實(shí)疾病的產(chǎn)生主...
    心空站閱讀 350評(píng)論 0 1

友情鏈接更多精彩內(nèi)容