工作常用 Git 命令

閱讀目錄:

  1. Git 基礎(chǔ)概念
  2. 常用的命令
  3. 簡明指南
    3.1 創(chuàng)建新倉庫
    3.2 檢出倉庫
    3.3 添加和提交
    3.4 推送改動
    3.5 分支管理
    3.6 更新與合并
    3.7 查看歷史
    3.8 版本回退
    3.9 刪除文件
    3.10 遠(yuǎn)程倉庫命令總結(jié)
    3.11 分支操作命令總結(jié)
  4. 參考文獻(xiàn)

Git是Linus Benedict Torvalds更好的管理Linux系統(tǒng)而開發(fā)的一個“分布式版本控制工具”,對團(tuán)隊協(xié)作開發(fā)極其友好。高端大氣上檔次惕橙!

Git命令超級的多澡屡,所以本文只列舉工作中最常用的幾條命令:

0. GIt 基礎(chǔ)概念

工作區(qū)(Working Directory):簡單的說赌蔑,就是本地可以編輯的文件郭厌;

版本庫(Repository):工作區(qū)有一個隱藏目錄 .git ,這個不算工作區(qū),而是Git的版本庫;

暫存區(qū)(stage):git add 后還沒有提交到倉庫的中間狀態(tài)絮识;

此外還有Git為我們自動創(chuàng)建的第一個分支 master,以及指向master的一個指針叫 HEAD哲银。

HEAD : 它指向你最后一次提交的結(jié)果鞍爱。

Git 模型圖:

Git 模型

1. 常用的命令

一周工作中,最常用的三種命令厢钧,總結(jié)成三個字:拉鳞尔、提、推早直。
即:拉取遠(yuǎn)程倉庫最新代碼寥假、提交代碼到倉庫、推送本地代碼到遠(yuǎn)程

拉取遠(yuǎn)程倉庫最新代碼

1. git fetch origin <branch-name> // 先從遠(yuǎn)程分支抓取最新代碼
2. git merge --no-ff -m '<merge message>' // 將抓下來的遠(yuǎn)程代碼和本地代碼合并

提交代碼到倉庫

將遠(yuǎn)程分支代碼拉取下來以后霞扬,和本地代碼合并糕韧,解決沖突后,提交自己的修改

1. git add <file-name> // 添加文件到暫存區(qū)
2. git commit -m '<commit message>'  // 將暫存區(qū)提交到倉庫

推送本地代碼到遠(yuǎn)程

1. git push // 將本地代碼推送到遠(yuǎn)程倉庫

2. 簡明指南

2.1 創(chuàng)建新倉庫

創(chuàng)建新文件夾喻圃,打開萤彩,然后執(zhí)行

git init

以創(chuàng)建新的 git 倉庫。

2.2 檢出倉庫

克隆遠(yuǎn)端服務(wù)器上的倉庫:

git clone <respository-path>

2.3 添加和提交

你可以提出更改(把它們添加到暫存區(qū))级及,使用如下命令:
git add <filename> 或 git add --all
這是 git 基本工作流程的第一步乒疏;使用如下命令以實際提交改動:

git commit -m "代碼提交信息"

現(xiàn)在,你的改動已經(jīng)提交到了 HEAD饮焦,但是還沒到你的遠(yuǎn)端倉庫怕吴。

2.4 推送改動

你的改動現(xiàn)在已經(jīng)在本地倉庫的 HEAD中了。執(zhí)行如下命令以將這些改動提交到遠(yuǎn)端倉庫:

git push origin master

可以把 master 換成你想要推送的任何分支

2.5 分支管理

分支是用來將特性開發(fā)絕緣開來的县踢。在你創(chuàng)建倉庫的時候转绷,master 是“默認(rèn)的”分支。在其他分支上進(jìn)行開發(fā)硼啤,完成后再將它們合并到主分支上议经。

創(chuàng)建一個叫做“feature_x”的分支,并切換過去:

git checkout -b feature_x

切換回主分支:

git checkout master

再把新建的分支刪掉:

git branch -d feature_x

2.6 更新與合并

要更新你的本地倉庫至最新改動,執(zhí)行:

git pull

以在你的工作目錄中 獲壬飞觥(fetch) 并 合并(merge) 遠(yuǎn)端的改動咧织。
要合并其他分支到你的當(dāng)前分支(例如 master),執(zhí)行:

git merge <branch>

在這兩種情況下籍救,git 都會嘗試去自動合并改動习绢。遺憾的是,這可能并非每次都成功蝙昙,并可能出現(xiàn)沖突(conflicts)闪萄。 這時候就需要你修改這些文件來手動合并這些沖突(conflicts)。改完之后奇颠,你需要執(zhí)行如下命令以將它們標(biāo)記為合并成功:

git add <filename>

在合并改動之前败去,你可以使用如下命令預(yù)覽差異:

git diff <source_branch> <target_branch>

2.7 查看歷史

如果你想了解本地倉庫的歷史記錄,最簡單的命令就是使用:

git log

你可以添加一些參數(shù)來修改他的輸出烈拒,從而得到自己想要的結(jié)果圆裕。 只看某一個人的提交記錄:

git log --author=<name>

一個壓縮后的每一條提交記錄只占一行的輸出:

git log --pretty=oneline --abbrev-commit

或者你想通過 ASCII 藝術(shù)的樹形結(jié)構(gòu)來展示所有的分支, 每個分支都標(biāo)示了他的名字和標(biāo)簽:

git log --graph --oneline --decorate --all

看看哪些文件改變了:

git log --name-status

這些只是你可以使用的參數(shù)中很小的一部分。更多的信息缺菌,參考:

git log --help

最全的一條查看歷史命令:

git log --graph --pretty=oneline --abbrev-commit --decorate --all

2.8 版本回退

已經(jīng)添加到暫存區(qū)stage葫辐,恢復(fù)到工作區(qū):

git reset HEAD <file-name>

用版本庫里的版本替換工作區(qū)的版本代碼:

git checkout -- fileName

版本回退到上一個版本:

git reset --hard HEAD^

版本回退到某個提交:

git reset --hard <commit-id>

2.9 刪除文件

rm fileName //刪除本地,可直接git rm
git rm file Name //修改進(jìn)入緩存區(qū)
git commit -m '' //提交到版本庫

2.10 遠(yuǎn)程倉庫命令總結(jié)

經(jīng)過以上操作后搜锰,代碼已經(jīng)可以提交到本地的Git倉庫伴郁,下面介紹遠(yuǎn)程倉庫的一些操作

本地Git倉庫和GitHub倉庫之間的傳輸密鑰:

ssh-keygen -t rsa -C "youremail@example.com" //使本機(jī)可以往github上提交

把本地倉庫的內(nèi)容關(guān)聯(lián)到GitHub倉庫:

git remote add origin git@github.com:user-name/respository-name.git

本地庫的所有內(nèi)容推送到遠(yuǎn)程庫(初始化一個遠(yuǎn)程倉庫代碼):

git push -u origin master //當(dāng)前分支master所有代碼推送到遠(yuǎn)程進(jìn)行初始化

本地修改后提交到遠(yuǎn)程倉庫 (修改推送):

git push origin branch-name

從遠(yuǎn)程倉庫克隆一個倉庫到本地 :

git clone git@github.com:zhangyusir/hello.git

本地和遠(yuǎn)程同時創(chuàng)建分支產(chǎn)生關(guān)聯(lián):

git checkout -b branch-name origin/branch-name

將本地的分支和遠(yuǎn)程的分支關(guān)聯(lián)起來:

git branch --set-upstream-to branch-name origin-name

2.11 分支操作命令總結(jié)

查看本地分支:

git branch

創(chuàng)建分支并切換:

git checkout -b <branch-name>

切換分支:

git checkout<branch-name>

在當(dāng)前分支快速合并其他分支:

git merge branch-name

保留分支的提交歷史既禁止快速合并:

git merge --no-ff -m "commit message" branch-name

刪除分支:

git branch -d branch-name //強(qiáng)制刪除-D

將當(dāng)前分支的修改放到“儲藏”:

存儲 :git stash 恢復(fù) : git stash pop 列表 : git stash list

3. 參考文獻(xiàn)

  1. 廖雪峰:https://www.liaoxuefeng.com/wiki/896043488029600
  2. 阮一峰:http://www.ruanyifeng.com/blog/2014/06/git_remote.html
  3. 簡明指南:http://rogerdudler.github.io/git-guide/index.zh.html
  4. Git奇技淫巧:https://github.com/521xueweihan/git-tips
  5. Git Book:https://git-scm.com/book/zh/v2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蛋叼,隨后出現(xiàn)的幾起案子焊傅,更是在濱河造成了極大的恐慌,老刑警劉巖狈涮,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狐胎,死亡現(xiàn)場離奇詭異,居然都是意外死亡歌馍,警方通過查閱死者的電腦和手機(jī)握巢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來松却,“玉大人暴浦,你說我怎么就攤上這事∠停” “怎么了歌焦?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長砚哆。 經(jīng)常有香客問我独撇,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任纷铣,我火速辦了婚禮卵史,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘搜立。我一直安慰自己程腹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布儒拂。 她就那樣靜靜地躺著寸潦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪社痛。 梳的紋絲不亂的頭發(fā)上见转,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音蒜哀,去河邊找鬼斩箫。 笑死,一個胖子當(dāng)著我的面吹牛撵儿,可吹牛的內(nèi)容都是我干的乘客。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼淀歇,長吁一口氣:“原來是場噩夢啊……” “哼易核!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起浪默,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤牡直,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纳决,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碰逸,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年阔加,在試婚紗的時候發(fā)現(xiàn)自己被綠了饵史。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡胜榔,死狀恐怖胳喷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苗分,我是刑警寧澤厌蔽,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站摔癣,受9級特大地震影響奴饮,放射性物質(zhì)發(fā)生泄漏纬向。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一戴卜、第九天 我趴在偏房一處隱蔽的房頂上張望逾条。 院中可真熱鬧,春花似錦投剥、人聲如沸师脂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吃警。三九已至,卻和暖如春啄育,著一層夾襖步出監(jiān)牢的瞬間酌心,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工挑豌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留安券,地道東北人。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓氓英,卻偏偏與公主長得像侯勉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子铝阐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

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

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,665評論 9 163
  • 查看址貌、添加、提交饰迹、刪除芳誓、找回余舶,重置修改文件 git help # 顯示command的help git sho...
    Swiftor閱讀 2,124評論 0 2
  • 聲明:這篇文章來源于廖雪峰老師的官方網(wǎng)站啊鸭,我僅僅是作為學(xué)習(xí)之用 Git簡介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 3,960評論 3 27
  • (預(yù)警:因為詳細(xì)匿值,所以行文有些長赠制,新手邊看邊操作效果出乎你的預(yù)料) 一:Git是什么? Git是目前世界上最先進(jìn)的...
    axiaochao閱讀 1,938評論 1 8
  • 分布式版本管理工具 git屬于分布式 svn集中式 git安裝 git初始化一個倉庫 其實就是創(chuàng)建了一個.git隱...
    SnowDragonYY閱讀 1,508評論 0 0