1. Git
1.1 Git的簡介
git是一種分布式的版本控制軟件敦第。
1.2 git的初始化操作
- 進(jìn)入要管理的目錄
-
git init
:初始化珍昨,讓git幫助管理當(dāng)前文件夾 -
git status
:檢測目錄下文件的狀態(tài) - 三種狀態(tài)的變化
- 紅色:新增或者被修改的文件,
git add 文件
來添加 - 綠色:git已經(jīng)管理起來了恶守,
git commit -m '提交的描述'
- 生成版本
- 紅色:新增或者被修改的文件,
-
ps:第一次使用時梢杭,生成版本之前需要個人信息的配置:用戶名衬吆、郵箱
git config --global user.email "staick@163.com" git config --global user.name "staick"
git的三大區(qū)域
1.3 git的回滾
git log #1.先利用該命令查看各版本的校驗(yàn)值
git reset --hard 版本校驗(yàn)值 #2.使用該命令回滾到校驗(yàn)值所對應(yīng)的版本
git reflog #該命令可以查看完整的版本目錄
git reset Head 文件名 #暫存區(qū)->已管
git checkout -- 文件名 #已管->未管
- 新版本只保留修改的部分,未修改的用指針指向上一個版本
1.4 分支
分支的應(yīng)用:bug的緊急修復(fù)
-
分支的操作
git branch #分支表、目前所處分支 git branch 分支名 #創(chuàng)建分支 git checkout 分支名 #切換分支 git merge 分支名 #合并分支祭往,合并時應(yīng)該注意切換分支 git branch -d 分支名 #刪除分支
ps:分支的合并操作可能出現(xiàn)沖突伦意,解決方法是根據(jù)提示,手動修改
1.5 git工作流
2. Github
2.1 git 配合github的基本操作
-
git -> github
- 給遠(yuǎn)程倉庫起別名:
git remote add 別名 倉庫地址
- 向遠(yuǎn)程推送代碼:
git push -u 別名 分支
- 給遠(yuǎn)程倉庫起別名:
-
github -> git
-
git clone 遠(yuǎn)程倉庫地址
(內(nèi)部已實(shí)現(xiàn)git remote add origin 倉庫地址
) - 切換分支:
git checkout 分支
-
-
ps:如果再dev上開發(fā)硼补,要先合并master
git merge mster
-
更新一下
git pull origin dev
2.2 多地開發(fā)的實(shí)現(xiàn)
-
在家里上傳代碼
-
給遠(yuǎn)程庫起別名
git remote add origin 遠(yuǎn)程倉庫地址 #其中origin為別名
-
向遠(yuǎn)程推送源代碼
git push -u origin 分支
-
-
到公司新電腦上第一次獲取代碼
-
克隆遠(yuǎn)程倉庫代碼
git clone 遠(yuǎn)程倉庫地址 #內(nèi)部已實(shí)現(xiàn)git remote add origin 遠(yuǎn)程倉庫地址的操作
-
切換分支
git checkout 分支
-
-
在公司開發(fā)
-
切換到dev分支進(jìn)行開發(fā)
git checkout dev
-
把master分支合并到dev(僅一次)
git merge master
修改代碼
-
提交代碼
git add git commit -m '描述' git push origin dev
-
-
回到家中繼續(xù)寫代碼
-
切換到dev分支進(jìn)行開發(fā)
git checkout dev
-
拉代碼
git pull origin dev
繼續(xù)開發(fā)
提交代碼
-
-
開發(fā)完畢默赂,上線
-
將dev分支合并到master,進(jìn)行上線
git checkout master git merge dev git push origin master
-
把dev分支也推送到遠(yuǎn)程
git checkout dev git merge master git push origin dev
-
-
ps:
git pull origin dev
等同于git fetch origin dev #拉到本地 git merge origin/dev
2.3 rebase(變基):使git記錄簡潔
-
第一種:多個記錄整合成一個
git rebase -i 版本號 #現(xiàn)在的版本號與給的版本號之間進(jìn)行合并 git rebase -i HEAD~3 #最近三條合并
- 注意:合并記錄時括勺,不要和已提交push合并缆八。
-
第二種:僅記錄為一條線,將C3插入到線中
git checkout dev git rebase master git checkout master git merge dev
-
關(guān)于log顯示
git log --graph #可顯示流程線 git log --graph --pretty=format:"%h %s" #按哈希值 說明顯示
-
-
第三種:防止產(chǎn)生分叉
git pull origin dev git fetch origin dev git rebase origin/dev
-
git rebase
產(chǎn)生沖突時疾捍,先解決沖突瞎惫,再git rebase --continue
2.4 多人開發(fā)
2.5 添加標(biāo)簽
-
可以用標(biāo)簽替代版本哈希值
git tag -a v1 -m "第一版" git push origin --tags
git checkout -b dev #創(chuàng)建并切換到dev分支
2.6 給開源項(xiàng)目貢獻(xiàn)代碼
- fork源代碼:將別人源代碼拷貝到自己的遠(yuǎn)程庫
- 在自己倉庫進(jìn)行代碼修改
- 給源代碼的作者提交修改申請(pull request)
2.7 git配置
-
項(xiàng)目配置文件:項(xiàng)目/.git/config
git config --local
-
全局配置文件:~/.gitconfig
git config --global
-
系統(tǒng)配置文件:/etc/.gitconfig
git config --system #該命令需要root權(quán)限
2.8 免密登錄
-
URL中實(shí)現(xiàn)
原來的地址:https://github.com/xx
現(xiàn)在的地址:https://用戶名:密碼@github.com/xx
-
SSH實(shí)現(xiàn)
-
生成公鑰和私鑰(放在~/.ssh下,id.rsa.pub為公鑰判族,id.rsa為私鑰)
ssh -keygen
拷貝公鑰內(nèi)容钩述,并設(shè)置到github中
-
在git本地配置ssh地址
git remote add origin git@github.com
-
git自動管理驗(yàn)證
2.9 git忽略文件
git忽略文件可以讓git部管理某些文件
創(chuàng)建.gitignore文件,并在其中添加需要忽略的文件名
2.10 任務(wù)管理相關(guān)
- issues:文檔以及任務(wù)管理
- wiki:項(xiàng)目文檔