• git 学习删除某次提交


    cmd里的快捷键

    ctrl+a : 跳到开头
    ctrl+e : 跳到结尾
    which vi  查看vi这么命令在哪个目录下
    >> /uer/bin/vi 
    git log 太多了看不完, 空格 往下看    q退出  ctrl+f往后走,  ctrl+d 往前走
    mkdir a && cd -  创建并进入啊目录
    vim下 
    :4,7d 4到7行删除
    :5d 第五行删除
    

    丢弃某个文件的本地修改

    git chekcout -- a.txt'

    从暂存区撤回某次提交

    git add hello.py  # 把本地修改加入暂存区
    git reset HEAD hello.py # 从暂存区撤回来,但是本地保存了他的修改
    git chekcout -- hello.py # 撤回之后用git checkout -- file 丢弃本地的修改
    git tag -a v0.1 -m '新增标签v0.1'
    git tags
    

    git diff 的使用



    HEAD里面的,白色的表示公有的,红色-表示,HEAD比HEAD少了一行



    git如何彻底删除一个提交?

    ① 首先确保所有分支都没有引用该提交,包括HEAD也不指向这个提交。
    ② 然后 git reflog expire --expire=now --all (这会清除分支变更历史)
    ③ 然后 git gc --prune=now (不用调整时间,加上--prune=now命令即可)

    作者:Intopass
    链接:https://www.zhihu.com/question/36165419/answer/66222295

    git常用命令

    git config --global user.name "ty1539"
    git config --global user.email 'ty1539@qq.com'
    git config -- list 查看所有的配置
    git reset HEAD readme.txt  将最近一次提交的readme.txt恢复到暂存区,然后将暂存区恢复成先前的状态
    git reset HEAD  将最近一次提交到git仓库的文件恢复到暂存区,然后将暂存区恢复成先前的状态 
    
    • Git的工作流程一般是:
      在工作目录中添加、修改文件 [已修改(modified)] git add . (将需要进行版本管理的文件放入暂存区域 ) >> [已暂存(staged)] git commit -m '说明' (将暂存区域的文件提交到Git仓库 ) >> 已提交(committed)


    reset和checkout

    git reset HEAD~ 回到上一个暂存区 git reset HEAD~3 回到上3个暂存区

    git reset HEAD 将最近一次提交到git仓库的文件恢复到暂存区,然后将暂存区恢复成先前的状态

    如果本地修改了,某个以提交到仓库的文件,用 git checkout -- filename 用仓库中的覆盖掉本地的, 即放弃本地的修改,要慎用

    git diff

    • git diff commit_id1 commit_id2 // 比较2个已提交的
    • git diff 比较工作区和暂存区
    • git diff HEAD 比较最新提交的和当前的
    • git diff --cached 比较暂存区的仓库
    • git diff --cached commit_id2 比较暂存区的仓库的

    git checkout -- filename // 丢弃工作区中的修改, 丢弃掉相对于暂存区中最后一次添加的文件内容所做的变更
    git reset HEAD -- filename // 将之前添加到暂存区(stage,index)的内容,从暂存区移除到工作区
    git rebase -i master
    git commit --amend #修改提交声明
    修改文件, git add 之后
    git commit --amend -m '新的提交说明' #针对有乱码的提交声明 ,就把修改的文件重新提交到上一次了

    git branch -m master master2 // 分支master改名为master2

    git log -p 展开显示每次提交的内容差异
    git log --pretty=format:"%h-%an,%ar:%s"
    git log --stat 仅显示简要的增改行数统计
    git log --pretty=oneline 显示4条
    git log -4 显示4条
    git commit --amend -m '更新的提交提示'
    git rm 要删除的文件名
    git rm -f 要删除的文件名 # 当工作区和暂存区不一样是,-f 暴力删除

    git mv 旧文件名 新文件名
    git rm --cached test.py // 从暂存区删除
    git branch feature // 创建一个名为feature 的分支
    git log --decorate // 查看当前用户的分支引用
    git checkout feature // 切换到feature分支
    git log --decorate --oneline --graph --all // 查看分支 --


    checkout









    .gitignore

    git stash用法

    git checkout 只有2个分支在同一个commit_id节点才可以在改动到一半切换过去,否则不能
    git stash 保存此刻状态,会自动生成stash_id 如 stash@{0}: WIP on test: 5c97f3e 05_新增c1
    git stash save '保存说明'
    git stash list ; 有2条保存记录了stash@{0}:
    On test: 新增gitstash
    stash@{1}: WIP on test: 5c97f3e 05_新增c1
    git pop 将临时保存的最近一条状态取出来删除
    git stash list ; 列出所有的保存状态 只有有第一条保存记录了git stash list ; 有2条保存记录了stash@{0}:
    git stash apply 进入之前保存的stash
    $ git stash drop stash@{1} // 删除指定的stash
    fatal: Log for 'stash' only has 1 entries. //保错,没有第二条

    Administrator@cpo-it001 MINGW64 /y/GitProject/Project_6 (test)
    $ git stash drop stash@{0}
    Dropped stash@{0} (60e344c1dc884cd087aeb0e045429936aea4d4c2) // 成功删除了

    Administrator@cpo-it001 MINGW64 /y/GitProject/Project_6 (test)
    $ git stash list

    git stash apply (stash内容并不删除,需要通过git stash drop stash@{0}手动删除
    git stash pop 删除的同时也将stash内容删除
    git stash apply stash@{0}

    git blame

    $  git blame a
    ^773a33e (ty1539            2021-03-16 11:15:37 +0800 1) 1111111111111
    5ed95c68 (ty1539            2021-03-16 11:25:06 +0800 2) 22222222222
    dcbe10a1 (ty1539            2021-03-16 21:24:13 +0800 3) 新增gitstash
    5f637fa1 (ty1539            2021-03-16 21:26:28 +0800 4) 333333333333333test
    00000000 (Not Committed Yet 2021-03-16 22:05:47 +0800 5) gittag重标签
    
    

    git diff

    Administrator@cpo-it001 MINGW64 /y/GitProject/Project_6 (test)
    $ echo 新增区别到a >> a

    Administrator@cpo-it001 MINGW64 /y/GitProject/Project_6 (test)
    $ git diff
    diff --git a/a b/a
    index 6c5b51d..e00cf18 100644
    --- a/a
    +++ b/a
    @@ -2,3 +2,4 @@
    22222222222
    新增gitstash
    333333333333333test
    +新增区别到a
    warning: LF will be replaced by CRLF in a.
    The file will have its original line endings in your working directory.

    git diff 比较暂存区和工作区的区别
    --- 原始文件,暂存区
    +++ 目标文件,工作区

    git diff commit_id 比较特定的仓库和工作区的区别
    git diff HEAD 比较最新提交的和工作区之间的差别

    git diff --cached commit_id 比较暂存区和某次提交的仓库的区别
    git diff --cached 比较暂存区和最新提交的仓库的区别

    1.Gitflow
    oado
    2。基于Git分支的开发模型:
    develop分支(频繁变化的一个分支)
    test分支(供测试与产品等人员使用的一个分支,变化不是特别频繁)
    master分支(生产发布分支,变化非常不频繁的一个分支)
    bugfix(hotfix)分支(生产系统当中出现了紧急Bug,用于紧急修复的分支)

    git remote show origin

    https://blog.csdn.net/QQxiaoqiang1573/article/details/68074847
    连接: https://blog.csdn.net/lianshaohua/article/details/108336436?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=1328642.36984.16156889036565995&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

    git reset

    • git reset : 回滚到某次提交 // 就是当前工作目录中的相对于移动过去的commit_id ,把当前的变动没有add进暂存区,
    • git reset --soft:此次提交之后的修改会被退回到暂存区。 // 就是当前工作目录中的相对于移动过去的commit_id ,把当前的变动add进去了暂存区
    • git reset --hard:此次提交之后的修改不做任何保留,git status 查看工作区是没有记录的。 // 工作目录和暂存区都是commit_id里面的,很干净
    • git push origin HEAD --force // 强制推送到远端

    注意:删除中间某次提交时最好不要用 git reset 回退远程库,因为之后其他人提交代码时用 git pull 也会把自己的本地仓库回退到之前的版本,容易出现差错进而增加不必要的工作量。

    1. git log // 查找要删除的前一次提交的 commit_id
    2. git rebase -i commit_id // 将 commit_id 替换成复制的值
    3. 进入 Vim 编辑模式,将要删除的 commit 前面的 pick 改成 drop
    4. 保存并退出 Vim

    3. git revert // 把本次的提交内容恢复到上一次,之后,重新提交

    • git revert:放弃某次提交。
      - git revert 之前的提交仍会保留在 git log 中,而此次撤销会做为一次新的提交。
      - git revert -m:用于对 merge 节点的操作,-m 指定具体某个提交点。

    3.1、撤销提交
    要撤销中间某次提交时,使用 git revert 也是一个很好的选择:

    1. git log // 查找需要撤销的 commit_id
    2. git revert commit_id // 撤销这次提交
      如果这次提交是 merge 节点的话,则需要加上 -m 指令:
    1. git revert commit_id -m 1 // 第一个提交点
    2. // 手动解决冲突
    3. git add -A
    4. git commit -m ""
    5. git revert commit_id -m 2 // 第二个提交点
    6. // 重复 2,3,4
    7. git push
    
    写入自己的博客中才能记得长久
  • 相关阅读:
    windows10使用arcgis注意事项
    andriod arcgis加载影像TIF
    FeatureTable()
    arcgis Listview
    ArcGIS for Android图层记录数,图层选择记录,图层字段数
    ArcGIS for Android 点击选择
    ArcGIS for Android地图上实际距离与对应的屏幕像素值计算
    Android如何检查对象的类型
    北美内地电影票房总排行榜
    XSS漏洞的渗透利用另类玩法
  • 原文地址:https://www.cnblogs.com/heris/p/14534968.html
Copyright © 2020-2023  润新知