git入門

git入門

參考:
1.https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
2.https://git-scm.com/book/zh/v2

目的

之前在windows上一直使用tortoise git所以一直沒有研究git 命令域滥,現(xiàn)在新?lián)Q了mac晋柱,圖形工具支持不友好缸浦,系統(tǒng)學(xué)習(xí)了下相關(guān)文檔,總結(jié)學(xué)習(xí)到的內(nèi)容

git解決的問題

  • 每次修改一個東西近上,就怕把之前的改壞了,就需要不停的備份蜕窿,所以需要記錄每次文件的改動体捏,git為每次提交保存一個快照,能實時恢復(fù)
  • 協(xié)作編輯編輯時經(jīng)常需要很多人同時編輯梗摇,最后只能人工手動合并拓哟,git提供分支合并功能,且通過diff查看差異伶授,幫助解決沖突和合并代碼

git的誕生

  • 1991 Linus雖然創(chuàng)建了Linux
  • 志愿者把源代碼文件通過diff的方式發(fā)給Linus断序,然后由Linus本人通過手工方式合并代碼
  • Linus堅定地反對CVS和SVN,這些集中式的版本控制系統(tǒng)不但速度慢糜烹,而且必須聯(lián)網(wǎng)才能使用违诗。有一些商用的版本控制系統(tǒng),雖然比CVS疮蹦、SVN好用诸迟,但那是付費的,和Linux的開源精神不符
  • 2002 BitKeeper的東家BitMover公司出于人道主義精神愕乎,授權(quán)Linux社區(qū)免費使用這個版本控制系統(tǒng)
  • 2005 開發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議阵苇,BitMover收回免費使用權(quán)
  • linus花了兩周時間自己用C寫了一個分布式版本控制系統(tǒng),這就是Git
  • 2008 GitHub網(wǎng)站上線了感论,它為開源項目免費提供Git存儲

git和svn的區(qū)別

  • git是分布式版本控制系統(tǒng)绅项,每個人的電腦上都是一個完整的版本庫,不同用戶只需要推修改比肄,布式版本控制系統(tǒng)通常也有一臺充當(dāng)“中央服務(wù)器”的電腦快耿,但這個服務(wù)器的作用僅僅是用來方便“交換”大家的修改湿硝,沒有它大家也一樣干活,只是交換修改不方便而已润努。(強大的分支管理能力)
  • git直接記錄快照,而非差異比較
  • svn是集中式版本控制系統(tǒng)示括,版本庫是集中存放在中央服務(wù)器的(必須聯(lián)網(wǎng))

git初始化配置

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

配置全局的用戶名和郵箱铺浇,分布式服務(wù)必須指定自己的名稱

git名詞解釋

工作區(qū)

在電腦里能看到的目錄

文件狀態(tài)

  • 已提交(committed) 已提交表示數(shù)據(jù)已經(jīng)安全的保存在本地數(shù)據(jù)庫中
  • 已修改(modified) 已修改表示修改了文件,但還沒保存到數(shù)據(jù)庫中垛膝。
  • 已暫存(staged) 已暫存表示對一個已修改文件的當(dāng)前版本做了標(biāo)記鳍侣,使之包含在下次提交的快照中。

版本庫

工作區(qū)有一個隱藏目錄.git吼拥,這個不算工作區(qū)倚聚,而是Git的版本庫

image
  1. 在工作目錄中修改文件。
  2. 暫存文件凿可,將文件的快照放入暫存區(qū)域惑折。
  3. 提交更新,找到暫存區(qū)域的文件枯跑,將快照永久性存儲到 Git 倉庫目錄惨驶。

git本地倉庫常用命令

git help <verb>                 --查看幫助
git init                        --初始化git倉庫 
git config                      --配置git信息
    --global                    --配置全局參數(shù)
        alias.co checkout       --別名
        color.ui true           --顯示顏色
git add                         --將文件添加到提交目錄
git commit                      --提交add后的內(nèi)容到本地倉庫
    -m "wrote a readme file"    --提交說明,必須攜帶
    -a                          --跳過add敛助,直接全部提交
    --amend                     --重新提交
git status                      --查看倉庫狀態(tài)粗卜,查看是否有文件被修改
git log                         --顯示從最近到最遠(yuǎn)的日志
    --pretty=oneline            --一行顯示
    -p                          --查看具體差距
    -3                          --查看最近幾次日志
    --stat                      --簡要說明
git reset                       --回退版本號(此時使用git log將看不到后續(xù)commit日志)
    head                        --當(dāng)前版本
    head^                       --上一個版本,類推
    head~                       --上兩個版本
    123124                      --commitid前幾個數(shù)字纳击,不重復(fù)即可
    --mixed                     --默認(rèn)续扔,回退到你未add時的狀態(tài)
    --hard                      --回退,但你的修改全部消失
    --soft                      --回退到你add焕数,但未commit的狀態(tài)
git reflog                      --記錄每一次的命令
git mv <oldname> <newname>      --重命名纱昧,類似于rm+add
git diff                        --查看被修改的具體內(nèi)容
    --cached(staged)            --
git checkout                    --撤銷工作區(qū)修改
    -- file                     --指定文件(原先文件會消失)
git reset HEAD file             --撤銷暫存區(qū)修改
git rm                          --刪除版本庫文件
    --cached                 --刪除緩存,+push可以刪除遠(yuǎn)程倉庫

ssh加密

.ssh目錄下創(chuàng)建id_rsa和id_rsa.pub
$ ssh-keygen -t rsa -C "youremail@example.com"

  • id_rsa 私鑰
  • id_rsa.pub 公鑰

git遠(yuǎn)程倉庫常用命令

git remote add origin git@gitee.com:ziningmei/learngit.git      --設(shè)置遠(yuǎn)程倉庫
git remote                      --查看遠(yuǎn)程庫
    -v                          --更詳細(xì)信息
git clone                       --從遠(yuǎn)程倉庫克隆一個本地庫

git分支命令

git checkout -b <name>          --創(chuàng)建并切換分支(等同下兩個命令)
git branch                      --查看分支(*表示當(dāng)前分支)
git branch <name>               --創(chuàng)建分支
git checkout <name>             --切換分支
git push origin -d <name>       --將當(dāng)前分支push到遠(yuǎn)程分支
git fetch                       --將遠(yuǎn)程的commit拉取到本地堡赔,但不會修改head
git pull                        --將遠(yuǎn)程的commit拉取到本地砌些,但會修改head指向最新的commit
                                --git fetch+git merge+git commit
git merge <name>                --將dev合并到當(dāng)前分支
    --no-merged                 --未合并分支 
git branch -d <name>            --刪除分支
git push origin -d <name>       --刪除遠(yuǎn)程分支
git merge --no-ff -m "test" dev --強制禁用Fast forward模式,會生成一個commit
                                --ff模式刪除分支會丟掉分支信息
git rebase                      --類似于merge加匈,rebase是把分支上每一次提交merge一次存璃,需要
                                --處理多個沖突,且不會生成commit
git stash                       --暫時保存工作區(qū)(需要先git add)
git stash apply stash@{0}       --恢復(fù)stash雕拼,并不刪除
git stash drop                   --刪除stash
git stash list                  --查看stash list
git stash pop                   --回復(fù)stash纵东,并刪除

git標(biāo)簽命令

git tag                         --查看的所有標(biāo)簽
git check <name>                --切換tag          
git tag <name> <commitid>       --對某個commit打標(biāo)簽
    -a                          --指定標(biāo)簽名
    -m                          --標(biāo)簽說明
    -d                          --刪除標(biāo)簽
git show <tagname>              --查看說明文字
git push origin <tagname>       --將分支推到遠(yuǎn)程倉庫
    --tags                      --推送所有的tags
    :refs/tags/<tagname>        --遠(yuǎn)程刪除標(biāo)簽
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(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
  • 正文 為了忘掉前任拨拓,我火速辦了婚禮习贫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘千元。我一直安慰自己苫昌,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布幸海。 她就那樣靜靜地躺著祟身,像睡著了一般。 火紅的嫁衣襯著肌膚如雪物独。 梳的紋絲不亂的頭發(fā)上袜硫,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機與錄音挡篓,去河邊找鬼婉陷。 笑死,一個胖子當(dāng)著我的面吹牛官研,可吹牛的內(nèi)容都是我干的秽澳。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼戏羽,長吁一口氣:“原來是場噩夢啊……” “哼担神!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起始花,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤妄讯,失蹤者是張志新(化名)和其女友劉穎孩锡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亥贸,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡躬窜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了炕置。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荣挨。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖讹俊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情煌抒,我是刑警寧澤仍劈,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站寡壮,受9級特大地震影響贩疙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜况既,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一这溅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棒仍,春花似錦悲靴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乱陡,卻和暖如春浇揩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背憨颠。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工胳徽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爽彤。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓养盗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親适篙。 傳聞我的和親對象是個殘疾皇子爪瓜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • awk簡介 awk是一種編程語言,用于在linux/unix下對文本和數(shù)據(jù)進行處理匙瘪。數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入铆铆、一個或多...
    yeahuh閱讀 3,955評論 0 7
  • diff 命令格式: diff [option] file1 file2 或 diff [option] dir...
    LGmark閱讀 969評論 2 3
  • git作為時下最流行的代碼管理工具蝶缀,Git權(quán)威指南總結(jié)了十條喜歡Git的理由: 異地協(xié)同工作; 現(xiàn)場版本控制薄货; 重...
    古斟布衣閱讀 1,822評論 0 12
  • 本店主營:伊利.飛鶴.蒙牛.君樂寶.雅培.和氏.搖籃. 金領(lǐng)冠睿護奶粉完美融合了新西蘭的資源優(yōu)勢和嚴(yán)苛的生產(chǎn)工藝翁都,...
    天長地久_2aef閱讀 178評論 0 0
  • 白天的自己和黑夜的自己有什么區(qū)別呢? 白天我們總是忙于工作谅猾,或忙于學(xué)習(xí)柄慰,我們沒有多余的時間去思考那些自己不值一提的...
    西瓜和柚子的完美組合閱讀 482評論 0 0