git add .
git commit -m 'message'
git stash
git stash save <message>
git stash pop
git stash apply <id>
git stash drop <id>
git init
git clone https://github.com/menng/learngit.git
git clone -b <branch_name> https://github.com/menng/learngit.git
git remote -v
git remote show/add/remove/rename <远程仓库>
git checkout -- <filename>
git reset --hard HEAD
未被加入暂存区的文件还是会存在
git branch -a/r/v
git branch -vv
查看本地分支与远程分支关联关系
git checkout -b <branch_name>
git branch -m <old_branch_name> <new_branch_name>
git branch <new_branch_name> <tag_name>
git checkout -b <new_branch_name> <tag_name>
git fetch origin
git checkout -b <local_branchname> <remote_branchname>
git pull -p
git remote prune <remote_repo_alias>
git remote prune -n/--dry-run <remote_repo_alias>
git branch | xargs git branch -D
批量删除当前分支之外的所有分支。
git push origin :<branch_name>
git push origin --delete <branch_name>
git reset --hard <branch_name>
eg:
git reset --hard HEAD^1
恢复到上次提交
git reset --hard
重置本地修改
git reset --hard 98d3dde
git diff <branch_name> <other_branch_name>
eg:
git fetch origin
git diff master origin/master
git diff master dev
git diff --cached
git diff --check
git diff <branch_name> <other_branch_name> --stat
git diff <branch_name> <other_branch_name> --name-only
git diff <branch_name> <other_branch_name> --name-status
git tag -n
git tag <tagname>
git tag -a <tagname> -m <message>
git push origin <tagname>
git push origin --tags
git tag -d <tagname>
git push origin :<tagname>
git log -p -2
显示最近两次提交的差异
git log --stat
显示每次提交的简略统计信息
git log --pretty=oneline
不同的风格展示提交历史
git log --pretty=format:"%h %an %ar - %s"
格式化输出
git log --pretty=format:"%h %an %ar - %s" --graph
图标格式化输出
git log --pretty=format:"%h %an %ar - %s" --graph -5
图标格式化输出最近5次提交
git log --name-status
显示新增、修改、删除的文件清单
git log --name-only
文件修改列表
git whatchanged
文件修改列表
git reflog
记录本地仓库的操作历史。
git config --global alias.br branch
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.ck checkout
git config --global core.whitespace cr-at-eol
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
操作:
git reset --soft HEAD^/HEAD~1/<前一次的commitid> 撤销最近一次commit
git reset --soft HEAD^^/HEAD~2/<前两次的commitid> 撤销最近二次commit 等等
参数说明:
--mixed 不删除工作区改动代码,撤销commit,撤销git add . (默认参数)
--soft 不删除工作区改动代码,撤销commit,不撤销git add .
--hard 删除工作区改动代码,撤销commit,撤销git add .
git commit --amend 默认进入vim,修改注释完毕后保存即可。
git log --graph --oneline --decorate $(git fsck --no-reflog | awk '/dangling commit/ {print $3}') 查看stash历史
git stash apply xxxx 恢复最后stash的内容
git rm -r --cached .
git add .
git commit -m '更新 .gitignore'
说明:.gitignore只忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。清理之前提交的缓存,再次提交即可。
git reflog 查看所有操作历史