zoukankan      html  css  js  c++  java
  • Git

    一、

    文件层面操作:

    • git add files 把当前文件放入暂存区域。
    • git commit 给暂存区域生成快照并提交。
    • git reset -- files 用来撤销最后一次git add files,你也可以用git reset 撤销所有暂存区域文件。
    • git checkout -- files 把文件从暂存区域复制到工作目录,用来丢弃本地修改。

    git reset 会撤销所有暂存区的文件

    git checkout --files 会把文件冲暂存区复制到工作目录,会把本地(工作区)修改掉

    checkout命令用于从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支。当给定某个文件名时,git会从指定的提交中拷贝文件到暂存区域和工作目录。比如,git checkout HEAD~ foo.c会将提交节点HEAD~(即当前提交节点的父节点)中的foo.c复制到工作目录并且加到暂存区域中。(如果命令中没有指定提交节点,则会从暂存区域中拷贝内容。)注意当前分支不会发生变化。

    当不指定文件名,而是给出一个(本地)分支时,那么HEAD标识会移动到那个分支(也就是说,我们“切换”到那个分支了),然后暂存区域和工作目录中的内容会和HEAD对应的提交节点一致。新提交节点(下图中的a47c3)中的所有文件都会被复制(到暂存区域和工作目录中);只存在于老的提交节点(ed489)中的文件会被删除;不属于上述两者的文件会被忽略,不受影响。

    如果既没有指定文件, 也没有指定分枝. 而是只给出一段提交的历史Hash, 只有HEAD会移动到相应的历史提交. 这会造成HEAD分离, 非常危险的操作, 这个命令的说明只是为了满足你的好奇心而已, 不要使用这个命令.
    git checkout 并不是为了好奇心,而是方便你查看历史记录内容。

    经过实验,发现可以使用三种方法撤销修改(在已经add到暂存空间的情况下) 1.$ git reset HEAD$ 然后 git checkout -- readme.txt 2.$ git reset --hard HEAD 3.$ git checkout HEAD -- readme.txt

    查了一下:

    1. git log 然后查看并复制上一版本的版本号

    2. git reset 此时版本库中该文件已回退上一版本

    1.3 删除

    1.如果你用的rm删除文件,那就相当于只删除了工作区的文件,如果想要恢复,直接用git checkout -- 就可以 2.如果你用的是git rm删除文件,那就相当于不仅删除了文件,而且还添加到了暂存区,需要先git reset HEAD ,然后再git checkout -- 3.如果你想彻底把版本库的删除掉,先git rm,再git commit 就ok了

    1.4 分支

    查看分支:git branch

    创建分支:git branch

    切换分支:git checkout

    创建+切换分支:git checkout -b

    合并某分支到当前分支:git merge

    删除分支:git branch -d

    1.5 合并

    当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

    解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

    用git log --graph命令可以看到分支合并图

  • 相关阅读:
    Linux Virtual Server技术
    log4j+slf4j迁移到log4j2+slf4j (Servlet3.0)
    Android控件ToggleButton的使用方法
    Redis学习手冊(事务)
    游戏server之server优化思路
    Codeforces 474D Flowers (线性dp 找规律)
    【C语言】编写函数实现库函数atof
    unity3D游戏开发实战原创视频讲座系列7之消消乐游戏开发
    [WebGL入门]二十一,从平行光源发出的光
    TwoSum leetcode
  • 原文地址:https://www.cnblogs.com/shiqi17/p/10928483.html
Copyright © 2011-2022 走看看