第十四git

Git是什么陶冷?

  • Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)豆茫。

SVN與Git的最主要的區(qū)別?

  • SVN為集中式版本控制系統(tǒng)伸蚯,版本庫(kù)是集中存放在中央服務(wù)器的
    單獨(dú)搭建SVN服務(wù)器撬码,不能離線工作
    操作簡(jiǎn)單,代碼保密性較強(qiáng)


    1.png
  • GIT為分布式版本控制系統(tǒng)根本沒有“中央服務(wù)器”掰吕,每個(gè)人的電腦上都是一個(gè)完整的版本庫(kù)
    1 適合分布式開發(fā)果覆,強(qiáng)調(diào)個(gè)體
    2 公共服務(wù)器壓力和數(shù)據(jù)量都不會(huì)太大
    3 速度快靈活
    4 可以離線工作
    5 操作復(fù)雜,代碼保密性差

2.png

github的使用

GitHub,免費(fèi)的遠(yuǎn)程倉(cāng)庫(kù)畴栖,如果是個(gè)人的開源項(xiàng)目随静,放到GitHub上是完全沒有問題的八千。GitHub還是一個(gè)開源協(xié)作社區(qū)吗讶,通過GitHub,既可以讓別人參與你的開源項(xiàng)目恋捆,也可以參與別人的開源項(xiàng)目照皆。
SVN的存儲(chǔ)需要依賴一個(gè)服務(wù)器,而git所有的東西是放在線上的沸停。節(jié)約成本膜毁,省時(shí)省力。

下載安裝git

https://www.git-scm.com/download/ (建議默認(rèn)安裝,不要改動(dòng)安裝路徑)

git配置

命令:
1. git add:將本地工作空間中的文件瘟滨,添加到本地git暫存區(qū)
2. git commit:將暫存區(qū)中的文件提交到本地版本庫(kù)(分支候醒,默認(rèn)分支為主分支master分支)
3. git push:將本地版本庫(kù)的文件推送到遠(yuǎn)程倉(cāng)庫(kù)(遠(yuǎn)程分支)
4. git pull:將遠(yuǎn)程倉(cāng)庫(kù)的內(nèi)容 拉取到本地倉(cāng)庫(kù)。
配置用戶名和郵箱
桌面右擊選擇Git Bash Here 打開git命令行工具
1. 用戶名配置命令:
git config --global user.name "user"
2. 郵箱配置命令
git config --global user.email "111111@qq.com"
運(yùn)行以上兩個(gè)命令后會(huì)在C盤-用戶-xxxx(系統(tǒng)賬戶文件夾)這個(gè)目錄下生成.gitconfig文件杂瘸,用編輯工具可以打開該文件查看配置好的用戶和郵箱
如:

   [user]
        email = 111111@qq.com
        name = user

github 遠(yuǎn)程倉(cāng)庫(kù)搭建 (統(tǒng)一的項(xiàng)目官方托管網(wǎng)站)

  • github注冊(cè)及登錄
  • 配置免密鑰登錄
    配置免密鑰登錄本地是為了將本地倉(cāng)庫(kù)與遠(yuǎn)程github倉(cāng)庫(kù)關(guān)聯(lián)
    1. 本地倉(cāng)庫(kù)需要配置生成ssh key密鑰
    配置命令:
    ssh-keygen -t rsa -C 111111@qq.com
    一直回車后生成如下內(nèi)容倒淫,密鑰生成成功
+---[RSA 2048]----+
| ....o.. ooo..   |
| o.. .. . o...   |
|  + o . ..= + .  |
|   o o = + B o   |
|  . . o S E o    |
|   o o * . *     |
|    + + +   .    |
|   . = ..o o     |
|    + ....o..    |
+----[SHA256]-----+

密鑰生成后會(huì)在C盤的系統(tǒng)用戶目錄下生成.ssh密鑰文件夾,文件夾中有兩個(gè)密鑰文件败玉,一個(gè)是私密密鑰敌土,一個(gè)是public類型密鑰,兩個(gè)文件的功能就是為了讓本地與遠(yuǎn)程通信,私密為本地使用运翼,pub為遠(yuǎn)程github使用返干,兩者匹配后,本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)就產(chǎn)生了關(guān)聯(lián)
2.登錄github遠(yuǎn)程倉(cāng)庫(kù)--選擇settings選項(xiàng)--選擇SSH and GPG keys--選擇new SSH key--Title輸入密鑰標(biāo)題(任意取名)--Key中添加public類型密鑰文件中的內(nèi)容(注:內(nèi)容復(fù)件粘貼就好血淌,不要有額外的回車或空格矩欠,避免出錯(cuò))--點(diǎn)擊Add SSH key
3.測(cè)試是否關(guān)聯(lián)上了github
測(cè)試命令:

ssh -T git@github.com

回車,輸入yes再回車悠夯,測(cè)試成功關(guān)聯(lián)后.ssh密鑰文件夾會(huì)自動(dòng)生成一個(gè)known_hosts文件晚顷,
注:因網(wǎng)絡(luò)問題有可能會(huì)失敗,多測(cè)試幾次就好

  • 本地倉(cāng)庫(kù)項(xiàng)目與github倉(cāng)庫(kù)項(xiàng)目關(guān)聯(lián)
    本地倉(cāng)庫(kù)與github倉(cāng)庫(kù)聯(lián)后疗疟,我們就可以開始對(duì)項(xiàng)目版本開始管理了该默,在本地的項(xiàng)目目錄下打開Git Bash命令行工具,執(zhí)行如下命令
git remote add origin github上新創(chuàng)建的項(xiàng)目https標(biāo)識(shí)(路徑)

項(xiàng)目版本管理

  • 第一次發(fā)布項(xiàng)目版本(從本地倉(cāng)庫(kù)分支到遠(yuǎn)程github倉(cāng)庫(kù)分支)
  1. git add .
  2. git commit -m"提交日志說明"
  3. git push -u origin master
  • 第一次下載項(xiàng)目版本(從遠(yuǎn)程github倉(cāng)庫(kù)分支到本地倉(cāng)庫(kù)分支)
    git clone github上新創(chuàng)建的項(xiàng)目https標(biāo)識(shí)(路徑)
  • 后續(xù)提交版本(從本地倉(cāng)庫(kù)分支到遠(yuǎn)程github倉(cāng)庫(kù)分支)
  1. git add .
  2. git commit -m"提交日志說明"
  3. git push origin master (與第一次發(fā)布的操作相比只是少了一個(gè)-u)
  • 后續(xù)更新 版本 (從遠(yuǎn)程github倉(cāng)庫(kù)分支到本地倉(cāng)庫(kù)分支)
    git pull

常用命令

1.初始化項(xiàng)目倉(cāng)庫(kù):

git init //通過命令 git init 把這個(gè)目錄變成git可以管理的倉(cāng)庫(kù)

2.查看某些文件或文件夾是否被git管理

$ git status
On branch master  //表示在master主分支上查看文件狀態(tài)

No commits yet//尚未提交,如果有被管理策彤,但并未來commit的文件會(huì)在以下區(qū)域顯示

Untracked files://尚未跟蹤的文件栓袖,被修改過或新增加的文件會(huì)在以下區(qū)域顯示 
  (use "git add <file>..." to include in what will be committed)//提示可以使用git add添加到緩存

        readme.txt//新添加或修改過的文件

nothing added to commit but untracked files present (use "git add" to track)//沒有添加到提交,但存在未跟蹤的文件(使用“git add”跟蹤)

3.將某個(gè)改動(dòng)過的或新添加的文件文件添加到本地的git上 被git管理 : 使用命令 git add xxx.txt添加到暫存區(qū)里面去

git add 文件名

4.批量添加某些文件被git管理

 git add .  或  git add --all

5.如果有些文件并不需要被git管理店诗,我們就需要忽略掉這些文件不被管理
創(chuàng)建一個(gè) .gitignore 文件
創(chuàng)建命令:touch .gitignore
.gitignore 文件 的作用:將要忽略的文件全稱寫入到該文件中裹刮,文件中的寫入內(nèi)容如下示例 :

.gitignore  //.gitignore必須忽略
notice.txt
src/description.txt

寫入完成后就可以執(zhí)行g(shù)it add . 命令了。凡是被寫入的文件都會(huì)被忽略庞瘸。

6.提交被管理的文件到git服務(wù)器上 : 用命令 git commit告訴Git捧弃,把文件提交到倉(cāng)庫(kù)

git commit -m"日志";//日志為必寫內(nèi)容,如:實(shí)現(xiàn)了XX功能

7.如果是第一次使用git的commit,會(huì)提示需要設(shè)置用戶的默認(rèn)標(biāo)識(shí)擦囊,

  • 因?yàn)镚it是分布式版本控制系統(tǒng)违霞,所以需要填寫用戶名和郵箱作為一個(gè)標(biāo)識(shí)。執(zhí)行以下命令即可瞬场,用戶名和郵箱可隨意填寫买鸽,沒有嚴(yán)格規(guī)定
git config --global user.name "xxxx"
git config --global user.email "xxxx@163.com"

8.git stauts時(shí)查看工作區(qū)狀態(tài)顯示如下

$ git status
On branch master  // 在主分支上
nothing to commit, working tree clean //工作區(qū)沒有需要提交的,工作樹很清潔

9.修改文件贯被,文件被修改后眼五,先add添加緩存被管理再commit提交
10.從緩存區(qū)撤銷被管理的文件

git reset 文件名

11.撤銷工作區(qū)文件內(nèi)容的更改 :即原來在文件中更改好的內(nèi)容會(huì)刪除

git checkout -- 文件名

12.查看git版本日志信息:

git log

13.回退某個(gè)版本

git reset --hard 695ebb(前六位哈希值)

分支操作 主分支:master

1.查看分支

git branch

2.創(chuàng)建分支

git branch 分支名

3.切換分支:

git checkout 分支名

4.創(chuàng)建并切換到某個(gè)分支:

git checkout -b 分支名

5.創(chuàng)建并切換到某個(gè)分支:
在master上合并分支:(如果不在主分支上妆艘,需要切換到主分支上再作此操作)

git merge 分支名

6.刪除master下的分支:

git branch -d 分支名

git團(tuán)隊(duì)協(xié)作

github上 當(dāng)前項(xiàng)目下 選擇settings選項(xiàng)=>選擇Collaboators(增加成員)
Add collaborator中輸入成員github用戶名,點(diǎn)擊增加
選擇Copy invite link邀請(qǐng)鏈接項(xiàng) 將鏈接路徑發(fā)送給成員
成員登錄github賬戶看幼,使用邀請(qǐng)鏈接訪問邀請(qǐng)頁面批旺,點(diǎn)擊Accept invitation接受邀請(qǐng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诵姜,隨后出現(xiàn)的幾起案子朱沃,更是在濱河造成了極大的恐慌,老刑警劉巖茅诱,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逗物,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瑟俭,警方通過查閱死者的電腦和手機(jī)翎卓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摆寄,“玉大人失暴,你說我怎么就攤上這事∥⒓ⅲ” “怎么了逗扒?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)欠橘。 經(jīng)常有香客問我矩肩,道長(zhǎng),這世上最難降的妖魔是什么肃续? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任黍檩,我火速辦了婚禮,結(jié)果婚禮上始锚,老公的妹妹穿的比我還像新娘刽酱。我一直安慰自己,他們只是感情好瞧捌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布棵里。 她就那樣靜靜地躺著,像睡著了一般姐呐。 火紅的嫁衣襯著肌膚如雪殿怜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天皮钠,我揣著相機(jī)與錄音稳捆,去河邊找鬼。 笑死麦轰,一個(gè)胖子當(dāng)著我的面吹牛乔夯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播款侵,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼末荐,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了新锈?” 一聲冷哼從身側(cè)響起甲脏,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妹笆,沒想到半個(gè)月后块请,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拳缠,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年墩新,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窟坐。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡海渊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哲鸳,到底是詐尸還是另有隱情臣疑,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布徙菠,位于F島的核電站讯沈,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏婿奔。R本人自食惡果不足惜芙盘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脸秽。 院中可真熱鬧儒老,春花似錦、人聲如沸记餐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽片酝。三九已至囚衔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雕沿,已是汗流浹背练湿。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留审轮,地道東北人肥哎。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓辽俗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親篡诽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子崖飘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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