Git學(xué)習(xí)

1.Git簡介


什么是git

git是一個(gè)開源的分布式版本控制系統(tǒng),可以有效眠冈、高速地處理從很小到非常大的項(xiàng)目版本管理滚秩。


git的工作流圖:

image.png

命令如下:

  1. clone(克轮殉啤): 從遠(yuǎn)程倉庫中克隆代碼到本地倉庫
  2. checkout (檢出):從本地倉庫中檢出一個(gè)倉庫分支然后進(jìn)行修訂
  3. add(添加): 在提交前先將代碼提交到暫存區(qū)
  4. commit(提交): 提交到本地倉庫。本地倉庫中保存修改的各個(gè)歷史版本
  5. fetch (抓取) : 從遠(yuǎn)程庫飞几,抓取到本地倉庫砚哆,不進(jìn)行任何的合并動(dòng)作,一般操作比較少屑墨。
  6. pull (拉取) : 從遠(yuǎn)程庫拉到本地庫躁锁,自動(dòng)進(jìn)行合并(merge),然后放到到工作區(qū)卵史,相當(dāng)于
    fetch+merge
  7. push(推送) : 修改完成后战转,需要和團(tuán)隊(duì)成員共享代碼時(shí),將代碼推送到遠(yuǎn)程倉庫

2.Git的配置


設(shè)置用戶配置

git config --global user.name “名字”
git config --global user.email “郵箱”
查看配置信息
git config --global user.name
git config --global user.email

設(shè)置常用配置指令的別名(可選)

打開gitBash以躯,輸入touch ~/.bashrc
在 .bashrc 文件中輸入如下內(nèi)容:

#用于輸出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于輸出當(dāng)前目錄所有文件及基本信息
alias ll='ls -al'

執(zhí)行 source ~/.bashrc

解決GitBash亂碼問題

  1. 打開GitBash執(zhí)行下面命令
    git config --global core.quotepath false
  2. ${git_home}/etc/bash.bashrc 文件最后加入下面兩行
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

3.基礎(chǔ)操作指令:


1.獲取本地倉庫:
新建一個(gè)目錄 在該目錄下打卡git bash 然后執(zhí)行git init
2.本地倉庫的狀態(tài):

image.png

git add (工作區(qū)->暫存區(qū))
git commit (暫存區(qū)->倉庫)
查看的修改的狀態(tài)(暫存區(qū)槐秧、工作區(qū)):git status
添加工作區(qū)到暫存區(qū)(add):
命令形式:git add 單個(gè)文件名|通配符
將所有修改加入暫存區(qū):git add .
提交暫存區(qū)到本地倉庫(commit):
作用:提交暫存區(qū)內(nèi)容到本地倉庫的當(dāng)前分支
命令形式:git commit -m '注釋內(nèi)容'
查看提交日志(log)
命令形式:git log [option]
options:
--all 顯示所有分支
--pretty=oneline 將提交信息顯示為一行
--abbrev-commit 使得輸出的commitId更簡短
--graph 以圖的形式顯示
設(shè)置別名后直接使用git-log即可
版本切換:git reset commitID --hard
git reflog這個(gè)指令可以看到已經(jīng)刪除的提交記錄
添加文件至忽略列表:
在工作目錄中創(chuàng)建一個(gè)名為 .gitignore 的文件(文件名稱固定),列出要忽略的文件模式忧设。

4.分支


幾乎所有的版本控制系統(tǒng)都以某種形式支持分支刁标。 使用分支意味著你可以把你的工作從開發(fā)主線上分離開來進(jìn)行重大的Bug修改、開發(fā)新的功能址晕,以免影響開發(fā)主線膀懈。
git branch 查看本地分支
git branch 分支名 添加新的分支
git checkout 分支名 切換分支
git checkout -b 分支名 切換同時(shí)創(chuàng)建一個(gè)分支
git merge 分支名 分支合并
git branch -d 分支名 做檢查的刪除分支
git branch -D 分支名 強(qiáng)制的刪除分支


解決沖突:
當(dāng)兩個(gè)分支上對文件的修改可能會(huì)存在沖突,例如同時(shí)修改了同一個(gè)文件的同一行谨垃,這時(shí)就需要手動(dòng)解
決沖突启搂,解決沖突步驟如下:

  1. 處理文件中沖突的地方
  2. 將解決完沖突的文件加入暫存區(qū)(add)
  3. 提交到倉庫(commit)

在開發(fā)中硼控,一般有如下分支使用原則與流程:

  • master (生產(chǎn)) 分支
    線上分支,主分支胳赌,中小規(guī)模項(xiàng)目作為線上運(yùn)行的應(yīng)用對應(yīng)的分支淀歇;
  • develop(開發(fā))分支
    是從master創(chuàng)建的分支,一般作為開發(fā)部門的主要開發(fā)分支匈织,如果沒有其他并行開發(fā)不同期上線
    要求,都可以在此版本進(jìn)行開發(fā)牡直,階段開發(fā)完成后缀匕,需要是合并到master分支,準(zhǔn)備上線。
  • feature/xxxx分支
    從develop創(chuàng)建的分支碰逸,一般是同期并行開發(fā)乡小,但不同期上線時(shí)創(chuàng)建的分支,分支上的研發(fā)任務(wù)完
    成后合并到develop分支饵史。
  • hotfix/xxxx分支满钟,
    從master派生的分支,一般作為線上bug修復(fù)使用胳喷,修復(fù)完成后需要合并到master湃番、test、
  • develop分支吭露。
    還有一些其他分支吠撮,在此不再詳述,例如test分支(用于代碼測試)讲竿、pre分支(預(yù)上線分支)等
    等泥兰。
image.png

5.Git倉庫


常用的托管服務(wù)[遠(yuǎn)程倉庫]:
github、馬云题禀、gitlab

Gitee操作流程:

1.登錄gitee
2.新建倉庫
3.選擇ssh 即可得到遠(yuǎn)程倉庫的地址
4.配置SSH公鑰:

  • ssh-keygen -t rsa不斷回車
  • cat ~/.ssh/id_rsa.pub獲取公鑰
    在gitee的安全設(shè)置中加入獲取的公鑰
    驗(yàn)證是否配置成功ssh -T git@gitee.com

5.操作遠(yuǎn)程倉庫
此操作是先初始化本地庫鞋诗,然后與已創(chuàng)建的遠(yuǎn)程庫進(jìn)行對接。
命令:git remote add <遠(yuǎn)端名稱> <倉庫路徑>
遠(yuǎn)端名稱迈嘹,默認(rèn)是origin削彬,取決于遠(yuǎn)端服務(wù)器設(shè)置
倉庫路徑,從遠(yuǎn)端服務(wù)器獲取此URL

eg: git remote add origin git@gitee.com:bythere/git_test.git

  • 查看遠(yuǎn)程倉庫:git remote
  • 推送到遠(yuǎn)程倉庫
    命令:git push [-f] [--set-upstream] [遠(yuǎn)端名稱 [本地分支名][:遠(yuǎn)端分支名] ]
    如果遠(yuǎn)程分支名和本地分支名稱相同秀仲,則可以只寫本地分支
    git push origin master
    -f 表示強(qiáng)制覆蓋
    --set-upstream 推送到遠(yuǎn)端的同時(shí)并且建立起和遠(yuǎn)端分支的關(guān)聯(lián)關(guān)系吃警。
    git push --set-upstream origin master
    如果當(dāng)前分支已經(jīng)和遠(yuǎn)端分支關(guān)聯(lián),則可以省略分支名和遠(yuǎn)端名啄育。
    git push
//三步即可直接使用git push
git push origin master
git push --set-upstream origin master
git push
  • 查看關(guān)聯(lián)關(guān)系我們可以使用 git branch -vv

  • 從遠(yuǎn)程倉庫克隆
    如果已經(jīng)有一個(gè)遠(yuǎn)端倉庫酌心,我們可以直接clone到本地。
    命令: git clone <倉庫路徑> [本地目錄]
    本地目錄可以省略挑豌,會(huì)自動(dòng)生成一個(gè)目錄

  • 抓取
    命令:git fetch [remote name] [branch name]
    抓取指令就是將倉庫里的更新都抓取到本地倉庫安券,不會(huì)進(jìn)行合并

  • 拉取
    命令:git pull [remote name] [branch name]
    拉取指令就是將遠(yuǎn)端倉庫的修改拉到本地倉庫并自動(dòng)進(jìn)行合并墩崩,等同于fetch+merge
    如果不指定遠(yuǎn)端名稱和分支名,則抓取所有并更新當(dāng)前分支侯勉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鹦筹,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子址貌,更是在濱河造成了極大的恐慌铐拐,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件练对,死亡現(xiàn)場離奇詭異遍蟋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)螟凭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門虚青,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人螺男,你說我怎么就攤上這事棒厘。” “怎么了下隧?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵奢人,是天一觀的道長。 經(jīng)常有香客問我淆院,道長达传,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任迫筑,我火速辦了婚禮宪赶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘脯燃。我一直安慰自己搂妻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布辕棚。 她就那樣靜靜地躺著欲主,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逝嚎。 梳的紋絲不亂的頭發(fā)上扁瓢,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音补君,去河邊找鬼引几。 笑死,一個(gè)胖子當(dāng)著我的面吹牛挽铁,可吹牛的內(nèi)容都是我干的伟桅。 我是一名探鬼主播敞掘,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼楣铁!你這毒婦竟也來了玖雁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤盖腕,失蹤者是張志新(化名)和其女友劉穎赫冬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溃列,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡劲厌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哭廉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡相叁,死狀恐怖遵绰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情增淹,我是刑警寧澤椿访,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站虑润,受9級(jí)特大地震影響成玫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拳喻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一哭当、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冗澈,春花似錦钦勘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捌归,卻和暖如春肛响,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惜索。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工特笋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巾兆。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓雹有,卻偏偏與公主長得像偿渡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子霸奕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

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