Git 用了接近一年了,總結(jié)一下
IT TianSir
git clone http://... 將項(xiàng)目克隆到本地(該項(xiàng)目會(huì)放在當(dāng)前目錄下)
git branch 查看本地分支
git branch -r 查看遠(yuǎn)程分支
git branch -a 查看所有分支
git status 查看當(dāng)前分支的工作狀態(tài)揖铜,比較暫存區(qū)和head文件的差異
git checkout branchname 切換到branchname分支
git checkout -t -b production origin/production 從遠(yuǎn)程分支切一個(gè)分支出來(lái)边臼,并切換到該分支缺厉,此時(shí)該分支與對(duì)應(yīng)遠(yuǎn)程分支是一致的
git checkout -b fixbug/tianjian-production 從當(dāng)前分支的基礎(chǔ)上切一個(gè)分支出來(lái),此時(shí)該分支與之前原分支是一致的
git branch -d | -D branchname 刪除本地分支branchname
git branch -d | -D -r branchname 刪除遠(yuǎn)程分支branchname
git stash 將當(dāng)前的更改暫存起來(lái)(Boss突然讓你去正式環(huán)境修改緊急bug,此時(shí)暫存很有用)
git stash pop 將暫存的內(nèi)容放出來(lái)
git add . 將當(dāng)前的修改添加到暫存區(qū)
git commit -m '' 將更改提交到暫存區(qū)
git push origin branchname 將代碼推到遠(yuǎn)程branchname分支
git checkoout . 撤銷當(dāng)前的更改
git reset --hard commit_id 撤銷提交
git pull 從遠(yuǎn)程將代碼更新到本地分支
git checkout B 切換到B分支
git merge A 將本地A分支合到當(dāng)前分支
此時(shí)A分支的代碼就已經(jīng)合到B分支了,完成了歷史使命忘衍,可以放心的將其刪除git branch -d A
git status 取代碼前看下是否有更改未提交
git pull 更新代碼
敲代碼
git status 查看是否是自己修改過(guò)的文件
git add . 將當(dāng)前更改添加到暫存區(qū)
git commit -m 'beizhu' 提交更改
git push origin branchname 將代碼推到遠(yuǎn)程
在工作目錄中修改某些文件
對(duì)修改后的文件進(jìn)行快照嚎朽,然后保存到暫存區(qū)域
提交更新铺纽,將保存在暫存區(qū)域的文件快照永久的轉(zhuǎn)存到git目錄中
<<<<<HEAD
修改1
=========
修改2
>>>>>feature1
<<<<<HEAD表示主分支,主分支的修改是修改1哟忍,>>>>>feature1表示當(dāng)前分支狡门,當(dāng)前分支的修改是修改2陷寝,手動(dòng)解決沖突之后,重新提交
已提交(committed)其馏,已提交表示該文件已經(jīng)被安全地保存在本地?cái)?shù)據(jù)庫(kù)中了
已修改(modified)凤跑,已修改表示修改了某個(gè)文件,但還沒(méi)有提交保存
已暫存(staged)叛复,已修改的文件放在下次提交時(shí)要保存的清單中饶火。
1,git checkout -b production -t origin/production
創(chuàng)建一個(gè)本地分支致扯,該本地的分支production 與 遠(yuǎn)程分支 origin/production的代碼是同步的.
本地分支取名production 只是為了便于自己記憶對(duì)應(yīng)的是哪一個(gè)遠(yuǎn)程分支肤寝。如果你記憶牛逼的話,取asdfdasddfvdf 這樣亂七八糟的名字也是可以的.
git pull就表示從遠(yuǎn)程分支把代碼拉下來(lái)抖僵,使本地分支的代碼與遠(yuǎn)程分支的代碼同步鲤看。
git push 就是將本地的代碼推到遠(yuǎn)程分支,使遠(yuǎn)程的分支與本地分支代碼同步耍群。(有的公司在生產(chǎn)分支义桂,git push時(shí),為了防止代碼的胡亂提交蹈垢,會(huì)設(shè)置權(quán)限慷吊,此時(shí)我們就要?jiǎng)?chuàng)建一個(gè)自己的分支,使它的代碼與本地production分支的一致曹抬。然后再請(qǐng)求有權(quán)限的人將origin/hotfix/tianjian-propm與origin/production合并溉瓶,production就相當(dāng)于一個(gè)中轉(zhuǎn)站一樣。)
2谤民,git checkout production (切換到production分支堰酿,拉代碼)
3,git pull (保持production分支與origin/production的同步)
4张足,git checkout -b hotfix/tianjian-propm 然后從本地分支創(chuàng)建自己的分支触创,hotfix/tianjian-propm,名字同樣也是為了記憶方便为牍,
5哼绑,git merge production(將production分支的代碼合并到自己的分支,使自己的分支與production分支的代碼同步碉咆,因?yàn)閜roduction分支與origin/production分支已經(jīng)同步抖韩,所以此時(shí),origin/production, production, hotfix/tianjian-propm,三個(gè)分支是同步的)
在hotfix/tianjian-propm分支修改代碼,然后提交 (提交只是將代碼提交到本地的hotfix/tianjian-propm分支吟逝,)
git push origin hotfix/tianjian-propm 將本地的分支提交到遠(yuǎn)程對(duì)應(yīng)的分支帽蝶,首次git push時(shí)赦肋,會(huì)自動(dòng)創(chuàng)建這樣一個(gè)對(duì)應(yīng)的遠(yuǎn)程分支块攒,
請(qǐng)求有權(quán)限的人將 遠(yuǎn)程的 origin/hotfix/tianjian-propm合并到 origin/production励稳,合并完成后,此時(shí)origin/production的代碼就是最新的囱井,同樣再去production分支拉代碼驹尼,然后在合到hotfix/tianjian-propm,保持三個(gè)分支的代碼保持一致庞呕。
提交產(chǎn)生沖突時(shí)新翎,去production分支將最新的代碼拉下來(lái),然后合并到hotfix/tianjian-propm住练,gss命令查看地啰,產(chǎn)生沖突的文件,手動(dòng)修改沖突讲逛,然后和修改代碼一樣走一次流程亏吝。
1,盡量在自己的分支上開(kāi)發(fā),靈活性盏混,機(jī)動(dòng)性高
2,若是做了什么不可逆的操作蔚鸥,不要慌,直接將這個(gè)分支刪掉许赃,再切一個(gè)分支就好止喷,哈哈