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 文件名字