美文网首页Git
Git学习笔记二

Git学习笔记二

作者: coder前行 | 来源:发表于2019-08-05 15:15 被阅读0次

    git-study

    commit, tree与blob的对应关系

    1. 一个commit对应一个tree(唯一一个)
    2. 一个tree可以看作是一次commit之后整个项目的一个快照
    3. 一个tree可能也会包含多个tree
    4. 一个blob对应一个文件

    分离头指针注意的问题

        当切换到没有绑定分支的commit时,并对其当中的文件修改,最终提交commit保存后会出现"warning: you are leaving 1 sommit behind, not connected to any of your branches."
        这时的commit被git看作不重要,可能会被git所清理,如果你要保存这个commit就要新建分支(git branch new-branch-name [分支hash])
    

    删除不需要的分支

        git branch -d [branch-name / hash]
    

    修改commit和massage

    1. 修改最新的commit
        git commit --amend
    
    1. 修改老旧的commit
        git rebase -i [privious-commit-hash]
        # 按照提示修改
        # 将pick改为reward
    
    1. 合并多次的commit
        git rebase -i [oldest-commit-hash]
        # 按照提示修改
        # 将pick改为squash
    
    1. 合并不连续的commit
        git rebase -i [oldest-commit-hash]
        # 未显示出来的需要用到的commit要按照先后顺序手动添加进来
        # 把要合并的commit按照先后顺序放在一起
        # 将pick改为squash
    

    文件操作

    文件的差异

    1. 比较暂存区与head指向的文件差异
        git diff --cached
    
    1. 比较工作区与暂存区文件差异
        git diff
        # 所以说git diff命令默认比较的是工作区和暂存区的区别,默认所有文件
        
        git diff -- file.name
        # 指定文件的差异
    
    

    文件提交与回退

    1. 暂存区恢复成和HEAD一样
      命令:git reset HEAD <file>...
        git reset HEAD
        # 清空暂存区所有文件(即取消暂存)
    
    1. 工作区恢复成和暂存区一样

      命令:git checkout -- <file>...

        git checkout -- file.name
    
    1. 取消暂存区部分文件的暂存

      命令git reset HEAD <file>...

        git resset HEAD -- file1.name file2.name # ...
    
    1. 清除最近几次提交
        git reset --hard [target-commit-hash]
    
    1. 查看不同提交的指定文件的差异
        # 比较两分支的差异
        git diff branch1 branch2
        # 比较特定文件
        git diff branch1 branch2 -- file.name
    
        # 直接比较两个commit
        git diff commit-hash-1 commit-hash-2 -- file.name
    
    1. 删除文件的正确方法
        git rm file.name
    
    1. 紧急任务处理
        # 保存当前状态以便处理紧急事件
        git stash
        # 处理完之后再恢复
        git stash pop # 或 git stash apply
    
        # pop 和 apply的区别
        # pop恢复并丢掉stash list内容,apply不会
    
        # 查看stash列表
        git stash list
    

    指定不需要git管理的文件

    .gitignore文件

    相关文章

      网友评论

        本文标题:Git学习笔记二

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