任经理 徐州网站建设,对中国建设银行网站的缺点,房地产设计管理的思路,成品影视app开发方案GITGIT版本控制版本控制的意义分布式图形化客户端环境搭建仓库的操作分支使用场景命令远程仓库操作生成公钥命令冲突忽略列表的配置时机配置方式版本回退练习#xff1a;GIT
版本控制
把文件系统中的文件#xff0c;按照修改的版本进行记录#xff0c;进行管理的操作。
版…
GITGIT版本控制版本控制的意义分布式图形化客户端环境搭建仓库的操作分支使用场景命令远程仓库操作生成公钥命令冲突忽略列表的配置时机配置方式版本回退练习GIT
版本控制
把文件系统中的文件按照修改的版本进行记录进行管理的操作。
版本控制的意义
备份文件防止丢失协同工作处理文件合并和冲突的问题责任追溯工作量统计个人开发时代码的回退
分布式 git是一个分布式的版本控制工具包含本地仓库和远程仓库两种仓库。每个仓库中都存放历史版本文件可以单独进行管理。通过使用远程仓库可以实现多用户之间的协同。
图形化客户端
乌龟系列、SourceTree
环境搭建
开发者名称和邮箱在git中要求开发者提供一个名称和邮箱。用于开发者之间的沟通交流该名称和邮箱不会进行验证可以任意指定。但一般填写时至少保证邮箱是自己的便于其他开发者联系。
仓库的操作
工作区.git目录在哪个目录中那哪个目录就是工作区。工作区中的文件才能被版本控制。换句话说工作区就是一个能够被git操作的范围。
本地仓库就是.git目录内部有一套存储结构能够保存各个文件的版本并进行版本控制。
暂存区是一个临时存储空间工作区中的文件要先添加到暂存区然后才能提交到本地仓库中成为一个版本。
命令作用git init初始化创建 git 仓库git status查看 git 状态 文件是否进行了添加、提交操作git add 文件名添加将指定文件添加到暂存区git commit -m ‘提交信息’提交将暂存区文件提交到历史仓库。git中强制提交时必须填写说明信息建议把说明信息填写详细一些git log查看日志 git 提交的历史日志
重置操作回退版本
git reset --hard 版本号前几位只要这几位能唯一确定一个版本即可。
分支
分支是每一次提交的代码的版本节点串成的一条时间线。可以从任何一个节点开辟新的分支继续进行串联。
使用场景
修复以前版本的bug在开发分支中加入一些尝试性的操作做实验并行开发多个不同版本
命令 创建 git branch 分支名 如果在创建分支的时候最后加上版本号就可以基于指定版本创建分支。 git branch 分支名 版本号 切换 git checkout 分支名 查看分支列表 git branch 合并 git merge 分支名 把指定的目标分支的内容合并到当前分支 合并把两个分支中如果有互相独立的文件直接放到一起。如果两个分支中有相同的文件保留一个即可。如果两个分支中有相同名字的文件但是内容不一样这就会查看内容中行是否可以合并。如果内容是完全不同的并且不能简单追加合并则产生冲突。冲突必须手动解决。
远程仓库操作
克隆在本地什么都没有的情况下第一次操作时进行的操作。会把远程仓库中的所有文件包括.git版本库都复制过来。一般克隆和init操作二选一即可。
推送把本地仓库的内容上传到远程仓库中
注意在实际操作时为了保证推送能够成功推送之前养成先拉取的习惯。同时推荐大家养成勤拉取勤提交的习惯。
拉取把远程仓库中的内容下载到本地这个下载是更新下载类似于分支的合并。
生成公钥
用于验证以ssh协议访问仓库的权限。
公钥和私钥配对进行加密通信作为验证身份的手段。
直接参考gitee或者github上的新手向导输入指令添加公钥到服务器即可。 如果使用http协议的话就不需要配置公钥和私钥了而是会弹出登录窗口让你输入网站的用户名和密码进行验证。 命令
添加远端地址
git remote add 远端名称 urlhttp协议和ssh协议两种
推送本地仓库到远端
git push -u 远端名称 分支名
克隆
git clone 远端url
拉取
git pull 远端名称 分支名
冲突 要尽可能提前预防冲突防止冲突产生。勤拉取勤推送 产生冲突之后要知道如何解决。 自动在拉取的时候会把冲突的文件进行合并只不过会把冲突部分用特殊句式标注出来我们需要手动指定最终版本然后再提交推送。所以如果我们提交的粒度足够小冲突的代码就会比较少就会比较容易解决。
忽略列表的配置
时机
项目刚创建第一次提交之前就要配置完毕。
配置方式
在工作目录下创建一个文件名称为 .gitignore
# no .a files 以.a结尾的所有文件被忽略
*.a
# but do track lib.a, even though you’re ignoring .a files above
# lib.a会被版本控制是在上面配置的基础上排除lib.a的忽略
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
# 忽略当前目录下的TODO文件并不是TODO子目录
/TODO
# ignore all files in the build/ directory 忽略所有的build子目录下的资源包含该目录本身
build/
# ignore doc/notes.txt, but not doc/server/arch.txt 忽略doc目录下的所有以.txt结尾的直接子文件但是不会忽略子目录中的txt文件
doc/*.txt
# ignore all .pdf files in the doc/ directory 忽略doc目录下的所有pdf文件包含子目录中的也忽略
doc/**/*.pdf
版本回退
记录当前的版本号使用reset --hard的方式回退到指定的版本使用reset --soft的方式指定版本为最初记录的版本号把指针挪回最初的位置。但是soft的方式只挪指针不会更改工作区的文件。所以看上去就是基于最新版本把文件全部修改为了指定的版本文件的内容。使用commit提交就可以保留历史版本回退了 练习 创建本地仓库完成若干版本的添加、提交、回退操作 在本地仓库创建新的分支在分支和主分支之间创建一些冲突然后合并新分支到主分支 注册一个gitee或者github账号创建一个远程仓库跟本地仓库关联。把本地仓库推送到远端。 在本地另一个文件夹中从远端克隆仓库到本地。进行修改操作推送到远端。 在两个本地仓库都关联上远端后人为创建一些冲突。解决冲突并最终同步代码。 多人创建开发小组模拟实际开发中的情况处理git协同。 注册一个gitee或者github账号创建一个远程仓库跟本地仓库关联。把本地仓库推送到远端。 在本地另一个文件夹中从远端克隆仓库到本地。进行修改操作推送到远端。 在两个本地仓库都关联上远端后人为创建一些冲突。解决冲突并最终同步代码。 多人创建开发小组模拟实际开发中的情况处理git协同。