zoukankan      html  css  js  c++  java
  • git小结

    git:软件,帮助我们做版本控制

    基本使用:

    - 进入你想要管理的文件夹
        - Git Bash Here
        - git init  # 初始化;生成一个 .Git 的文件夹
        - git status  # 查看当前管理状态 (三种颜色)
        - git add . # 添加管理(. 所有);单文件就加 单文件名
        - git commit -m '一定要好好写'  # 提交
        
        - git log  # 打印所有的提交日志
        - git reset --hard 版本号   # 回滚到某个版本
        - git reflog  # 获取所有历史提交日志
        - git reset --hard 版本号   # # 回滚到某个(历史)版本

    详细内容:

    # 开发过程中临时需要修复bug或临时新功能到来    
        1. stash:stash用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。
            git stash           # 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态(只存红色的文件)
            git stash list      # 查看“某个地方”存储的所有记录
            git stash clear     # 清空“某个地方”
            git stash pop       # 将第一个记录从“某个地方”重新拿到工作区(会有自动合并的动作,可能有冲突)
            git stash apply     # 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) 
            git stash drop      # 编号,删除指定编号的记录
            
            (注:touch 表示创建文件)
        
        2. branch: 问题:当在开发某个功能到一半时,如果想要回到原来的状态修复原来的代码
            master (不能在 master 上修改代码)
            dev (开发)
            git branch dev  # 拷贝当前分支的所有代码到dev分支
            当要紧急修复bug了
                a. [dev] 将dev中现在正在开发的功能提交到 dev
                    git add .
                    git commit -m 'xxx'
                b. 切换回主分支
                    git checkout master
                c. 创建并切换到bug分支
                    git branch bug
                    git checkout bug
                    (注:git branch -b dev === git branch bug + git checkout bug # 既创建又切换)
                    在 bug分支上进行修复....
                    git add .
                    git commit -m 'xx'
                d. 切换到master并将bug分支合并、删除
                    git merge bug
                    git branch -d bug  # 删除bug分支
                PS: git branch  # 查询所有分支列表
                (一旦出现分支,合并的时候就有可能出现冲突,产生冲突就得解决。。。)
                
                问题:公司线上代码出现bug 怎么办?
                回答:创建一个bug分支,在bug分支中修复好bug后,将其合并到master就行
                      然后删掉 bug 分支
                      回到dev分支继续开发 
                      
        3. github命令:
            git remote add origin ......
            git push origin dev # 推送到github 上
            
            git clone ....(url)  # 克隆到本地
            git pull origin dev  # 从 github上把 origin dev分支拉到本地 # 这句命令的作用等价于下面两句:
                git fetch origin dev
                git merge origin/dev  # 这时的 merge 提交记录可能会出现分叉;# 如果不想提交记录出现分叉,可利用 git rebase origin/dev
    4. git rebase # 合并+将提交记录合并到一条主线==> 提交记录更整洁 如果产生冲突: 解决完冲突后:git rebase --skip 问题: git rebase的作用?

    github上传示例:

    多人协同开发:

    1. 允许他人操作程序:
        - 合作者(collaborator)
        -创建组织 (organization)
    2. 创建自己各自的分支
        - master
        - dev
        - neo
        注: 看到 "fast-forwards" 这个错时,要先 pull 下来再push 上去(有冲突则合并冲突)
    3. 规则
        - 组内一起合并
        - 合并时间:一个小功能一合并(一两天左右)
    4. 做代码review
        - 组长做
        
        怎么做 review ?
            - 创建review分支;合并到 dev 之前 先在 review分支中合并
    5. 给别人代码贡献力量
        Q:如果你要在github上给别人代码添加功能?
            fork
            new pull request

    其它:

    a. .gitignore 文件
    b. 版本
        git tag -a v1.0 -m '版本介绍'       # 本地创建Tag
        git show v1.0                       # 查看
        git tags -n                         # 查看本地Tag
        git tag -l 'v1.4.2.*'               # 查看本地Tag,模糊匹配
        git tag -d v1.0                     # 删除Tag
        git push origin :refs/tags/v0.2     # 更新远程tag
        git checkout v.10                   # 切换tag
        git fetch origin tag V1.2
    
        git push origin  --tags
        git pull origin  --tags
        
        git clone -b v0.1 ...(url)
  • 相关阅读:
    数组中的逆序对★★
    把数组排成最小的数★★★
    丑数★★★
    整数中1出现的次数(从1到n整数中1出现的次数)
    连续子数组的最大和
    每两个字符串中插入字符串
    linux R环境安装以及注意事项
    JAVA调用R脚本 windwos路径下
    springboot 配置多数据源
    springboot 在配置文件写参数注入到类中
  • 原文地址:https://www.cnblogs.com/neozheng/p/9657769.html
Copyright © 2011-2022 走看看