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ù)雜,代碼保密性差
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ù)分支)
- git add .
- git commit -m"提交日志說明"
- 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ù)分支)
- git add .
- git commit -m"提交日志說明"
- 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)