git工具:学习笔记一、git总结知识点、git和svn对比分析优劣
Git优点:
1、分布式,每个参与开发的人的电脑上都有一个完整的仓库,不担心硬盘出问题;
2、在不联网的情况下,照样可以提交到本地仓库,可以查看以往的所有log,等到有网的时候,push到远程即可;
3、非常强大的分支管理功能。
4、Git的内容的完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
Git缺点:
权限管理不是很方便,需要安装插件gitolite,配置有点麻烦,或者直接使用gitlab管理。
SVN优点
1、较好的权限管理功能,可以精确控制每个目录的权限;
2、使用相对git要简单一点。
SVN缺点
1、集中式,如果中心服务器出现问题,所有人都不能正常干活,恢复也很麻烦,因为SVN记录的是每次改动的差异,不是完整文件;
2、分支功能没有git强大;
3、速度没有git快,如果有五个分支,是把五个分支的文件全部拷下来;
4、必须联网才能commit。
所以代码管理建议选型GIT工具作为代码管理工具,免费开源,无风险!
如果是项目管理建议SVN !!
GIT实现方式:
第一步:新建一个master分支,即为生产环境,添加该环境的特殊环境配置
第二步:新建一个test分支,即为测试环境,添加该环境的特殊环境配置
第三步:新建一个dev分支,即为开发环境,添加该环境的特殊环境配置
仓库设计:
说明:1 .远程代码仓储管理部分是要收费的,特别是企业级!
2 .开发者,可以直接拉取线上代码到本地!
3 .各个环境完全不同,代码独立,但是管理代码带来的步骤增多!可以根据实际的业务和需求,调整简化!
4 .合并代码操作只能由一人负责特别是主线合并!避免管理混乱
*******************************************************************************
技术支持:
Git 拉取不同分支的代码:
方法一:
1、首先与远程仓库建立连接:git remote add origin url地址
2、使用git branch 查看本地是否具有dev分支
3、没有dev分支 则 git fetch origin dev
4、git checkout -b dev origin/dev 在本地创建分支dev并切换到该分支
5、git pull origin dev gitLab上dev分支上的内容都拉取到本地了
方法二:
1、git init
2、git clone
3、git checkout -b 分支名 origin/分支名
命令实际操作:
1 .仓库建立:git init
2 .查看变动:git status
3. 回退版本:git reset --hard HEAD^ 上一个节点
git reset --hard <版本号> 回退到指定的版本上去
git reflog 该命令记录的是你每一次命令,即使你上次关机了,也可以找回上次的版本
4. 版本库
5. git checkout -- readme.txt 丢弃工作区的修改
6. git reset HEAD readme.txt git reset HEAD <file>可以把暂存区的修改撤销掉(unstage)
7. git remote add origin [email protected]:path/repo-name.git 关联远程库
8. git clone <地址+库> 克隆
9. 查看分支:git branch
创建分支:git branch <name>
切换分支:git switch <name>
用于切换/创建分支: git switch –c <name>
合并分支: git merge <name>
删除分支:git branch –d <name>
分支策略:
BUG分支:
暂存工作现场: git stash
回复缓存到工作区并删除缓存:git stash pop
分支提交复制到另外的分区去提交:cherry-pick <commit id号>
Feature分支:
用于新的功能,新建一个分支出来开发完成合并后,可以直接删除。
Git switch –c <feature-name>
丢弃一个没有合并的分支可以用:
Git branch –D <feature-name>
多人协作:
查看远程库信息:git remote –v
从本地推送分支: git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交
在本地创建和远程分支对应的分支:git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致
建立本地分支和远程分支的关联:git branch --set-upstream branch-name origin/branch-name
推送远程
git push origin <branch-name>
10. 标签管理
打新标签:git tag <name> 默认打在最新提交的commit上的。
查看标签:git tag
对历史提交打上标签:git tag <tag-name> <commit-id>
指定标签信息:git tag –a <tag-name> -m “说明” <commit-id>
删除错误的标签:git tag –d <tag-name>
推送标签:git push origin –tags/git push origin <tag-name>
删除远程标签命令步骤:
- 本地:git tag –d <tag-name>
- 远程:git push origin :refs/tags/<tag-name>
---------------------------------------------------------------------------------------------------------------------------------