git工具:学习笔记一、git总结知识点、git和svn对比分析优劣

Git优点:

1、分布式,每个参与开发的人的电脑上都有一个完整的仓库,不担心硬盘出问题;

2、在不联网的情况下,照样可以提交到本地仓库,可以查看以往的所有log,等到有网的时候,push到远程即可;

3、非常强大的分支管理功能。

4Git的内容的完整性要优于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分支,即为开发环境,添加该环境的特殊环境配置

git工具:学习笔记一、git总结知识点、git和svn对比分析优劣

仓库设计:

git工具:学习笔记一、git总结知识点、git和svn对比分析优劣

说明: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工具:学习笔记一、git总结知识点、git和svn对比分析优劣

git reflog      该命令记录的是你每一次命令,即使你上次关机了,也可以找回上次的版本

4. 版本库

git工具:学习笔记一、git总结知识点、git和svn对比分析优劣

git工具:学习笔记一、git总结知识点、git和svn对比分析优劣

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>

分支策略:

git工具:学习笔记一、git总结知识点、git和svn对比分析优劣

 

 

git工具:学习笔记一、git总结知识点、git和svn对比分析优劣

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>

 删除远程标签命令步骤:

  1. 本地:git tag –d <tag-name>
  2. 远程:git push origin :refs/tags/<tag-name>

 

---------------------------------------------------------------------------------------------------------------------------------