git相关整理(持续更新)

恢复相关
git checkout -- file可以丢弃工作区的修改:
git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
git reset --hard commit_id 在版本的历史之间穿梭
git reset --hard HEAD^ 上一个版本


忽略文件

没有跟踪的文件
.git/info/exclude 这里设置的则是你自己本地需要排除的文件

已经跟踪的用这个忽略
git update-index --assume-unchanged protected/config_dev/ams_main.php #忽略跟踪
git update-index --no-assume-unchanged /path/to/file #恢复跟踪

忽略了之后还得找出来:

git ls-files -v | grep '^h '
git ls-files -v | grep '^h ' | awk '{print $2}'

挺好看的一个日志格式:
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cd) %C(bold blue)<%an>%Creset' --abbrev-commit --date=format:'%Y-%m-%d %H:%M:%S'


分支的查看和删除

查看:
查看远程分支:git branch -r
查看本地分支:git branch -l
查看全部分支:git branch -a

删除:
删除远程分支:git push origin --delete <branchName>
删除本地分支:git branch -d <branchName> | git branch -d <branchName> (强制删除)

忽略修改文件权限带来的改变:

修改了文件权限,git status一下会发现git也认为这个文件进行了修改,可以设置一下

git config core.filemode false

git用远程的覆盖本地的

本地的修改我都要忽略,想直接用远程的覆盖本地的

git fetch --all
git reset --hard origin/master

恢复某个文件到之前的版本

git log 文件名字 (找到要恢复的commit id)

git checkout commit id 文件名字 

原文地址:https://www.cnblogs.com/hanpengyu/p/6901737.html