zoukankan      html  css  js  c++  java
  • git 笔记

    1.常用指令

    git 显示全部分支  git branch

    git 创建分支    git branch (分支名)

    git 切换分支    git checkout (分支名)

        -b 若不存在分支,则创建它

    git 删除分支    git branch -d (分支名)    

        -d 当分支已经合并到主干后删除

        -D 无论如何都删除分支

    git 合并分支    git merge (分支名)

    撤销前一次 commit
    git revert HEAD 
    撤销所有本地修改
    git reset --hard
    撤销所有本地到上一次修改
    git reset --hard HEAD^
    撤销上一次commit,将commit的文件撤回暂存区
    git reset --soft HEAD^
    要是想撤销到上上次,就是HEAD^^  ,以此类推。
     
    git revert 是撤销某次操作,此次操作之前的commit都会被保留
    git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区
     
    git commit -amend
    将此次更新文件并入到上次commit的记录中,不新添加commit
     

    2.git 进阶

    git tag:可以将某个具体的版本打上一个标签,这样你就不需要记忆复杂的版本号哈希值了,

    例如你可以使用 'git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20'来标记这个被你还原的版本,

    那么以后你想查看该版本时,就可以使用 revert_version标签名,而不是哈希值了。

    它会使你所有未提交的修改瞬间不见了:

    $ git stash

    它会使刚刚不见了的修改,瞬间又回来了:

    $ git stash pop


    tips:
    1.使用git stash保存当前的工作现场,那么就可以切换到其他分支进行工作,或者在当前分支上完成其他紧急的工作,比如修订一个bug测试提交。
    2.如果一个使用了一个git stash,切换到一个分支,且在该分支上的工作未完成也需要保存它的工作现场。再使用git stash。那么stash 队列中就有了两个工作现场。
    3.可以使用git stash list。查看stash队列。
    4.如果在一个分支上想要恢复某一个工作现场怎么办:先用git stash list查看stash队列。确定要恢复哪个工作现场到当前分支。然后用git stash pop stash@{num}。num 就是你要恢复的工作现场的编号。
    5.如果想要清空stash队列则使用git stash clear。
    6.同时注意使用git stash pop命令是恢复stash队列中的stash@{0}即最上层的那个工作现场。而且使用pop命令恢复的工作现场,其对应的stash 在队列中删除。使用git stash apply stash@{num}方法除了不在stash队列删除外其他和git stash pop 完全一样。

    常见问题

    1.提示合并失败

    查看源文件


    git迷惑之处在于它不知道是把hello world这行放在前面还是把报时功能这段放在前面。

    修改冲突


    重新提交

    git commit -a

    2.解决gerrit冲突

    远程解决冲突方法:

    cd demo
    以分支为develop为例
    打开Gerrit有冲突的那个网址,如 http://192.168.1.33:8080/#/c/16/ 找到Download 如下命令,执行
    git fetch ssh://minggui.li@192.168.1.33:29418/demo refs/changes/16/16/1 && git checkout FETCH_HEAD
    git checkout -b new_branch_name
    git fetch origin
    git rebase origin/develop
    修改冲突文件
    git add .
    git rebase --continue
    git push origin new_branch_name:refs/for/develop
    git checkout develop
    git branch -D new_branch_name
    不会产生新的changes记录,将原changes记录重新review提交即可,这时在原冲突机器上直接pull会本地冲突,需要
    git reset --hard HEAD^
    否则会出现cannot do a partial commit during a merge.最后更新下代码
    git pull
  • 相关阅读:
    java常见异常总结
    敏捷开发的七种主流方法
    转:一位10年Java工作经验的架构师聊Java和工作经验
    Map遍历
    Mybatis中的模糊查询
    Mybatis中动态SQL多条件查询
    J2EE,LAMP和ASP.NET三者比较
    关于加密
    Md5Hash的测试
    CentOS7 修改默认时区为 北京时间
  • 原文地址:https://www.cnblogs.com/tobeprogramer/p/3909310.html
Copyright © 2011-2022 走看看