git相关命令-下

来源:互联网 发布:高性价比耳麦知乎 编辑:程序博客网 时间:2024/06/10 00:02


放弃工作区的修改

git checkout <file-name>

放弃所有修改:

git checkout .

回到某一个commit的状态,并重新增添一个commit

git revert <commit-id>

回到某个commit的状态,并删除后面的commit

和revert的区别:reset命令会抹去某个commit id之后的所有commit(这个命令用过几次,挺好用的)

git reset <commit-id> #默认就是-mixed参数。git reset –mixed HEAD^ #回退至上个版本,它将重置HEAD到另外一个commit,并且重置暂存区以便和HEAD相匹配,但是也到此为止。工作区不会被更改。git reset –soft HEAD~3 #回退至三个版本之前,只回退了commit的信息,暂存区和工作区与回退之前保持一致。如果还要提交,直接commit即可 git reset –hard <commit-id> #彻底回退到指定commit-id的状态,暂存区和工作区也会变为指定commit-id版本的内容

查看某段代码是谁写的(查看之后自己知道就好~~~)

git blame <file-name>

列出所有远程仓库

git remote

存储当前的修改,但不用提交commit(就是将修改先暂存起来,不会影响切换分支等操作)

git stash

保存当前状态,包括新建并没有假如到git的文件(当时不知道有这个命令,踩过一个坑,自己分支stash之后,直接切换到其他分支,然后执行了 git add . && git commit -am'xxx',结果把新建的文件提交到其他分支了)

git stash -u

展示所有stashes

git stash list

回到某个stash的状态

git stash apply <stash@{n}>

回到最后一个stash的状态,并删除这个stash

git stash pop

删除所有的stash

git stash clear

强制删除untracked的文件

可以用来删除新建的文件。如果不指定文件文件名,则清空所有工作的untracked文件。clean命令,注意两点:

  1. clean后,删除的文件无法找回

  2. 不会影响tracked的文件的改动,只会删除untracked的文件

git clean <file-name> -f

强制删除untracked的目录

可以用来删除新建的目录,注意:这个命令也可以用来删除untracked的文件。详情见上一条

git clean <directory-name> -df

新建并切换到新分支上,同时这个分支没有任何commit

相当于保存修改,但是重写commit历史

git checkout --orphan <branch-name>

展示任意分支某一文件的内容

git show <branch-name>:<file-name>

clone下来指定的单一分支

git clone -b <branch-name> --single-branch https://github.com/user/repo.git

忽略文件的权限变化(之前用linux系统,有一次没弄好,然后重新设置了文件权限,然后提示我所有文件被改动~)

git config core.fileMode false

在commit log中查找相关内容

通过grep查找,given-text:所需要查找的字段

git log --all --grep='<given-text>'