GIT操作
版本庫(kù)管理歷史
-
黑暗時(shí)期 =》 集中式版本控制 =》 分布式版本控制
- 黑暗時(shí)期:論文定稿 ->論文定稿2 -> 論文定稿18.04.19 -> 論文最終版 -> 論文最最終版 -> 打死都不改版->
- 集中式版本控制:最早的CVS挠日,后起之秀SVN
- 分布式版本控制:BitKeeper拙友、GIT
- 2008年github正式運(yùn)營(yíng)宽菜,之后git迅速發(fā)展
安裝配置
- 安裝:
sudo apt-get install git
- 測(cè)試:
git --version
捻脖,查看版本 - 配置:
- 郵箱:
git config --global user.email "你的郵箱"
- 用戶:
git config --global user.name "你的名字"
- 提叫方式:
git config --global push.default simple|matching
- simple:只提交當(dāng)前分支
- matching:提交所有分支
- --global:全局配置
- --system:系統(tǒng)配置
- 查看配置:
- git config --system --list #查看系統(tǒng)
- git config --global --list #查看當(dāng)前用戶
- git config --local --list #查看當(dāng)前倉(cāng)庫(kù)
- 郵箱:
基本操作
- git init:初始化一個(gè)版本庫(kù)
- git add:添加追蹤文件弦叶,'.'可以一次性添加所有文件
- git commit:提交愚墓,每次提交都會(huì)記錄下來(lái)镀赌,-m選項(xiàng)指定提交說(shuō)明
- 若無(wú)法提交希痴,提示進(jìn)行配置,請(qǐng)參考上面配置的步驟
- 若已經(jīng)追蹤過(guò)的文件再次修改提交怜姿,可以簡(jiǎn)化操作:
git commit -a -m '提交日志'
- git status:查看狀態(tài)
- git log:查看提交日志
- --oneline:一行顯示日志信息
分支操作
- git branch:查看分支慎冤,前面帶'*'表示當(dāng)前分支
- -r:查看遠(yuǎn)程分支
- -a:查看所有分支
- git branch develop:創(chuàng)建新的develop分支
- git checkout develop:切換到develop分支
- git merge develop:將develop分支合并到當(dāng)前分支(操作前需要先切換到目標(biāo)分支)
- git branch -d develop:刪除develop分支
合并沖突
- 原因:修改同一文件時(shí)容易產(chǎn)生合并沖突
- 解決:手動(dòng)
- 查看狀態(tài):git status,確定沖突文件
- 打開(kāi)文件沧卢,進(jìn)行手動(dòng)選擇蚁堤,調(diào)整合適的內(nèi)容
- 刪除沖突格式:>>>>>>、=======但狭、<<<<<<<
- 合理調(diào)整和取舍內(nèi)容
- 重新添加:git add .
- 再次提交:git commit
項(xiàng)目開(kāi)發(fā)
- master:主分支披诗,用來(lái)版本發(fā)布,更新的最慢
- develop:開(kāi)發(fā)分支立磁,保存正常開(kāi)發(fā)的最新代碼
- local:本地分支呈队,表示本地的臨時(shí)添加新功能使用的分支,需要基于develop唱歧,然后需要合并到develop
遠(yuǎn)程操作
- 先在github上創(chuàng)建空倉(cāng)庫(kù)掂咒,記錄倉(cāng)庫(kù)地址
- 在本地的倉(cāng)庫(kù)中添加遠(yuǎn)程倉(cāng)庫(kù):
git remote add origin 遠(yuǎn)程倉(cāng)庫(kù)地址
- 指定用戶密碼的推送:
git push -u orgin master
先克隆再推送
- 克隆:
git clone 遠(yuǎn)程倉(cāng)庫(kù)地址
- 推送:
git push
- 克隆后再推送不需要設(shè)置遠(yuǎn)程倉(cāng)庫(kù)地址,默認(rèn)已經(jīng)包含
免密碼推送
- 產(chǎn)生秘鑰對(duì):公鑰和私鑰
-
ssh-keygen -t rsa
绍刮,會(huì)在~/.ssh/目錄下生成秘鑰文件(id_rsa温圆,id_rsa.pub)
-
- 將公鑰的內(nèi)容粘貼到托管服務(wù)器(github)的settings => SSH的選項(xiàng)下
- 之后就可以進(jìn)行無(wú)密碼的推送操作。
遠(yuǎn)程協(xié)作
- 在指定的項(xiàng)目中邀請(qǐng)合作開(kāi)發(fā)人員孩革,粘貼其公鑰
- 推送前一定先拉下來(lái)最新的內(nèi)容岁歉,合并,有沖突結(jié)局沖突膝蜈,然后在推送
-
git pull
拉取操作并合并
GIT原理
- 工作區(qū) 《=》 暫存區(qū) 《=》 本地倉(cāng)庫(kù) 《=》 遠(yuǎn)程倉(cāng)庫(kù)