home archives github knives links
tags git
categories
only title title and content
git笔记

文件

不同版本文件对比

git diff branch1 branch2 file
git diff branch1:(绝对路径) branch2:(绝对路径)

从版本中删除文件(TODO, 彻底删除文件)

git rm 文件 --cached

博客园
stackoverflow

git filter-branch --tree-filter 'rm -f {file}' HEAD

不跟踪已删除的文件

git add --update

显示新增文件

git ls-files --others --exclude-standard
git status --porcelain
git diff --name-only --diff-filter=A --cached # All new files in the index  
git diff --name-only --diff-filter=A # All files that are not staged
git diff --name-only --diff-filter=A HEAD # All new files not yet committed

更新单个文件

git checkout origin/master path_to_file

恢复单个文件到历史版本

git checkout -- $filepath
git reset $commit_id $pathtofile

查看历史版本的文件

git show {log}:{filename}

版本控制

回复到上一版本

git reset --hard HEAD
git reset --hard HEAD^
git reset --hard HEAD^^
git reset --hard HEAD~100

回复到新版本

廖雪峰

删除commit

TODO

分支

删除本地分支

git branch -d branchname

重命名本地分支

git branch -m branchname1 branchname2

删除远程分支

git push origin --delete branchname

删除master需要在github上修改默认分支后才能删除

仓库

查看远程仓库

git remote -v

增加仓库

git remote add 名字 地址

删除仓库

git remote rm 名字

添加.gitignore后重新跟踪

git rm -r --cached .
git add .

强制覆盖本地

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

修改remote

git remote set-url origin [url]