Git分支管理(核心原理/常用命令)
2021-01-30 16:19:28   3  举报             
     
         
 AI智能生成
  Git版本控制详解
    作者其他创作
 大纲/内容
  官网:https://git-scm.com/  
     配置文件    
     查看    
     所有配置:git config -l  
     全局配置:git config --global --list  
     系统配置:git config --system --list  
     本地配置:git config --local --list  
     位置    
     全局配置文件位置:~/.gitconfig  
     系统配置文件位置:/usr/local/git/etc/gitconfig  
     本地配置文件位置:当前项目根目录下 .git/config  
     重要配置    
     git config --local user.name "lishaojie"  
     git config --local user.email "397456470@qq.com"  
     git config --global user.name "lishaojie"  
     git config --global user.email "397456470@qq.com"  
     设置SSH    
     生成公钥    
     在终端中进入~/.ssh目录,输入 ssh-keygen -t rsa  
     不需要输入内容,连续点击三次回车,即可生成完毕  
     配置公钥    
     找到~/.ssh目录下的 id_rsa.pub 公钥,复制内容  
     在GitHub/GitLab/Gitee账户中找到SSH配置即可  
     建立连接    
     此时就可以创建远程仓库并与本地仓库建立连接  
     在远程仓库创建项目,clone到本地仓库进行操作  
     核心原理             
     分区    
     工作区:平时存放项目代码的地方(workspace)  
     暂存区:存放临时改动,通过add添加(只是个临时文件)  
     本地仓库:包含提交的所有版本数据,HEAD指向最新版本  
     远程仓库:托管代码的服务器  
     提交
与
回滚
    与
回滚
 工作区已控制的文件(绿色)内容
被修改后(红色)想要回退
    被修改后(红色)想要回退
 git checkout -- xxx.java  
     已经 add 到暂存区的文件,想要
回退到工作区已修改的状态
    回退到工作区已修改的状态
 git reset HEAD xxx.java  
     已经 commit 到本地仓库的代码,
想要回退到之前或者之后的版本
    想要回退到之前或者之后的版本
 git reset --hard [版本号]  
     已经 push 到远程仓库的代码,
想要用远程版本覆盖/更新到本地
    想要用远程版本覆盖/更新到本地
 git pull origin develop  
     分支           
     master:主分支,自动建立,用于发布重大版本更新  
     develop:开发分支,日常开发在此分支上进行  
     临时分支    
     feature-xxx:功能分支,从 develop 分出,开发完合并回develop分支  
     release-xxx:预发布分支,从 develop 分出  
     hotfix-xxx:紧急修复分支,从 master 分出  
     常用命令    
     git log:日志    
     git log:查看日志提交记录
git reflog:查看已合并/被覆盖的所有记录
git log --graph:查看提交分支图标
git log --graph --pretty=format:"%h %s":简洁显示
  
    git reflog:查看已合并/被覆盖的所有记录
git log --graph:查看提交分支图标
git log --graph --pretty=format:"%h %s":简洁显示
 git tag:版本 (master)    
     git tag -a v1 -m "第一版"
git push origin --tags
  
    git push origin --tags
 git branch:分支    
     git branch:查看本地分支
git branch -r:查看远程分支
git branch xxx:创建分支
git branch -d xxx:删除分支
  
    git branch -r:查看远程分支
git branch xxx:创建分支
git branch -d xxx:删除分支
 git diff:对比    
     git diff:不加任何参数,将工作区(未add的内容)和暂存区进行比较;
git diff HEAD:将工作区与HEAD指针指向的commit进行比较;
git diff --cached:将暂存区与当前commit进行比较;
git diff dev:将工作区与目标分支的最新commit进行比较;
git diff [commitId_1] [commitId_2]:将两个commit进行比较。
    git diff HEAD:将工作区与HEAD指针指向的commit进行比较;
git diff --cached:将暂存区与当前commit进行比较;
git diff dev:将工作区与目标分支的最新commit进行比较;
git diff [commitId_1] [commitId_2]:将两个commit进行比较。
 git clone/pull:拉取    
     git clone [地址]    
     第一次拉取远程仓库代码,自动根据地址配置远程仓库  
     git remote add [name] [地址]    
     添加一个新的远程仓库,同时指定一个别名  
     git pull origin dev
覆盖/更新本地<=>
    覆盖/更新本地<=>
 git fetch origin dev:把远程仓库代码拉取到本地仓库  
     git merge origin/dev:把本地仓库的代码合并到工作区  
     git fetch origin dev:把远程仓库代码拉取到本地仓库  
     git rebase origin/dev:把本地仓库的代码合并到工作区  
     git rebase:变基
使提交记录变简洁
    使提交记录变简洁
 合并日志    
     git rebase -i HEAD~3:合并最近3条日志,解决冲突后 git add [file]  
     执行 git rebase --continue 将3条日志合并为一条日志【提交】  
     git rebase --abort:中止并返回到“git rebase”之前的状态【回滚】  
     合并/减少 master 分叉    
     切换到 dev 分支,执行 git rebase master  
     切换到 master 分支,执行 git merge dev  
     测试上线    
     创建测试/预发布分支    
     git checkout -b release_xxx  
     git push origin release_xxx    
     由测试人员拉取  
     git pull 或者 git push 报 fatal: refusing to merge unrelated histories    
     这是因为两个分支没有取得关系  
     追加:--allow-unrelated-histories  
     扩展    
     code review    
     页面    
     点击 + Pull Request,填写想要合并的分支,提交后发送到 team leader  
     team leader 收到请求后,点击 add your review 进行逐一检验  
     小组组长也可以将代码拉到本地,review 完成后再提交到 dev 分支  
     给开源项目贡献代码    
     fork 开源项目,clone 到本地进行修改  
     修改好后 push 到自己的远程仓库  
     页面点击 New Pull Request  
     配置 Beyond Compare    
     git config --local merge.tool bc4  
     git config --local mergetool.path '/usr/local/bin/bcomp'  
     git config --local mergetool.keepBackup false  
     免密提交    
     URL中体现    
     原来的地址:https://gitee.com/lishaojie1993/novel-cloud.git  
     修改的地址:https://用户名:密码@gitee.com/lishaojie1993/novel-cloud.git  
     SSH来实现
(企业)
    (企业)
 生成公钥并配置到 github/gitLab/gitee  
     git remote add origin git@gitee.com:lishaojie1993/novel-cloud.git  
     以后使用 git push origin master  
     自动管理凭证
(本地)
    (本地)
 系统钥匙串自动管理账号密码  
     任务管理    
     issues:文档以及任务管理(提问、指派、标签、筛选)  
     wiki:项目文档  
    
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
  
  
 