git版本控制系統(tǒng)詳解

# Git

## 什么是Git?

? - Git是一款源代碼管理工具(版本控制工具)

? ? - 我們寫的代碼需要使用Git進行管理篮奄。

? - 源代碼有必要管理起嗎另绩?

? - 1.0

? - 2.0 //

? - svn,vss,vcs.... git

? - 有必要旁振,因為人工的去處理不同的版本谓罗,做相應(yīng)備份會很麻煩域那。

? - Git是linux之父當年為了維護linux---linus之前也是手動維護合并把文件發(fā)給Linus

? - linus自己寫了一個版本管理的工具(Git)

## Git安裝

## 初始化Git倉儲/(倉庫)

- 這個倉庫會存放活逆,git對我們項目代碼進行備份的文件

- 在項目目錄右鍵打開 git bash

- 命令: `git init`

## 自報家門

- 就是在git中設(shè)置當前使用的用戶是誰

- 每一次備份都會把當前備份者的信息存儲起來

- 命令:

? ? + 配置用戶名:`git config --global user.name "xiaoming"`

? ? + 配置郵箱:? `git config --global user.email "xm@sina.com"`

## 把大象放到冰箱要幾步

1. 打開冰箱門

2. 放大象

3. 關(guān)上冰箱

## 把代碼存儲到.git倉儲中

- 1.把代碼放到倉儲的門口

? ? + `git add ./readme.md` 所指定的文件放到大門口

? ? + `git add ./` 把所有的修改的文件添加到大門口

- 2.把倉儲門口的代碼放到里面的房間中去

? ? + `git commit -m "這是對這次添加的東西的說明" `

## 可以一次性把我們修改的代碼放到房間里(版本庫)

- `git commit --all -m "一些說明"`

? ? + --all 表示是把所有修改的文件提交到版本庫

## 查看當前的狀態(tài)

- 可以用來查看當前代碼有沒有被放到倉儲中去

- 命令: `git status`

## git中的忽略文件

- .gitignore,在這個文件中可以設(shè)置要被忽略的文件或者目錄铅忿。

- 被忽略的文件不會被提交倉儲里去.

- 在.gitignore中可以書寫要被忽略的文件的路徑剪决,以/開頭,

? ? 一行寫一個路徑檀训,這些路徑所對應(yīng)的文件都會被忽略柑潦,

? ? 不會被提交到倉儲中

? ? + 寫法

? ? ? ? * ` /.idea? ` 會忽略.idea文件

? ? ? ? * ` /js`? ? ? 會忽略js目錄里的所有文件

? ? ? ? * ` /js/*.js` 會忽略js目錄下所有js文件

## 查看日志

- `git log` 查看歷史提交的日志

- `git log --oneline` 可以看到簡潔版的日志

## 回退到指定的版本

- `git reset --hard Head~0`

? ? + 表示回退到上一次代碼提交時的狀態(tài)

- `git reset --hard Head~1`

? ? + 表示回退到上上次代碼提交時的狀態(tài)

- `git reset --hard [版本號]`

? ? + 可以通過版本號精確的回退到某一次提交時的狀態(tài)

- `git reflog`

? + 可以看到每一次切換版本的記錄:可以看到所有提交的版本號

## 分支

- 默認是有一個主分支master

### 創(chuàng)建分支

- `git branch dev`

? ? + 創(chuàng)建了一個dev分支

? ? + 在剛創(chuàng)建時dev分支里的東西和master分支里的東西是一樣的

### 切換分支

- `git checkout dev`

? ? + 切換到指定的分支,這里的切換到名為dev的分支

? ? `git branch` 可以查看當前有哪些分支

### 合并分支

- `git merge dev`

? ? + 合并分支內(nèi)容,把當前分支與指定的分支(dev),進行合并

? ? + 當前分支指的是`git branch`命令輸出的前面有*號的分支

- 合并時如果有沖突,需要手動去處理肢扯,處理后還需要再提交一次.

### GitHub

- https://github.com

- 不是git,只是一個網(wǎng)站

- 只不過這個網(wǎng)站提供了允許別通過git上傳代碼的功能

### 提交代碼到github(當作git服務(wù)器來用)

- `git push [地址] master`

+ 示例: `git push https://github.com/huoqishi/test112.git master? master`

+ 會把當前分支的內(nèi)容上傳到遠程的master分支上

- `git pull [地址] master`

+ 示例: `git pull https://github.com/huoqishi/test112.git master`

+ 會把遠程分支的數(shù)據(jù)得到:(*注意本地-要初始一個倉儲!*)

- `git clone [地址]`

+ 會得到遠程倉儲相同的數(shù)據(jù),如果多次執(zhí)行會覆蓋本地內(nèi)容妒茬。

# 流行框架

## ssh方式上傳代碼

- 公鑰 私鑰,兩者之間是有關(guān)聯(lián)的。

- 生成公鑰,和私鑰

? ? + `ssh-keygen -t rsa -C "xiaoming@sina.com"`

## 在push和pull操作進

- 先pull , 再push

- 當我們在push時蔚晨,加上-u參數(shù)乍钻,那么在下一次push時

? 我們只需要寫上`git push`就能上傳我們的代碼。(加上-u之后铭腕,git會把

? 當前分支與遠程的指定的分支進行關(guān)聯(lián)银择。git push origin master)


?git常用命令

? mkdir:? ? ? ? XX (創(chuàng)建一個空目錄 XX指目錄名)

? pwd:? ? ? ? ? 顯示當前目錄的路徑。

? git init? ? ? ? ? 把當前的目錄變成可以管理的git倉庫累舷,生成隱藏.git文件浩考。

? git add XX? ? ? 把xx文件添加到暫存區(qū)去。

? git commit –m “XX”? 提交文件 –m 后面的是注釋被盈。

? git status? ? ? ? 查看倉庫狀態(tài)

? git diff? XX? ? ? 查看XX文件修改了那些內(nèi)容

? git log? ? ? ? ? 查看歷史記錄

? git reset? –hard HEAD^ 或者 git reset? –hard HEAD~ 回退到上一個版本

? ? ? ? ? ? ? ? ? ? ? ? (如果想回退到100個版本析孽,使用git reset –hard HEAD~100 )

? cat XX? ? ? ? 查看XX文件內(nèi)容

? git reflog? ? ? 查看歷史記錄的版本號id

? git checkout — XX? 把XX文件在工作區(qū)的修改全部撤銷搭伤。

? git rm XX? ? ? ? ? 刪除XX文件

? git remote add origin https://github.com/ev-power/XiaoYong 關(guān)聯(lián)一個遠程庫

? git push –u(第一次要用-u 以后不需要) origin master 把當前master分支推送到遠程庫

? git clone https://github.com/ev-power/XiaoYong? 從遠程庫中克隆

? git checkout –b dev? 創(chuàng)建dev分支 并切換到dev分支上

? git branch? 查看當前所有的分支

? git checkout master 切換回master分支

? git merge dev? ? 在當前的分支上合并dev分支

? git branch –d dev 刪除dev分支

? git branch name? 創(chuàng)建分支

? git stash 把當前的工作隱藏起來 等以后恢復(fù)現(xiàn)場后繼續(xù)工作

? git stash list 查看所有被隱藏的文件列表

? git stash apply 恢復(fù)被隱藏的文件,但是內(nèi)容不刪除

? git stash drop 刪除文件

? git stash pop 恢復(fù)文件的同時 也刪除文件

? git remote 查看遠程庫的信息

? git remote –v 查看遠程庫的詳細信息

? git push origin master? Git會把master分支推送到遠程庫對應(yīng)的遠程分支上? ?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末袜瞬,一起剝皮案震驚了整個濱河市怜俐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌邓尤,老刑警劉巖拍鲤,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異汞扎,居然都是意外死亡季稳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門澈魄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來景鼠,“玉大人,你說我怎么就攤上這事一忱×” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵帘营,是天一觀的道長。 經(jīng)常有香客問我逐哈,道長芬迄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任昂秃,我火速辦了婚禮禀梳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肠骆。我一直安慰自己算途,他們只是感情好,可當我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布蚀腿。 她就那樣靜靜地躺著嘴瓤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪莉钙。 梳的紋絲不亂的頭發(fā)上廓脆,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機與錄音磁玉,去河邊找鬼停忿。 笑死,一個胖子當著我的面吹牛蚊伞,可吹牛的內(nèi)容都是我干的席赂。 我是一名探鬼主播吮铭,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼颅停!你這毒婦竟也來了沐兵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤便监,失蹤者是張志新(化名)和其女友劉穎扎谎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烧董,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡毁靶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了逊移。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片预吆。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖胳泉,靈堂內(nèi)的尸體忽然破棺而出拐叉,到底是詐尸還是另有隱情,我是刑警寧澤扇商,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布凤瘦,位于F島的核電站,受9級特大地震影響案铺,放射性物質(zhì)發(fā)生泄漏蔬芥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一控汉、第九天 我趴在偏房一處隱蔽的房頂上張望笔诵。 院中可真熱鬧,春花似錦姑子、人聲如沸乎婿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谢翎。三九已至,卻和暖如春舆乔,著一層夾襖步出監(jiān)牢的瞬間岳服,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工希俩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吊宋,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像璃搜,于是被迫代替她去往敵國和親拖吼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,630評論 2 359

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

  • Git 安裝和使用教程 Git介紹 分布式:Git版本控制系統(tǒng)是一個分布式的系統(tǒng)这吻,是用來保存工程源代碼歷史狀態(tài)的命...
    無名_ff98閱讀 1,629評論 0 3
  • 原文地址主要用到的命令: git config user.name 設(shè)置用戶名 git config user....
    AFinalStone閱讀 474評論 0 2
  • 轉(zhuǎn)載自:http://www.open-open.com/lib/view/open1414396787325.h...
    Bbooo閱讀 438評論 0 3
  • 一:Git是什么吊档? Git是目前世界上最先進的分布式版本控制系統(tǒng)。 二:SVN與Git的最主要的區(qū)別唾糯? SVN是集...
    傲慢二鍋頭閱讀 418評論 0 0
  • 還是老規(guī)矩怠硼,這篇看完后,還是學(xué)不會git版本控制的移怯,你來砍我 是兄弟就來砍我吧O懔А!舟误! Git是分布式版本控制系統(tǒng)葡秒,...
    Zteen閱讀 3,185評論 0 6