zoukankan      html  css  js  c++  java
  • git命令

    git clone 

    git remote -v

    git remote add 

    git add .

    git commmit 

    git fetch upstream 

    git pull upstream origin 

    git push 

    git add 撤销  git reset HEAD file

    git reset HEAD <file>   # 取消add操作并保留修改
    git checkout -- <file> #若继续该命令,则会删除掉刚刚的修改内容

    撤销git commit操作

    git reset --soft <commit_id>   #可以回退到某个commit并保存之前的修改  <commit_id>从git log中取,取前7位即可
    git reset --hard <commit_id>  #回退到某个commit不保留之前的修改
    • git reset --soft <commit_id>   #可以回退到某个commit并保存之前的修改  <commit_id>从git log中取,取前7位即可
      git reset --hard <commit_id>  #回退到某个commit不保留之前的修改

    撤销git push操作

    push后撤销该次commit

    git revert <commit_id>
    • 1

    原理: git revert 会产生一个新的 commit,它和指定 SHA 对应的 commit 是相反的(或者说是反转的)。 任何从原先的 commit 里删除的内容会在新的 commit 里被加回去,任何在原先的 commit 里加入的内容会在新的 commit 里被删除。这是 Git 最安全、最基本的撤销场景,因为它并不会改变历史 — 所以你现在可以 git push 新的“反转” commit 来抵消你错误提交的 commit。

    push后删除一些不该提交的文件

    删除远程分支上的文件,同时也删除了本地仓库的文件:

    git rm file 
    git commit -m "test delete"   
    git push origin branch name
    • git revert <commit_id>

    删除远程分支上的文件,但同时保留本地仓库的文件

    git rm --cached filename 
    git commit -m "delete" 
    git push origin branch name
    • 1
    • 2
    • 3

    删除远程分支上的文件夹,但同时保留本地仓库的文件夹及文件

    git rm -r --cached directory
    git commit -m "test"
    git push origin branch name

     正确的做法应该是:git rm --cached logs/xx.log,然后更新 .gitignore 忽略掉目标文件,最后 git commit -m "We really don't want Git to track this anymore!" 删除跟踪状态而不是物理状

    //已经维护的文件 的解决方式
    已经维护起来的文件,即使加上了gitignore,也无济于事。
    用下面这个命令:
    git update-index --assume-unchanged logs/*.log
    这样每次提交就不会出现logs下面的文件了

     
  • 相关阅读:
    真题演练3
    牛客挑战赛43. C.最优公式 (二分,思维,切比雪夫距离与曼哈顿距离的转换)
    F. Equal Product (数学,思维,暴力)
    BJOJ 4402 Claris的剑 (组合数学,思维)
    牛客.二分图染色 (组合数学,思维,递推)
    树 (DP,dfs序,组合数学,思维)
    牛客练习赛69 E.子串 (树状数组, 思维)
    牛客练习赛14 B.区间的连续段 (倍增)
    城市网络(树上倍增)
    D. Game of Pairs (构造,思维)
  • 原文地址:https://www.cnblogs.com/long613/p/7800703.html
Copyright © 2011-2022 走看看