GIT工具实践
2024-11-15 13:43:18   7  举报             
     
         
 AI智能生成
  GIT是一个开源的分布式版本控制系统,用于跟踪文件更改,提供协作功能,并帮助用户管理项目。它的核心在于快速、安全地处理任何规模的项目,同时支持非线性工作流和完整的历史记录。GIT文件类型包括但不限于文本、二进制、图像、视频等,适用于各种不同的项目和团队。此外,GIT提供了许多修饰语来描述提交,如feat(新功能)、fix(修复)、docs(文档更改)等,这些修饰语有助于快速理解提交的更改类型。总的来说,GIT是一个功能强大且易于使用的工具,适合各种规模的软件开发和版本控制需求。
    作者其他创作
 大纲/内容
  基本概念    
     版本库    
     当我们使用git管理文件时,比如git init时,这个时候,会多一个.git文件,我们把这个文件称之为版本库。  
     工作区    
     本地项目存放文件的位置  
     暂存区 (Index/Stage)    
     顾名思义就是暂时存放文件的地方,通过是通过add命令将工作区的文件添加到缓冲区  
     本地仓库(Repository)    
     通常情况下,我们使用commit命令可以将暂存区的文件添加到本地仓库  
     远程仓库(Remote)    
     当我们使用GitHub托管我们项目时,它就是一个远程仓库。  
     分支介绍    
     master    
     这个分支的代码是发布到生产的代码  
     develop    
     这个分支的代码是预发布到生产的代码  
     release    
     这个分支的代码是新版本发布到生产的代码  
     feature    
     这个分支的代码是新需求开发的代码  
     hotfix    
     这个分支的代码是紧急修复生产 bug 的代码  
     常用命令    
     常看远端仓库信息    
     git remote -v  
      查看修改信息    
     git status  
     提交到缓存区    
     git add . 全部上传到缓存区
git add 指定文件
    git add 指定文件
 提交到本地仓库    
     git commit -m 'some message'  
     查看提交历史     
     git log  
     拉取分支    
     git pull <远程主机名> <远程分支名>:<本地分支名>    
     git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写  
     提交远程仓库    
     git push <远程主机名> <本地分支名>:<远程分支名>  
     查看分支    
     git branch  
     切换分支    
     git checkout <分支名>  
     创建分支并切换    
     git checkout -b <分支名>  
     删除分支    
     git branch -d <分支名>  
     删除远程分支    
     git push -d <分支名>  
     合并分支    
     git merge <分支名>  
     业务场景与解决方案    
     一库N项目同步    
     场景:一个GIT存在主干分支,A项目,B项目,C项目时,代码需要同步  ,但又不能整个分支合并,因为存在差异  
     解决:通过git cherry-pick命令实现,将指定的提交(commit )应用于其他的分支    
     转移单个:git cherry-pick <commitHash>  
     转移多个:git cherry-pick <HashA> <HashB>  
     多库同步    
     场景:两个GIT库需要互相同步/合并/拉取代码时  
     解决:通过git remote add <target><git地址> 把该库加入远程仓库    
     拉取:git fetch <target>  
     合并:git merge <target>/master  
     版本标签    
     场景:项目每次发布时,需要清晰知道对应的是哪条分支的哪条commit   
     解决:通过创建tag标记,指向某个commit ,从而实现发布版本号    
     创建本地标签:git tag <tagName>   
     推送到远程仓库:git push origin <tagName>  
     查看标签:git show <tagName>  
     删除标签:git tag -d <tagName>  
     代码回滚    
     场景:当发布项目时,发现有BUG,需要回滚到上一个版本  
     解决:可以通过某个版本,某个提交    
     回退到上个版本:git reset --hard HEAD^  
     退到/进到指定版本:git reset --hard commit_id  
     强推到远程:git push origin HEAD --force   
    
     因为回滚提交可能会失败  
     修改暂存    
     场景:你正在本地修改的代码,但又想把git服务器上的代码pull到本地  
     解决:可以使用 git stash来解决(本地刚才修改的代码将会被暂时封存起来)    
     git stash
git pull origin master
git stash pop
    git pull origin master
git stash pop
 自动发布    
     场景:当本地项目开发完成并push时,想实现服务器项目代码自动同步与发布  
     解决:可以通过git hooks功能来实现    
     每一个Git 下都包含有.git/hoooks这个目录,你可以在这个目录下自由定制Hooks的功能,当触发一些Git行为时,相应地Hooks将被执行。  
     详细教程:https://blog.csdn.net/weixin_30693683/article/details/98416829  
     疑难杂证    
     代码正常,但是commit校验不通过时,可以使用--no-verify 参数来跳过  
     git cherry-pick 使用不正常时,记得先同步远端代码  
     使用git提交到远程仓库,每次都要输入用户名和密码的解决方法,打开 .git/config 文件,增加如下代码    
     [credential]
helper = store
    helper = store
 忽略文件 .gitignore后,需要清除缓存git rm -r --cached .  
     当拉取代码时发生冲突,建议使用vs code来解决,会更清晰; 若冲突代码不明白时,需要找该开发者一起沟通解决,不可随便合并,否则容易弄丢别人的代码  
     git时出现fatal: Authentication failed for xxxxx.git时,配置信息即可    
     git config -–global user.name "xxx" 
git config –-global user.email "xxx@xxx.com"
    git config –-global user.email "xxx@xxx.com"
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
  
  
 