Git 常用操作命令記錄

安裝Git

官網(wǎng)安裝指導(dǎo)地址

MAC下使用HomeBrew安裝

如果沒有HomeBrew,在終端輸入以下命令嘗試安裝:

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

利用brew安裝版本的Git

$ brew install git

Git 相關(guān)命令

命令 相關(guān)操作 解釋
init $ git init 創(chuàng)建本地版本庫
config $ git config --global user.name "yourName" 配置name信息
$ git config --global user.email "yourEmail" 配置郵箱信息
add $ git add fileName 添加文件到staged狀態(tài)
$ git add . 添加所有文件到staged狀態(tài)
status $ git status 查看庫文件當(dāng)前狀態(tài)
commit git commit -m "填寫相關(guān)描述信息" 將處于stage狀態(tài)的文件提交到本地庫中
$ git commit -am "填寫相關(guān)描述信息" 合并add操作划咐,一步到位
$ git commit --amend --no-edit 追加已經(jīng)commit的操作谚鄙, 此時(shí)會(huì)刪除最后一條記錄并產(chǎn)生新的一條記錄 (commit id 不同),注意要先將改動(dòng)的文件add到staged狀態(tài)
log $ git log 查看庫的操作日志
$ git log --oneline 查看庫的操作關(guān)鍵信息蛮位,每個(gè) commit 內(nèi)容顯示在一行
$ git log --oneline --graph 查看庫的操作關(guān)鍵信息沪编,包括分支信息
diff $ git diff 查看unstaged狀態(tài)的文件
$ git diff --cached 查看 staged狀態(tài)的文件(add過的文件)
$ git diff HEAD 查看 staged & unstaged (HEAD)
reset $ git reset fileName 回到add之前狀態(tài)(unstaged)
$ git reset --hard HEAD 查看上次 commit 的HEAD指針指向的id
$ git reset --hard commitId 回到 commit 之前(回滾): hard 會(huì)清除 7cd4e4e 之后的所有操作提交
$ git reset --soft commitId 回到 commit 之前(回滾): soft 會(huì)保留 7cd4e4e 之后的所有操作
reflog $ git reflog 查看所有 HEAD 的改動(dòng)贫途,配合 reset --hard 的可恢復(fù)之前的刪除操作
checkout $ git checkout dev1.0 切換分支/tag
$ git checkout -b dev1.0 創(chuàng)建并切換本地分支
$ git checkout -b dev1.1 origin/dev1.1 將遠(yuǎn)程分支添加到本地
$ git checkout commitId -- fileName 讓文件回滾到某一次 commit
branch $ git branch 查看當(dāng)前分支
$ git branch -a 查看全部分支
$ git branch dev1.0 創(chuàng)建分支
merge $ git merge dev1.0 合并分支
$ git branch -d dev1.1 刪除本地分支
$ git merge --no-ff -m "相關(guān)描述信息" dev1.0 合并分支擂达,保留分支上commit信息
stash $ git stash 暫存修改
$ git stash list 查看 stash 中的暫存任務(wù)
$ git stash pop 繼續(xù)暫存任務(wù)
fetch $ git fetch origin dev1.0 拉取遠(yuǎn)程版本庫到本地版本庫(需要再次merge)
pull $ git pull origin dev1.0 拉取遠(yuǎn)程版本庫到本地版本庫绢淀,并將其merge到本地項(xiàng)目中
push $ git push -u origin dev1.0 推送本地版本庫到遠(yuǎn)程版本庫
$ git push origin :branch-name 刪除遠(yuǎn)程分支或tag
$ git push origin branch-name1:branch-name2 替換遠(yuǎn)程分支
remote $ git remote add origin remoteAddress 添加并鏈接到遠(yuǎn)程庫
$ git remote rm origin 刪除遠(yuǎn)程庫
tag $ git tag 查看標(biāo)簽
$ git tag v1.0.0 -light 創(chuàng)建輕量標(biāo)簽
$ git tag -a v1.0.0 -m "release 0.1.0 version" -a即annotated的縮寫萤悴,指定標(biāo)簽類型,后附標(biāo)簽名
$ git push origin v1.0.0 發(fā)布標(biāo)簽皆的,提交到git服務(wù)器
$ git push origin –tags 將本地所有標(biāo)簽一次性提交到git服務(wù)器
$ git tag -d v1.0.0 刪除標(biāo)簽
$ git checkout tagname 切換標(biāo)簽
$ git tag -a v1.0.0 commitId 補(bǔ)打標(biāo)簽

init

進(jìn)入相關(guān)文件夾創(chuàng)建本地版本庫

$ git init

config

配置相關(guān)信息

$ git config --global user.name "yourName
$ git config --global user.email "yourEmail"

add

添加文件到staged狀態(tài)

$ git add <file>

添加所有文件到staged狀態(tài)

$ git add .

status

查看庫文件當(dāng)前狀態(tài)

$ git status

commit

將處于stage狀態(tài)的文件提交到本地庫中

$ git commit -m "填寫相關(guān)描述信息"

合并add操作覆履,一步到位

$ git commit -am "填寫相關(guān)描述信息"

追加已經(jīng)commit的操作, 此時(shí)會(huì)刪除最后一條記錄并產(chǎn)生新的一條記錄 (commit id 不同),注意要先將改動(dòng)的文件add到staged狀態(tài)

$ git commit --amend --no-edit      

log

查看庫的操作日志

$ git log

查看庫的操作關(guān)鍵信息祭务,每個(gè) commit 內(nèi)容顯示在一行

$ git log --oneline

查看庫的操作關(guān)鍵信息内狗,包括分支信息

$ git log --oneline --graph

diff

查看unstaged狀態(tài)的文件

$ git diff

查看 staged狀態(tài)的文件(add過的文件)

$ git diff --cached

查看 staged & unstaged (HEAD)

$ git diff HEAD 

reset

回到add之前狀態(tài)(unstaged)

$ git reset <file>

查看上次 commit 的HEAD指針指向的id

$ git reset --hard HEAD 

回到 commit 之前(回滾): hard 會(huì)清除 7cd4e4e 之后的所有操作提交

$ git reset --hard <commit id>

回到 commit 之前(回滾): soft 會(huì)保留 7cd4e4e 之后的所有操作

$ git reset --soft <commit id>

reflog

查看所有 HEAD 的改動(dòng),配合 reset --hard 的可恢復(fù)之前的刪除操作

$ git reflog

checkout

讓文件回滾到某一次 commit

$ git checkout <commit id> -- <file>

切換分支

$ git checkout dev1.0

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

$ git checkout -b dev1.0

branch

查看當(dāng)前分支

$ git branch 

$ git branch -a #查看全部分支

創(chuàng)建分支

$ git branch dev1.0

merge

合并分支

$ git merge dev1.0

合并分支义锥,保留分支上commit信息

$ git merge --no-ff -m "相關(guān)描述信息" dev1.0 

stash

暫存修改

$ git stash

查看 stash 中的暫存任務(wù)

$ git stash list 

繼續(xù)暫存任務(wù)

$ git stash pop

fetch

拉取遠(yuǎn)程版本庫到本地版本庫(需要再次merge)

$ git fetch origin dev1.0

pull

拉取遠(yuǎn)程版本庫到本地版本庫柳沙,并將其merge到本地項(xiàng)目中

$ git pull origin dev1.0

push

推送本地版本庫到遠(yuǎn)程版本庫

$ git push -u origin dev1.0

常見問題

解決merge沖突

<<<<<<< HEAD
# edited in master
=======
# edited in dev
>>>>>>> dev

刪除"<<<<","====",">>>>"中問題code,重新提交

$ git commit -am "解決xxx沖突"

鏈接本地版本庫拌倍,并將分支 push 推送到Git上

$ git remote add origin git@github.com:LOLITA0164/PhotoBrowser.git
$ git push -u origin master     # 推送本地 master 去 origin
$ git push -u origin dev        # 推送本地 dev  去 origin

注意事項(xiàng):

創(chuàng)建一個(gè)未初始化的遠(yuǎn)程庫

正確姿勢(shì)出現(xiàn)如下圖樣式

正確樣式

出現(xiàn)fatal: remote origin already exists.錯(cuò)誤

如果鏈接本地版本庫出現(xiàn)上面錯(cuò)誤赂鲤,嘗試刪除重試

$ git remote rm origin

pull時(shí)候出現(xiàn)fatal: refusing to merge unrelated histories

因?yàn)榫W(wǎng)上和本地的是不同的兩個(gè)倉庫噪径,(網(wǎng)上的已經(jīng)初始化過了,這種情況通常是clone下來再開發(fā))如果需要合并数初,輸入以下命令嘗試

git pull origin <分支如master> --allow-unrelated-histories

Clone 克隆Git上的版本庫

git clone sourceAddress destinationAddress

如:

git clone git@github.com:LOLITA0164/PhotoBrowser.git ~/Desktop/PhotoBrowser

添加遠(yuǎn)程分支到本地分支

$ git checkout -b dev1.1 origin/dev1.1

刪除本地分支

$ git branch -d dev1.1

過程

...

1找爱、拉取最新需要開發(fā)的分支到本地(fetch、merge)
2泡孩、開發(fā)功能车摄,push前,再次拉取最新code
3仑鸥、1-2循環(huán)
4吮播、版本完成,merge到master分支眼俊,將該版本push到遠(yuǎn)程庫中
5意狠、打上tag,release該版本
6疮胖、1-5循環(huán)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末环戈,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子澎灸,更是在濱河造成了極大的恐慌院塞,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件性昭,死亡現(xiàn)場(chǎng)離奇詭異迫悠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)巩梢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艺玲,“玉大人括蝠,你說我怎么就攤上這事》咕郏” “怎么了忌警?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長秒梳。 經(jīng)常有香客問我法绵,道長,這世上最難降的妖魔是什么酪碘? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任朋譬,我火速辦了婚禮,結(jié)果婚禮上兴垦,老公的妹妹穿的比我還像新娘徙赢。我一直安慰自己字柠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布狡赐。 她就那樣靜靜地躺著窑业,像睡著了一般。 火紅的嫁衣襯著肌膚如雪枕屉。 梳的紋絲不亂的頭發(fā)上常柄,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音搀擂,去河邊找鬼西潘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛哥倔,可吹牛的內(nèi)容都是我干的秸架。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼咆蒿,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼东抹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沃测,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤缭黔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蒂破,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體馏谨,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年附迷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惧互。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喇伯,死狀恐怖喊儡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情稻据,我是刑警寧澤艾猜,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站捻悯,受9級(jí)特大地震影響匆赃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜今缚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一算柳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧姓言,春花似錦埠居、人聲如沸查牌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纸颜。三九已至,卻和暖如春绎橘,著一層夾襖步出監(jiān)牢的瞬間胁孙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工称鳞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涮较,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓冈止,卻偏偏與公主長得像狂票,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子熙暴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

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