美文网首页
git常用命令大全

git常用命令大全

作者: 我的宠物 | 来源:发表于2018-11-17 23:54 被阅读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 ---> 获取所有远端加的更新

    相关文章

      网友评论

          本文标题:git常用命令大全

          本文链接:https://www.haomeiwen.com/subject/chaifqtx.html