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
---> 获取所有远端加的更新
网友评论