git基本指令總結

git現(xiàn)

git config -global user.name"用戶名"
git config -global user.email"郵箱”

//初始化倉庫

git init

//將文件添加到倉庫(提交修改和提交新文件都是這個指令)

git add 文件名字

//把文件提交到倉庫

git commit -m “提交的說明”

//倉庫當前的狀態(tài)(可以查看是否被修改)

git status

//查看修改的地方

git diff 文件名

// 顯示從最近到最遠的提交日志

git log 或者 git log --pretty=oneline

//回退到上一個版本

git reset --hard HEAD^

//回退到上上一個版本

git reset --hard HEAD^^

//回退到指定版本(回退100個版本)

git reset --hard HEAD~100

// 返回指定版本(commit id:1094a....)

git reset --hard commit id

//記錄每一次命令

git reflog

穿梭前厌漂,用git log可以查看提交歷史侦讨,以便確定要回退到哪個版本酪耕。要重返未來喧笔,用git reflog查看命令歷史制跟,以便確定要回到未來的哪個版本
工作區(qū)和暫存區(qū)
工作區(qū):當前目錄
暫存區(qū):目錄里面的.git文件是Git的版本庫,存了很多東西昔搂,其中最重要的就是稱為stage(或者叫index)的暫存區(qū)拍嵌,還有Git為我們自動創(chuàng)建的第一個分支master坯沪,以及指向master的一個指針叫HEAD媒怯。

我們把文件往Git版本庫里添加的時候梧奢,是分兩步執(zhí)行的:

第一步是用git add把文件添加進去孤里,實際上就是把文件修改添加到暫存區(qū)念赶;

第二步是用git commit提交更改伴箩,實際上就是把暫存區(qū)的所有內容提交到當前分支启涯。

因為我們創(chuàng)建Git版本庫時困肩,Git自動為我們創(chuàng)建了唯一一個master分支整陌,所以拗窃,現(xiàn)在,git commit就是往master分支上提交更改泌辫。

簡單的來說可以理解為随夸,需要提交的文件修改通通放到暫存區(qū),然后震放,一次性提交暫存區(qū)的所有修改宾毒。

//丟棄工作區(qū)的修改

git checkout -- 文件名

**把文件在工作區(qū)的修改全部撤銷,這里有兩種情況
**
一種是文件自修改后還沒有被放到暫存區(qū)殿遂,現(xiàn)在诈铛,撤銷修改就回到和版本庫一模一樣的狀態(tài)乙各;

一種是文件已經(jīng)添加到暫存區(qū)后,又作了修改幢竹,現(xiàn)在耳峦,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。

總之焕毫,就是讓這個文件回到最近一次git commit或git add時的狀態(tài)蹲坷。

//暫存區(qū)的修改撤銷掉,重新放回工作區(qū)

git reset HEAD 文件名
小結
場景1:當你改亂了工作區(qū)某個文件的內容,想直接丟棄工作區(qū)的修改時邑飒,用命令git checkout -- file冠句。
場景2:當你不但改亂了工作區(qū)某個文件的內容,還添加到了暫存區(qū)時幸乒,想丟棄修改,分兩步唇牧,第一步用命令git reset HEAD <file>罕扎,就回到了場景1,第二步按場景1操作丐重。
場景3:已經(jīng)提交了不合適的修改到版本庫時腔召,想要撤銷本次提交,參考版本回退一節(jié)扮惦,不過前提是沒有推送到遠程庫臀蛛。

//刪除文件

rm 文件名

//版本庫中刪除該文件

git rm 文件名
git commit -m "說明文字"

添加遠程庫

git remote add origin git@github.com:路徑
git push -u origin master //(第一次推送master分支時,加上了-u參數(shù)崖蜜,把本地的master分支和遠程的master分支關聯(lián)起來)

//簡化命令

git push origin master

//查看遠程庫信息

git remote -v

//刪除遠程庫(解除和遠程庫的綁定)

git remote rm origin

從遠程庫克隆

方式是先創(chuàng)建遠程庫浊仆,然后,從遠程庫克隆

git clone git@github.com:git庫地址

創(chuàng)建與合并分支

//創(chuàng)建分支

git checkout -b dev// git branch dev和git checkout dev兩步
// 或者
git switch -c dev

// 切換分支

git checkout 分支 
//或者
 git switch 分支

//查看當前分支

git branch

//其他分支合并到當前分支上(例:將dev分支合并到當前的master分支上)

git merge dev

//刪除分支(例:刪除dev分支)

git branch -d dev

--------------------------------------------------------------------Bug分支------------------------------------------------------------------------------------

bug情景:

當你接到一個修復一個代號101的bug的任務時豫领,很自然地抡柿,你想創(chuàng)建一個分支issue-101來修復它,
但是等恐,當前正在dev上進行的工作還沒有提交洲劣。并不是你不想提交,而是工作只進行到一半课蔬,
還沒法提交囱稽。但是,必須在兩個小時內修復該bug二跋,怎么辦战惊?

步驟如下:
1.//當前工作現(xiàn)場“儲藏”起來

git stash

2.//確定要在哪個分支上修復bug,假定需要在master分支上修復同欠,就從master創(chuàng)建臨時分支

git checkout master
git checkout -b issue-101

3.修復bug样傍,然后提交
4.修復完成后横缔,切換到master分支,并完成合并衫哥,最后刪除issue-101分支

git switch master
git merge --no-ff -m "merged bug fix 101" issue-101

5.接著回到dev分支干活

git switch dev
git status
git stash list

6.Git把stash內容存在某個地方了茎刚,但是需要恢復一下,有兩個辦法:
一是用git stash apply恢復撤逢,但是恢復后膛锭,stash內容并不刪除,你需要用git stash drop來刪除蚊荣;

另一種方式是用git stash pop初狰,恢復的同時把stash內容也刪了

git stash apply
git stash drop
//或者
git stash pop

6.1同樣的bug,要在dev上修復互例,我們只需要把4c805e2 fix bug 101這個提交所做的修改“復制”到dev分支奢入。
注意:我們只想復制4c805e2 fix bug 101這個提交所做的修改,并不是把整個master分支merge過來媳叨。

git branch //當前應該在dev分支上
git cherry-pick 4c805e2 //4c805e2 是指你提交時候的那個commit id

// 拉取代碼

git pull

//查看遠程庫信息

git remote -v

多人開發(fā)修改了一個文件解決方法

情景:
clone默認情況下只能看到本地master分支腥光,要在dev分支上開發(fā),必須創(chuàng)建遠程origin的dev分支到本地糊秆,

git checkout -b dev origin/dev

就可以在dev上修改了
如果多人修改了同一個文件,推送會出現(xiàn)沖突武福,解決如下(出現(xiàn)原因是沒有指定本地dev分支與遠程origin/dev分支的鏈接):
git branch --set-upstream-to=origin/dev dev
git pull
但是合并的時候有沖突,需要手動解決沖突即可痘番。
因此捉片,多人協(xié)作的工作模式通常是這樣:

1.首先,可以試圖用git push origin <branch-name>推送自己的修改
2.如果推送失敗汞舱,則因為遠程分支比你的本地更新伍纫,需要先用git pull試圖合并
3.如果合并有沖突,則解決沖突兵拢,并在本地提交
4.沒有沖突或者解決掉沖突后翻斟,再用git push origin <branch-name>推送就能成功

如果git pull提示no tracking information,則說明本地分支和遠程分支的鏈接關系沒有創(chuàng)建说铃,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>访惜。

這就是多人協(xié)作的工作模式,一旦熟悉了腻扇,就非常簡單债热。

標簽

//切換到需要打標簽的分支上

git branch

//創(chuàng)建標簽

git tag v1.0

//查看所有標簽

git tag

默認標簽是打在最新提交的commit上的
如果給之前提交的打標簽的話,找到歷史提交的commit id打上就可以了

git log --pretty=oneline --abbrev-commit //所有提交的版本展示

// 給之前的某一個打標簽

git tag 標簽名 commit id

// 刪除標簽(本地)

git tag -d 標簽名

//刪除遠程的標簽

1.git tag -d 標簽名
2.git push origin :refs/tags/標簽名

//推送標簽到遠程

git push origin 標簽名

//推送所有沒有推送到遠端的標簽

git push origin --tags

//將master分支上代碼同步更新到dev分支上

//1.首先切換到master分支上
git checkout master
//2.拉取代碼
git pull
//3.切換到dev分支上
git checkout dev
//4.把master分支的代碼merge到自己的分支
git merge master
//5.git push推上去ok可以了幼苛。
git push origin dev




最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末窒篱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌墙杯,老刑警劉巖配并,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異高镐,居然都是意外死亡溉旋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門嫉髓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來观腊,“玉大人,你說我怎么就攤上這事算行∥嘤停” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵州邢,是天一觀的道長儡陨。 經(jīng)常有香客問我,道長量淌,這世上最難降的妖魔是什么迄委? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮类少,結果婚禮上,老公的妹妹穿的比我還像新娘渔扎。我一直安慰自己硫狞,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布晃痴。 她就那樣靜靜地躺著残吩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪倘核。 梳的紋絲不亂的頭發(fā)上泣侮,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音紧唱,去河邊找鬼活尊。 笑死,一個胖子當著我的面吹牛漏益,可吹牛的內容都是我干的蛹锰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼绰疤,長吁一口氣:“原來是場噩夢啊……” “哼铜犬!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤癣猾,失蹤者是張志新(化名)和其女友劉穎敛劝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纷宇,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡夸盟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了呐粘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片满俗。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖作岖,靈堂內的尸體忽然破棺而出唆垃,到底是詐尸還是另有隱情,我是刑警寧澤痘儡,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布辕万,位于F島的核電站,受9級特大地震影響沉删,放射性物質發(fā)生泄漏渐尿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一矾瑰、第九天 我趴在偏房一處隱蔽的房頂上張望砖茸。 院中可真熱鬧,春花似錦殴穴、人聲如沸凉夯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽劲够。三九已至,卻和暖如春休傍,著一層夾襖步出監(jiān)牢的瞬間征绎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工磨取, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留人柿,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓忙厌,卻偏偏與公主長得像顷扩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子慰毅,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容