git 丢弃、删除、移除本地的修改

case1:丢弃未使用 git add 缓存的代码

#1-常见的方式 没有生效
git checkout -- file #放弃某个文件
git checkout .        #放弃所有

#2-组合方式, #有效
#2.1
git checkout . #放弃所有
git clean -xdf  #删除未被跟踪untracked的文件

#2.2
git reset --hard #回退到上一次commit的节点,不保留修改,已有的改动会丢失
git clean -xdf    #删除未被跟踪untracked的文件

说明

git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。

git reset --hard HASH #返回到某个节点,不保留修改,已有的改动会丢失。
git reset --soft HASH #返回到某个节点, 保留修改,已有的改动会保留,在未提交中,git status或git diff可看。

git clean 参数
    -q, --quiet           do not print names of files removed
    -n, --dry-run         dry run
    -f, --force           force
    -i, --interactive     interactive cleaning
    -d                    remove whole directories
    -e, --exclude 
                          add  to ignore rules
    -x                    remove ignored files, too 也删除被忽略的文件
    -X                    remove only ignored files 仅删除被忽略的文件

【说明】:
    -n 不实际删除,只是进行演练,展示将要进行的操作,有哪些文件将要被删除。(可先使用该命令参数,然后再决定是否执行)
    -f 删除文件
    -i 显示将要删除的文件
    -d 递归删除目录及文件(未跟踪的)
    -q 仅显示错误,成功删除的文件不显示
    -x 不管是否是.gitignore文件里指定的文件夹和文件,都执行相关操作

【 -x 】实例:
git clean -f   #删除当前目录下所有没有track过的文件,不会删除.gitignore文件里指定的文件夹和文件, 不管这些文件有没有被track过
git clean -xf  #删除当前目录下所有没有track过的文件, 不管是否是.gitignore文件里指定的文件夹和文件

git clean -df #返回到某个节点,(未跟踪文件的删除)

【注意】:
git reset 删除的是已跟踪的文件,将已commit的回退
git clean 删除的是未跟踪的文件

SourceTree

  1. 频繁弹出输入密码页面,在终端输入以下命令,重新登录即可解决:
    git config --global credential.helper osxkeychain

你可能感兴趣的:(git 丢弃、删除、移除本地的修改)