git常用命令大全

2018-11-17  本文已影响18人  我的宠物

git diff ---> 比较的是工作区与暂存区,注意显示结果中第二个M
git diff --cached ---> 比较的是暂存区和版本库,注意显示结果的第一个M
git status -s ---> 简略输出当前状态
git ls-tree -l HEAD ---> 列出版本库中的文件
git clean -fd ---> 清除工作区内容
git checkout . ---> 用暂存区内容来填充工作区
git ls-files -s ---> 显示暂存区中的文件
git ls-tree -l -r -t ---> 迭代显示版本库中文件
git diff HEAD ---> 工作区与HEAD比较
git diff --cached ---> 暂存区与HEAD比较
git rev-parse HEAD ---> 解析HEAD的版本号
git cat-file blob HEAD:welcome.txt ---> 查看版本库中文件内容
git stash ---> 是将工作区内容和暂存区内容都推到stash list中
git reset --hard ---> 更改版本库+更改暂存区+更改工作区
git reset --soft ---> 只更改版本库
git reset --mixed ---> 更改版本库 + 暂存区
git reset -- filename ---> 相当于git add file的反向操作
git reset --soft HEAD^ ---> 回退版本库和暂存区,一般用来修改上一次提交
git reset --hard HEAD^ ---> 全部回退到上一步。危险!
git rev-parse HEAD master ---> 解析分支commit id
头指针分离状态 ---> 就是不是指向任何分支,仅仅指向一个commit id
git show commitId ---> 显示某个commit详情
git brach -v ---> 显示详情的本地branch信息
reset与checkout ---> 重置的默认值是HEAD,checkout的默认值是暂存区
reset与checkout ---> reset一般用于重置暂存区,checkout用于重置工作区
git checkout commitid -- filename ---> 先重置暂存区,然后根据暂存区重置工作区
git reset ---> 从暂存区撤回
git clean -nd ---> 尝试测试删除
git clean -fd ---> 强制删除
git tag -m "hello world" tagname ---> 打tag
git stash pop ---> 应用stash栈顶的保存快照,并将其弹出
git stash apply ---> 就用stash栈顶的保存快照,不会将其弹出
git cat-file -p HAED~1:filename > filename ---> 从历史提交中检出文件
git show HEAD~1:filename > filename ---> 从历史提交中检出文件
git checkout HEAD~1 -- filename ---> 同上
git describe ---> 显示当前分支特别说明名称
git add -i ---> 交互式添加暂存区
.gitignore ---> 只对未添加追踪的文件有效,对于已经添加进版本库中的文件无效
git config --global core.excludesfile /home/work/.gitignore ---> 代码本地专有忽略文件
git archive -o latest.zip HEAD ---> 归档
git rev-list --oneline ^G D ---> 代码G到D的版本提交commit列表
git rev-list --oneline G..D ---> 代码G到D的版本提交commit列表
git rev-list --oneline B^@ ---> 除了本身commit的历史提交commit列表
git blame filename ---> 审查文件中每行代码的提交人
git blame -L 6,+5 filename ---> 审查第6-10行代码
git commit --amend -m "..." ---> 回退提交信息
git reset HEAD^ -- filename ---> 回退某个文件
git reset --soft HEAD^^ ---> 回退代码,准备重新提交
git tag A HEAD ---> 给HEAD分支打个tag
git checkout commitid ---> 回退到某一commit
git cherry-pick commid ---> 添加某一commid到当前分支上
git rebase --onto A B..C ---> 切换分支并应用分支
git rebase -i ---> 交互式变基
git rebase --onto 8f7e54 A master ---> 变基,最后不会出现分离性分支的状态了
git revet HEAD ---> 反转提交
git rev-list HEAD ---> 本地commit历史
git ls-remote origin ---> 远程库版本号
git push -f ---> 强制推送,指的是用user2的提交覆盖user1的提交,共同祖先前的提交不变
git show :1:fileName ---> 显示合并冲突前祖先版本内容
git show :2:fileName ---> 显示合并冲突时本地版本内容
git show :3:fileName ---> 显示合并冲突时另外分支版本内容
git mergetool ---> 启动图形化合并工具
git config --global merge.tool kdiff3 ---> 配置merge.tool
git branch ---> 显示分支状态
git branch newbranch ---> 创建新分支
git branch newbranch commitid ---> 基于某个commit创建新分支
git branch -d oldbranch ---> 删除分支
git branch -D oldbranch ---> 删除分支
git branch -m(-M) oldbranch newbranch ---> 重命名分支
git rebase master ---> 变基,实际上就是先切换到master,然后再执行cherry-pick操作
git rev-list --pretty=oneline branch1^...branch2 ---> 显示两个分支的commitid列表差异
git push origin branch1:branch1 ---> 向远端推送
git push origin :branch1 ---> 删除远端分支1
git ls-remote --heads ---> 显示远程分支信息列表
git show ref ---> 显示所有ref引用信息
git remote add new-remote origin2 ---> 注册新远程库
git remote set-url new-remote http://xxxx.com/.git ---> 修改远端库url
git fetch new-remote ---> 从远端库拉取代码到ref
git remote update ---> 获取所有远端加的更新

上一篇下一篇

猜你喜欢

热点阅读