• git 小案例


    第一个案例,

    git pull origin dev
    remote: Counting objects: 18, done.
    remote: Compressing objects: 100% (13/13), done.
    remote: Total 18 (delta 1), reused 18 (delta 1), pack-reused 0
    展开对象中: 100% (18/18), 完成.
    来自 github.com:XXX/gitlearn
     586b2db..d98847d  master     -> origin/master
     * [新分支]          dev        -> origin/dev
    冲突(修改/删除):1.txt 在 d98847dc482a65d0565daa9128e62c4859aaf7c5 中被删除,在 HEAD 中被 修改。1.txt 在 HEAD 中的版本被保留。
    自动合并失败,修正冲突然后提交修正的结果
    

    分析:文件1.txt 在远程拉回来的代码中被删除,在本机版本库中被修改。
    合并失败,如何处理呢?

    1. 不要这个文件了 git rm file; git commit -m ‘comment’
    2. 保留这个文件, git add file; git commit -m 'comment'

    第二个案例

    git pull origin master
    remote: Counting objects: 5, done.
    remote: Compressing objects: 100% (4/4), done.
    remote: Total 5 (delta 1), reused 5 (delta 1), pack-reused 0
    展开对象中: 100% (5/5), 完成.
    来自 github.com:XXX/gitlearn
    * branch            master     -> FETCH_HEAD
       d98847d..6c3da8f  master     -> origin/master
    更新 d98847d..6c3da8f
    error: Your local changes to the following files would be overwritten by merge:
        client1_file1.txt
    Please, commit your changes or stash them before you can merge.
    Aborting
    

    分析:这个错误说,你的工作区没有提交,要么保存,要么提交。
    保存的话, git stash save ‘comment’
    然后git pull 把代码拉回来,接下来,我们肯定要恢复保存的内容
    先调用 git stash list 查看一下有那些保存版本
    看到如下

    stash@{0}: On master: 111
    stash@{1}: WIP on master: fb6c1ec Merge branch 'master' of github.com:XXX/gitlearn
    stash@{2}: On master: save
    stash@{3}: WIP on master: d98847d x
    

    然后 git stash apply stash@{number} 就可以恢复指定的工作区, 注意: 恢复后,会默认执行合并动作,此时,如果有冲突,需要手动合并拉下来的代码和自己工作区的代码。
    git stash save ‘comment’ 可以写注释
    git stash list 可以查看存储的栈
    git stash apply stash@{number} 可以恢复指定的工作区保存
    git stash drop stash@{number} 可以删除指定的保存代码
    git stash pop 可以恢复工作区栈顶的保存代码,也就是最近一次保存的。
    pop,和apply 都会执行和 pull回来的代码的merge, 如果有冲突,需要你手动修复。
    修复完之后, git add fix_file, 然后等待下一次git commit

    第三个案例-

    git push
    To github.com:notfresh/gitlearn
     ! [rejected]        master -> master (fetch first)
    error: failed to push some refs to 'git@github.com:XXX/gitlearn'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    

    这个错误是说: 更新被拒绝,因为远程已经包括你的工作了,什么意思?
    你的本机版本库并没有包含全部远程全部版本,说明有别的同学提交了代码,而你没有拉下来,
    所以想要git push, 先要保证你的电脑上有最新的远程版本库,所以要先 pull 代码,把冲突合并(如果有的话),
    只有你的本地版本库最新最全,你才有资格向远程提交代码新的版本。

    第四个案例

    git pull
    remote: Counting objects: 260, done.
    remote: Total 260 (delta 14), reused 114 (delta 14)
    Receiving objects: 100% (260/260), 8.92 MiB | 2.02 MiB/s, done.
    Resolving deltas: 100% (14/14), done.
    From code.XXXX.com:XXX/PROJECTNAME
       c5cedaf..8ea616d  dev        -> origin/dev
    Updating c5cedaf..8ea616d
    Fast-forward
     app/api_tests/mobile/market/verification.sh                     |   9 +++++++++
     app/api_tests/test/host.sh                                      |   4 ++--
     ...省略...
     app/modules/mobile/xxx/member_type.py                |  12 ++++++------
     user_verification.py      | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------
     migrations/versions/386163c6cd89_modify_model.py                |  32 ++++++++++++++++++++++++++++++++
     40 files changed, 368 insertions(+), 553 deletions(-)
     create mode 100644 app/modules/services/wechat/service.py
     delete mode 100644 app/modules/services/wechat/wechat_service.py
    

    分析:这个说明了什么呢?
    +++---- 的含义是: +代表增加, --代表删除,如果你修改了一行代码,那么git认为这行被删除,而新的一行被增加, git识别的基本单位是一个行,而不是一个字符。
    ++++很多说明增加了很多, ---很多说明删除了很多
    create mode 100644 app/modules/XXX/wechat/service.py 说明新增了一个文件,
    delete mode 100644 app/modules/XXX/wechat/wechat_service.py 说明删除了一个文件

  • 相关阅读:
    Bug
    [转]C# 向web网站GET、POST 数据
    使用JavaScript触发ASP.NET Validator验证
    Asp.net 布尔运算符
    HTML 后退功能JS
    [转]C# 获取硬盘序列号 Volume Serial Number
    ASP.NET中,Gridview如何将源数据中的
    显示成回车

    ASP.NET 验证控件
    与或非的运算法则
    [转]WinForm开发,窗体显示和窗体传值相关知识总结
  • 原文地址:https://www.cnblogs.com/notfresh/p/8678449.html
Copyright © 2020-2023  润新知