一天學習使用git

一:Git GitHub gitlab 三者的介紹

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

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

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

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

gitlab:是一款基于Git的項目管理軟件

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

此處插一句廣告厘熟,哈哈屯蹦,GitHub是全球范圍的代碼托管平臺,而碼云是國內的代碼托管平臺绳姨,訪問就比GitHub快多了登澜。

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

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

為什么GitHub需要SSH Key呢狞甚?因為GitHub需要識別出你推送的提交確實是你推送的锁摔,而不是別人冒充的,而Git支持SSH協(xié)議哼审,所以谐腰,GitHub和碼云只要知道了你的公鑰,就可以確認只有你自己才能推送涩盾。GitHub允許你添加多個Key十气。假定你有若干電腦,你一會兒在公司提交春霍,一會兒在家里提交砸西,只要把每臺電腦的Key都添加到GitHub,就可以在每臺電腦上往GitHub推送了址儒。

遠程庫的名字就是origin芹枷,這是Git默認的叫法,也可以改成別的莲趣,但是origin這個名字一看就知道是遠程庫鸳慈。

二:git常用命令的使用

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

快速設置

1、git clone url地址(這個是代碼托管地址) ——克隆遠程倉庫項目

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

2喧伞、cd git-demo(本地新建的git倉庫)——切換到本地git倉庫

3走芋、git status ——查看本地git倉庫的狀態(tài)

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

5潘鲫、git commit -m "提交信息" ?——提交到本地倉庫

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

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

6挖函、git push ?——推送到遠程倉庫

7、從遠程倉庫上拉取項目下來到本地倉庫2方式:

①git fetch + git merge = git pull (推薦用這種) ②git pull (太強制了彼念,沖突時會直接覆蓋本地)

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

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

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

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

? ? ? ? git merge dev ? ——合并dev分支到當前分支

11哲思、git init ?——把當前文件夾初始化為git文件夾

12、git remote add origin url地址(遠程代碼倉庫地址)——把本地的git倉庫和遠程的git倉庫掛上鉤

13吩案、git diff 文件名 ?——查看本地某個文件修改了什么內容

14棚赔、git branch 分支名 ?—— 新建一個分支

15、git log ——顯示從最近到最遠的提交日志,顯示提交記錄的詳細信息

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

16丧肴、cat 文件名 ?——查看某個文件的內容

17、git reset --hard HEAD^ ?——把版本庫回退到之前的版本胧后,例如時光穿梭機芋浮,HEAD代表當前版本,HEAD^代表上一個版本壳快,HEAD^^代表上 ? ? ? ? 2個版本纸巷,HEAD~100代表上100個版本

18、git reflog ?——用來記錄你的每一次命令眶痰,所以找到了commit id就有后悔藥吃了瘤旨,但是記住如果push到遠程倉庫就沒救了

廖雪峰Git教學

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

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

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

22婚惫、git push -u origin master ?——由于遠程庫是空的,我們第一次推送master分支時魂爪,加上了-u參數(shù)先舷,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯(lián)起來滓侍,在以后的推送或者拉取時就可以簡化命令蒋川。

三:分支管理

git分支圖

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

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

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

1掺涛、創(chuàng)建項目(我自已有一個小練習),把它初始化為git項目疼进,成功后文件夾會產生一個.git文件薪缆,這個文件是記錄倉庫的配置和版本的,最好不要動伞广。

這些文件都會變紅表示沒有被追蹤

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

3赔癌、右鍵項目 Git->Commit ?就把項目提交到本地倉庫中

確保沒什么錯的話就直接點commit了诞外,如下

4、最后推送到遠程倉庫去

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

PS:使用命令行時遇到這個情況時:git add命令灾票,git commit命令峡谊,最后git push命令推送到遠程倉庫,但是在git push 時出現(xiàn)了報錯刊苍,百度了解決方案既们,如下,任選一種即可

解決方案

這樣本地的項目就推送到遠程倉庫了


推薦文章:

Git從碼云Clone代碼到本地

怎么用IDEA上傳本地項目到碼云/Github?

神功秘籍正什,講的很好的一篇文章啥纸!

IntelliJ IDEA下的使用git


更新:

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

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

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末罩驻,一起剝皮案震驚了整個濱河市穗酥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惠遏,老刑警劉巖砾跃,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異节吮,居然都是意外死亡抽高,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門课锌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厨内,“玉大人祈秕,你說我怎么就攤上這事〕福” “怎么了请毛?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞭亮。 經(jīng)常有香客問我方仿,道長,這世上最難降的妖魔是什么统翩? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任仙蚜,我火速辦了婚禮,結果婚禮上厂汗,老公的妹妹穿的比我還像新娘委粉。我一直安慰自己,他們只是感情好娶桦,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布贾节。 她就那樣靜靜地躺著,像睡著了一般衷畦。 火紅的嫁衣襯著肌膚如雪栗涂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天祈争,我揣著相機與錄音斤程,去河邊找鬼。 笑死菩混,一個胖子當著我的面吹牛忿墅,可吹牛的內容都是我干的。 我是一名探鬼主播墨吓,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼球匕,長吁一口氣:“原來是場噩夢啊……” “哼纹磺!你這毒婦竟也來了帖烘?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤橄杨,失蹤者是張志新(化名)和其女友劉穎秘症,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體式矫,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡乡摹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了采转。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聪廉。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡瞬痘,死狀恐怖,靈堂內的尸體忽然破棺而出板熊,到底是詐尸還是另有隱情框全,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布干签,位于F島的核電站津辩,受9級特大地震影響,放射性物質發(fā)生泄漏容劳。R本人自食惡果不足惜喘沿,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望竭贩。 院中可真熱鬧蚜印,春花似錦、人聲如沸留量。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肪获。三九已至寝凌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間孝赫,已是汗流浹背较木。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留青柄,地道東北人伐债。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像致开,于是被迫代替她去往敵國和親峰锁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內容

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