分布式版本控制之git
git
版本控制
1.git简介:
- 特点:协同修改、数据备份、版本管理(文件系统快照)、权限控制、历史记录、分支管理 - 优势:大部分操作本地完成、完整性保证(hash算法)、尽可能添加数据而不是删除或修改数据、分支操作便捷流畅、兼容Linxu命令 - git结构:工作区(写代码) > git add > 暂存区(临时存储) > git commit > 本地库(历史版本) > 远程库 - git和代码托管中心[维护远程仓库]:局域网环境下-gitlab服务器(自己搭);外网环境-github、码云 - 团队协作方式: -- 团队内部协作[git push git clone git push git pull] -- 跨团队协作[fork(复制一份远程库)>clone>push>pull request>审核>merge]
2.git命令行:
-本地库操作 -- 本地库初始化: --- git init > .git目录:存放本地库相关的文件和子目录,不要删除,尽量不要修改 --- 设置签名:用户名、Email地址(和远程库账号密码没有任务关系) 项目级别/仓库级别:仅在当前本地库有效 git config user.name/user.email 信息保存位置:.git/config 系统级别:登录当前操作系统的范围 git config --global 信息保存位置:~/.gitconfig 级别优先级:就近原则 项目 > 系统 -- 基本操作(shift+ins=paste): --- git help command:查看本地文档帮助 --- git status:查看工作区、暂存区状态 # --- git add :工作区修改 > 暂存区 3 --- git rm --cached:从暂存区撤销文件 --- git commit $file > vim 提示输入提交信息 git commit $file -m "First commit new file:test.txt" # --- git log:查看历史版本信息 commit:hash字符串标识一次历史提交;HEAD指针:指向最新的提交 git log --pretty=oneline 提交信息简洁的显示在一行 git log --oneline git reflog --- git reset --hard $fe8986c:基于索引的回退 git reset --hard HEAD^:只能后退 ^:1 step git reset --hard HEAD~3:只能后退,后退3部 --hard:本地库移动HEAD指针、重置暂存区、重置工作区 --soft:仅仅在本地库移动HEAD指针 --mixed:在本地库移动HEAD指针,重置暂存区 --- git reset --hard [指针位置] 通过历史记录进行版本控制,删除文件并找回;前提是文件存在时的状态提交到了本地库 --- git diff:比较文件差异 git diff [file_name]:工作区和暂存区文件比较 git diff [history_version] [file_name]:工作区和本地库文件比较 git diff HEAD:所有文件的改变 -- 分支管理: --- 版本控制过程中,使用多条线同时推进多个任务 --- 优点:并行推进功能开发,提高效率;某个分支开发失败,不会影响其他分支,删除重写开始即可. --- git branch -v:查看所有分支 --- git branch branch_name:创建分支 --- git checkout branch_name:切换分支 --- 合并分支 1.git checkout [branch_name]:切换到接受修改的分支(master) 2.git merge [branch_name]:执行merge命令,合并分支(修改的分支) 3.解决冲突:多个分支修改同一个文件的同一个地方 冲突的表现:<<<<<HEAD当前分支内容 =====另一分支内容>>>>>>分支名 冲突的解决: 1>编辑文件,删除特殊符号; 2>把文件修改到满意的程度,保存退出; 3>git add [file_name]; 4>git commit -m "log message". [commit不能带文件名] --- 删除分支: 1.git checkout [other branch_name]:切换到别的分支 2.git branch -d [delete branch_name]:删除分支 git branch -D [.....]:强制删除分支 3.git push origin --delete [delete branch_name]:删除远程分支 4.git fetch origin common_branch:common_branch:从公用仓库fetch代码 5.git checkout common_branch:切换分支 -- 远程库操作 --- 创建远程库: 0.本地创建文件夹; 1.网页操作; 2.git remote -v [查看远程库] git remote add origin https://github.com/scott-teng/gitpro.git [新建别名origin=url] 3.git push origin master --- git clone:作用1、完整的把远程库下载到本地;2、创建origin远程地址别名;3、初始化本地库. --- 邀请成员加入团队 --- git push:提交 --- git pull[远程地址/远程分支]=git fetch[remote repository][remote branch] + git merge[remote别名/远程分支名] git fetch:只拉取,不合并; git fetch origin master git checkout origin/master git merge:合并 git merge origin/master --- 解决冲突:非最新,不能推送,必须先拉取;若进入冲突状态,先解决冲突,在推送. --- debug:HEAD detached from XXX 游标脱离问题解决 ---fork:跨团队协作 -- git workflow:集中式、分支、fork --- 分支:master、develop、hotfix、release、feature
3.git图形化界面
- gitk
4.git基本原理:
- 哈希:一系列加密算法,加密强度不同,但存在共同点: 1>加密结果长度固定; 2>算法确定,输入数据确定,输出数据不变; 3>算法确定,输入变化,输出变化,且变化较大; 4>不可逆; 5>可用来验证文件,Git底层采用SHA-1算法来跟踪历史记录; - git:快照流,每次提交更新时对当前全部文件制作一个快照,未更改的文件保存一个指针;
相关推荐
lhp000 2020-05-30
leehbhs 2020-07-04
ameng 2020-03-01
leehbhs 2020-02-22
fcds00 2019-12-31
兄dei努力赚钱吧 2019-12-08
SAMXIE 2020-11-04
TensorFlowNews 2020-10-19
shyleoking 2020-06-14
xiaoyaodaia 2020-06-10
pppuil 2020-06-10
guying 2020-06-08
heimu 2020-06-02
飒水飞月 2020-05-09
MrFuWen 2020-03-07
Javawucao 2020-02-25
lovetg0 2020-02-22
ameng 2020-02-19
李玉志 2020-02-17