美文网首页
git 开发中应用

git 开发中应用

作者: 酷酷的开发匠 | 来源:发表于2021-06-09 09:03 被阅读0次

    一 基础命令

    • 个人信息配置:用户名,邮箱 (最开始执行一次即可)
    git config --global user.email 'xxxxx.com'
    git config --global user.name 'xxx'
    
    • 初始化 即:让git帮助我们管理当前文件夹
    git init 
    
    • 检测当前目录下文件的状态
    git status   
    
    • 添加未管理的文件 git add 文件名 管理指定文件
    git add .  
    
    • 生成版本
    git commit -m 'v1'    
    
    • 查看版本记录
    git log
    git reflog   
    
    • 创建目录
    mkdir "文件夹名"
    
    • 查看文件
    cat "文件名"
    
    • 流线
    git log --graph 
    git log --graph --pretty=format:"%h %s" (简洁流线)
    

    二 回滚

    • 回滚之前版本:
    git log
    git reset --hard "版本号"
    
    • 回滚之后的版本
    git reflog
    git reset --hard "版本号" 
    
    • 工作区回到原始
    git checkout -- "文件名"
    
    • 暂存区回到工作区
    git reset HEAD “文件名”
    

    三 分支

    • 查看分支
     git branch
    
    • 创建分支
    git branch ’dev‘
    
    • 切换分支
    git checkout ’dev'
    
    • 创建分支并切换
    git checkout -b 'dev'
    
    • 合并分支
    git checkout master
    git merge ’bug‘
    
    注意:切换分支,谁合并谁 如:当前master分支 就是把bug分支切换到master上
    
    • 删除本地分支
    git branch -d ‘bug’ 
    
    • 删除远程分支
    git push origin --delete 'dev'
    

    四 远程仓库

    1. 注册账号
    2. 创建仓库
    3. 本地代码推送到远程仓库
    • 克隆远程仓库代码(第一次拉取代码)
    git clone '仓库地址'
    
    • 给远程仓库起别名(origin可随意)
    git remote add origin '仓库地址'
    
    • 拉取仓库代码
    git pull origin 'dev'
    
    • 推送远程分支
    git push origin '分支名字'
    

    注意:push会提示账号密码:

    五 变基

    • 合并从当前开始3个记录
    git rebase -i HEAD~'3' 
    
    git rebase -i 'commit号'
    
    • git merge 和 git rebase区别:
    1. git merge
    git checkout master 
    
    git merge 'dev'
    
    git log --graph --pretty=format:"%h %s"
    
    merge流线.png
    2. git rebase
    git checkout 'dev'
    
    git rebase master
    
    git checkout master
    
    git merge 'dev'
    
    git log --graph --pretty=format:"%h %s"
    
    rebase 流线.png
    • 本地暂存区有代码 拉取远程代码,如下操作不会有分叉
    git pull origin 'dev' =>
    
    git fetch origin 'dev' + git rebase origin/'dev'
    

    六 标签

    • 打标签
    git tag -a v1 -m "xxxx"
    
    • 推送标签到远程仓库
    git push origin --tags
    

    七 review

    1. 成员通过 pull request 申请review
    2. 管理员 review通过 ->代码合并 ->删除分支

    八 开发流程

    1. 上线版本release 流程

    git checkout dev
    
    git branch release
    
    fix bugs => pull request => review=> release合并master 
    
    git checkout dev
    
    git merge release 把release合并到dev上 合并完成可以直接把release分支删除
    
    git checkout master
    
    git pull origin master
    
    git tag -a v2 -m "第二版功能"
    
    git push origin --tags
    

    2. 开发主要流程

    git checkout dev (切换到dev分支)
    
    git merge master (把master分支合并到dev)
    
    fix code.....
    
    git add .
    
    git commit -m "xx"
    
    git push origin dev
    
    git pull origin dev ==  git fetch origin dev + git merge origin/dev
    

    3. 快速解决冲突

    • 安装beyond compare
    • 在git中配置
    git config --local merge.tool bc3
    git config --local mergetool.path 'usr/local/bin/bcomp'
    git config --local mergetool.keppBackup false
    
    注:local  只对当前项目生效
    
    • 应用beyond compare解决冲突
    git mergetool
    

    九 免密登录

    1. URL中体现
    原来地址:https://xxxx.git =>
    
    修改地址:https://用户名:密码@xxxx.git
    
    git remote add origin https://用户名:密码@xxxx.git
    
    1. 通过ssh实现
    • 生产公钥和私钥 (默认放在 ~/.ssh目录下,id_rsa.pub公钥)
    ssh-keygen
    
    • 拷贝公钥内容:设置到远程仓库
    cat ~/.ssh/id_rsa.pub
    
    • 在git中本地中配置ssh地址
    git remote add origin git@xxxx.git
    
    1. git自动管理凭证 钥匙串

    补充

    1. 三种文件状态的变化

    • 红色 :新增的文件/修改了原来文件 => git add 文件名 / git add .
    • 绿色 :git 已经管理起来 -> git commit -m '描述信息'
    • 生成版本

    2. 配置

    • 项目配置文件: .git/config
    git config --local user.email 'xxxxx.com'
    git config --local user.name 'xxx'
    
    • 全局配置文件: ~/.gitconfig
    git config --global user.email 'xxxxx.com'
    git config --global user.name 'xxx'
    
    • 系统配置文件: /etc/.gitconfig (需要有root权限)
    git config --system user.email 'xxxxx.com'
    git config --system user.name 'xxx'
    

    3. git忽略文件

    让git文件不再管理当前目录下的某些文件,更多参考github

    • *.h 以.h结尾的

    • !a.h 除了a.h文件

    • files/ 文件夹所有的文件

    • *.py[c|a|d] 以.pyc .pya .pyd 后缀的

    4. 给开源框架 贡献代码

    • fork源代码,将被人的源代码拷贝到自己的远程仓库
    • 在自己仓库进行修改代码
    • 给源代码的作者提交bug的申请(pull request)

    5. 任务管理

    • issuse 文档以及任务管理
    • wiki 项目文档

    相关文章

      网友评论

          本文标题:git 开发中应用

          本文链接:https://www.haomeiwen.com/subject/yuwseltx.html