使用GitLib

git 工作區(qū)域
git的工作區(qū)域.png

本地開發(fā)完之后通過add命令會(huì)把本地工作區(qū)的代碼添加到暫存區(qū)(stage)缓窜,然后commit之后會(huì)將stage中的代碼提交到本地分支的版本庫(kù)中阔籽,之后執(zhí)行push會(huì)推到遠(yuǎn)程分支中春锋。

分支管理策略

master應(yīng)該是非常穩(wěn)定的,也就是近用來發(fā)布的新版本,平時(shí)不在上面開發(fā),所有的開發(fā)應(yīng)該在dev分支上,測(cè)試驗(yàn)收完成慎菲,再把dev合并到master發(fā)布版本。

Bug分支

有時(shí)候在開發(fā)過程中需要緊急修復(fù)一個(gè)bug锨并,想要pull最新的代碼露该,但是又不想將正在開發(fā)到一半的代碼提交,那么可以先暫存開發(fā)的代碼第煮,使其返回到自己上一個(gè)commit解幼,改完bug之后再stash pop抑党,繼續(xù)原來的工作。
git stash 暫存當(dāng)前代碼
git stash pop 取出暫存的代碼
git stash list 查看現(xiàn)有的儲(chǔ)藏

feature分支(功能分支)

如果有多人協(xié)作的話撵摆,需要開出多個(gè)feature分支底靠,各自開發(fā)完成之后再合并。

打開gitlib然后新建一個(gè)項(xiàng)目取好名字特铝,然后按照底下給的提示在cmd中create 倉(cāng)庫(kù)暑中。注意在更新項(xiàng)目時(shí)要先pull,然后提交更新然后push
git提交文件的順序:

git add . // add全部文件
git add a b c d e // 文件之間添加空格表示依次添加文件
git commit -m "" 提交代碼到本地
git pull 拉去代碼
git push push代碼
git status 查看更改的文件

拉取遠(yuǎn)程分支并創(chuàng)建本地分支

git checkout -b 本地分支名x origin/遠(yuǎn)程分支名x(使用該方式會(huì)在本地新建分支x鲫剿,并自動(dòng)切換到該本地分支x鳄逾。)
git fetch origin 遠(yuǎn)程分支名x:本地分支名x(使用該方式會(huì)在本地新建分支x,但是不會(huì)自動(dòng)切換到該本地分支x灵莲,需要手動(dòng)checkout雕凹。)

版本回退

git 將本地的狀態(tài)回退到和遠(yuǎn)程一樣
git reset --hard origin/master

查看分支

查看本地分支:git branch 查看本地以及遠(yuǎn)程分支:git branch -a

切換分支

切換分支:git checkout "分支名"

創(chuàng)建分支

從已有的分支創(chuàng)建新分支(如從master分支),創(chuàng)建一個(gè)dev分支:
git checkout -b dev,如果需要從某一個(gè)分支切出另一個(gè)分支政冻,需要先切換到該分支下枚抵,然后在該分支中執(zhí)行該命令,則可以從該分支中創(chuàng)建出另一個(gè)分支明场。

遠(yuǎn)程與本地關(guān)聯(lián)

遠(yuǎn)程沒有關(guān)聯(lián)local_branch分支汽摹,并且本地已經(jīng)切換到remote_branch分支,要關(guān)連本地和遠(yuǎn)程分支:
git push origin local_branch:remote_branch
切換分支之前需要將當(dāng)前分支修改的內(nèi)容全部提交完榕堰,如果未提交完成則無法提交竖慧。

標(biāo)綠色表示當(dāng)前分支


屏幕快照 2017-12-12 上午9.09.39.png

在分支下pull或者push
git push origin develop (develop為分支名)
或者git push origin develop(本地分支):
git pull origin develop(遠(yuǎn)程分支):devleop(本地分支)

下面的命令執(zhí)行前提是在gitLab上有了地址
Git global setup
git config --global user.name "魏昌洲"
git config --global user.email "wcz345583696@163.com"

Create a new repository
git clone http://10.116.15.196:9999/wcz123/TestProject.git
cd TestProject
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Existing folder
cd existing_folder
git init
git remote add origin http://10.116.15.196:9999/wcz123/TestProject.git
git add .
git commit -m "Initial commit"
git push -u origin master

Existing Git repository
cd existing_repo
git remote add origin http://10.116.15.196:9999/wcz123/TestProject.git
git push -u origin --all
git push -u origin --tags

如何將本地的master代碼關(guān)聯(lián)到分支上:直接從分支上拉取代碼嫌套。
例如直接在master上拉取下來的代碼上執(zhí)行g(shù)it pull origin develop逆屡。

關(guān)于.gitignore

如果項(xiàng)目中沒有.gitignore文件,可以手動(dòng)創(chuàng)建一個(gè)踱讨。
有時(shí)候.gitignore不起作用魏蔗,原因就是因?yàn)?gitignore只能忽略那些原來沒有被track的文件,如果某些文件已經(jīng)被納入了版本管理中痹筛,則修改.gitignore是無效的莺治。解決方法就是先把本地緩存刪除(改變成未track狀態(tài)),然后再提交:
git rm -r --cached .
git add .
git commit -m “gitupdate gitignore file”
有時(shí)候執(zhí)行這樣的操作之后帚稠,在add時(shí)有的文件會(huì)的追蹤會(huì)丟失谣旁,需要進(jìn)入該文件目錄中將.git文件刪除之后再add。
如果要在.gitignore中添加某一個(gè)需要忽略的文件可以針對(duì)該文件做忽略 eg:

屏幕快照 2018-01-24 下午5.51.23.png

如果.gitignore寫的有問題滋早,需要找出來是哪里寫錯(cuò)了榄审,可以用git check-ignore命令檢查。

如何在新建項(xiàng)目時(shí)拉取到develop上的代碼:
先git clone 代碼杆麸,這時(shí)候本地代碼是master上的搁进,然后執(zhí)行g(shù)it checkout -b 本地分支名x origin/遠(yuǎn)程分支名x 拉取分支代碼并在本地創(chuàng)建分支浪感。可參考http://blog.csdn.net/tterminator/article/details/52225720饼问。

git diff

git diff 文件 查看文件修改影兽,查看文件修改了哪些地方,cd到該文件下莱革,然后執(zhí)行該命令峻堰。圖片中紅色的地方是沒修改之前的,綠色的是修改了的盅视。


屏幕快照 2018-01-24 下午5.17.45.png

git fetch

git fetch 更新遠(yuǎn)程分支茧妒,比如其他人創(chuàng)建了一個(gè)遠(yuǎn)程分支,你這邊沒更新到左冬,可以用git fetch命令更新一下桐筏。
git fetch <遠(yuǎn)程主機(jī)名>某個(gè)遠(yuǎn)程主機(jī)的更新,全部取回本地拇砰。
git fetch <遠(yuǎn)程主機(jī)名><分支名>取回所有分支(branch)的更新梅忌。
git fetch -p 遠(yuǎn)程有刪除的分支,通過該命令可以更新

git merge

git merge命令用于合并指定分支到當(dāng)前分支除破。例如將dev分支合并到master分支上:
1牧氮、切換到master分支下
2、執(zhí)行g(shù)it merge dev命令將dev分支合并到master分支瑰枫。
3踱葛、將遠(yuǎn)程的分支合并到本地:git merge origin/dev(遠(yuǎn)程的分支)

4、git merge dev1 合并本地分支dev1到當(dāng)前分支

刪除分支

git push origin :dev (origin后面有空格) 刪除遠(yuǎn)程分支光坝∈蹋或者git push origin --delete 分支名
git branch -d <BranchName> 在本地刪除遠(yuǎn)程已經(jīng)刪除的分支。
git branch -D <BranchName> 刪除本地分支盯另。
在刪除本地分支之前性含,當(dāng)前分支不能為該分支。

git log

git log --graph --pretty=oneline --abbrev-commit
查看分支的合并情況鸳惯,包括分支合并圖商蕴、一行顯示、提交校驗(yàn)碼縮略顯示芝发。

版本回退

git reset --hard HEAD^
回退到上一個(gè)版本绪商。
同理,回退到上上個(gè)版本為:HEAD^ ^辅鲸, 回退到上100個(gè)版本為:HEAD-100格郁,貌似波浪號(hào) ~ 也可以,變成倒數(shù)第101個(gè)。
git checkout . 類似git reset的作用理张,放棄對(duì)文件的修改

git tag

版本的發(fā)布會(huì)一直持續(xù)赫蛇,如果上一個(gè)版本出了問題,我們需要版本追溯時(shí)可以通過git tag直接定位到出問題的版本雾叭。通過這個(gè)命令可以避免不斷的開出分支來保留上一個(gè)版本悟耘。
git tag 查看目前有哪些tag。
git show tag-name 查看某一個(gè)tag下的具體信息织狐。
git checkout tag-name 將工程定位到相應(yīng)的tag處暂幼。
git tag -a v1.0.0 -m “1.0.0版本” 為當(dāng)前版本添加附注。
git push origin v1.0.0單獨(dú)提交本次tag移迫。
git push --tags 提交所有tags旺嬉。
git tag -d v1.0.0 刪除標(biāo)簽。
git push origin --delete tag <tagname> 刪除遠(yuǎn)端tag厨埋。

在gitlab下邪媳,一般只有項(xiàng)目創(chuàng)建者才有權(quán)限合并和提交代碼到master上,如果要給開發(fā)者提供開發(fā)master分支的權(quán)限荡陷,需要在項(xiàng)目面板Settings ->Repository中將項(xiàng)目的開發(fā)權(quán)限放開雨效。
[圖片上傳中...(屏幕快照 2018-02-24 上午10.46.48.png-dc3cbf-1519440588579-0)]

查看歷史提交明細(xì):

1、gitLab -> Repository -> Commits然后查看提交過的文件的詳細(xì)更改


屏幕快照 2018-05-02 下午1.12.08.png

2废赞、或者可以cd到某一個(gè)文件下徽龟,通過git log filename來看這個(gè)文件以往的提價(jià)記錄,每個(gè)提交記錄對(duì)應(yīng)著一個(gè)hash值唉地,然后執(zhí)行g(shù)it show hashValue來查看具體的內(nèi)容据悔。

git reflog 查看各分支的提交記錄

這個(gè)命令記錄了所有的提交記錄,HEAD前面的值是關(guān)鍵耘沼,如果代碼合并或者出現(xiàn)了別的錯(cuò)誤极颓,需要恢復(fù)到某一個(gè)提交的點(diǎn),可以先用這個(gè)命令查看所有的提交記錄耕拷,找到需要的HEAD的值讼昆,然后執(zhí)行g(shù)it reset 28d447f –hard命令,中間的28d447f替換成自己查找出來的值骚烧。
屏幕快照 2018-05-09 下午3.41.22.png

git命令行記住用戶名和密碼

git config --global credential.helper store
先輸入該命令,然后再執(zhí)行其他git命令時(shí)輸入用戶名和密碼就會(huì)記住該用戶名和密碼了闰围。

記錄一次遇到的git問題:

不要在tag上寫代碼赃绊,tag不是分支,記錄的只是代碼某一個(gè)狀態(tài)下的所有數(shù)據(jù)羡榴,在tag上寫的代碼只能進(jìn)行本地提交碧查,沒有辦法push。如果不小心在tag上寫了代碼,需要做的是先把代碼提交到本地忠售,然后切換到打tag的分支传惠,這時(shí)候會(huì)出現(xiàn)如下提示:
屏幕快照 2018-05-09 下午3.57.19.png
這句話的意思是需要你切一個(gè)新的分支,然后分支后面帶的一長(zhǎng)串值也要加上稻扬,這樣才能將寫在tag上的代碼移動(dòng)到新

強(qiáng)制將本地推到遠(yuǎn)程的分支
如果本地的版本是對(duì)的卦方,想用本地的分支替換掉遠(yuǎn)程的分支,可以先切到該本地分支泰佳,然后使用命令 :git push -u origin master -f 盼砍,其中“master”是目標(biāo)遠(yuǎn)程分支。

遠(yuǎn)程的git地址發(fā)生變更怎么修改逝她?
在項(xiàng)目文件夾中找到.git文件浇坐,然后打開里面的config文件,然后修改url參數(shù)黔宛。

附上廖雪峰的git講解:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末近刘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子臀晃,更是在濱河造成了極大的恐慌跌宛,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件积仗,死亡現(xiàn)場(chǎng)離奇詭異疆拘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)寂曹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門哎迄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人隆圆,你說我怎么就攤上這事漱挚。” “怎么了渺氧?”我有些...
    開封第一講書人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵旨涝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我侣背,道長(zhǎng)白华,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任贩耐,我火速辦了婚禮弧腥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘潮太。我一直安慰自己管搪,他們只是感情好虾攻,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著更鲁,像睡著了一般霎箍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上澡为,一...
    開封第一講書人閱讀 52,736評(píng)論 1 312
  • 那天漂坏,我揣著相機(jī)與錄音,去河邊找鬼缀壤。 笑死樊拓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的塘慕。 我是一名探鬼主播筋夏,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼图呢!你這毒婦竟也來了条篷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤蛤织,失蹤者是張志新(化名)和其女友劉穎赴叹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體指蚜,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡乞巧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摊鸡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绽媒。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖免猾,靈堂內(nèi)的尸體忽然破棺而出是辕,到底是詐尸還是另有隱情,我是刑警寧澤猎提,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布获三,位于F島的核電站,受9級(jí)特大地震影響锨苏,放射性物質(zhì)發(fā)生泄漏疙教。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一蚓炬、第九天 我趴在偏房一處隱蔽的房頂上張望松逊。 院中可真熱鬧,春花似錦肯夏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)烁兰。三九已至,卻和暖如春徊都,著一層夾襖步出監(jiān)牢的瞬間沪斟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工暇矫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留主之,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓李根,卻偏偏與公主長(zhǎng)得像槽奕,于是被迫代替她去往敵國(guó)和親皮胡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子以清,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

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

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,499評(píng)論 1 26
  • 本片內(nèi)容轉(zhuǎn)自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃兒閱讀 4,934評(píng)論 2 88
  • 一個(gè)人越是善良玉转,待人的底線應(yīng)該越高一些履婉。這樣才能避免縱容他人舌菜,也能保護(hù)自己慢味。如果你的生活只是對(duì)世界察言觀色纷妆,然后滿...
    蠟筆滴愛十年閱讀 711評(píng)論 0 0
  • 先有什剎海盔几,后有北京城。什剎海又稱十漢貉诖保或十版海逊拍,位于帝都西城區(qū)西北部,由前海粒蜈、后海和西海三個(gè)水域組成顺献,俗稱“后三...
    微瀾09閱讀 1,046評(píng)論 0 0
  • Java是強(qiáng)類型語(yǔ)言,對(duì)于每一種數(shù)據(jù)都定義了具體的數(shù)據(jù)類型枯怖,在內(nèi)存中分配了不同大小的內(nèi)存空間注整。 1.整型 整數(shù)默認(rèn)...
    Olivia_SHEN閱讀 286評(píng)論 0 0