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)
原文地址:https://www.cnblogs.com/neozheng/p/9657769.html