zoukankan      html  css  js  c++  java
  • Git本地操作

    一 本地分支操作

    git log --oneline --decorate --graph --all
    git tag "v0" a1aba30
      -- 第三个参数是tag名称,第四个参数是commit的hash值,可用第一个命令查看
    git config --global alias.lol "log --oneline --decorate --graph --all"
      --起别名 此时命令为git lol
    git stash save -a "暂存区别名"
      --git add之后但没有commit,想切换分支就必须将工作区中的内容备份stash save保存进git栈内
    git stash list
      --查看当前分支下,git栈的所有备份,可以利用这个列表决定从哪个地方进行恢复
    git stash pop --index stash@{0}
      --从git栈中读取最近的一次内容,恢复工作区的内容
    git stash drop stash@{0}
      --清理git栈内的指定备份,如果最后一个参数为空,则默认清理最后一个备份
    git stash clear
      --清理git栈内所有的备份
    git abort --abort
      --放弃此次merge操作

    二 查看与对比历史记录

    主要学习以下几条命令命令 1.git log 2.git show 3.git diff
    git log
      --显示完整commit信息,若一页显示不全,按空格或f向下翻页,按b向上翻页,按q退出
    git log -p
      --显示每一次commit之间差异信息
    git log --stat
      --显示每一次commit之间差异的统计信息
    git log --oneline --decorate --graph --all
      --显示完整的历史示意图,--oneline显示单行信息,--decorate显示引用信息,--graph显示图形化历史信息 --all显示所有分支信息
    git show <commit的对应hash值>
      --查看当前分支下的提交
    git show master^
      --master当前指向的提交记录的第一父提交
    git show master^2
      --master当前指向的提交记录的第二父提交
    git show --stat master^2
      --显示提交所做出的改变信息
    git diff
      --显示工作区和暂存区之间的差异
    git diff --cached
      --显示暂存区和历史提交之间的差异
    git diff HEAD~2 -- master.txt
      --显示当前工作区与指定历史提交之间的差异,后面可以指定某个特定文件名
    git diff --cached HEAD~2 -- master.txt
      --显示暂存区与指定历史提交之间的差异,后面可以指定某个特定文件名
    git diff HEAD HEAD~2 -- master.txt
      --显示两次历史提交之间的差异,后面可以指定某个特定文件名
    git diff --color-words / git diff --word-diff
      --显示工作区与暂存区之间文件中,具体单词之间差异

    三 撤销修改

    主要学习以下几条命令: 1.git checkout 2.git reset 3.git clean 4.git revert
    git checkout -- master.txt
      --撤销工作区中master.txt的修改,其实是将暂存区中的文件覆盖了工作中的文件
    git reset master.txt
      --撤销git add后的文件回工作区
    git checkout <某次历史提交> -- <指定文件名>
      --回退当前工作区中的某个文件的历史版本
    git reset <某次历史提交> -- <指定文件名>
      --回退暂存区中的某个文件的历史版本
    vim .gitingore
    git add .gitingore
    git commit -m "add ingore"
      --可以在.gitingore中增加一些需要忽略的文件,此时git add .的时候就不会对.gitingore中忽略的文件进行add
    git clean -n/-f/-df
      --git clean主要是删除一些没有git add的文件,-n是显示将要删除的文件和目录, -f删除文件,-df删除文件和目录
    git clean -n -X/git clean -X -f
      --显示并删除将要删除的.gitingore中忽略的文件
    git revert <某次历史提交>
      --创建一个commit来覆盖当前的commit,HEAD指针是向后移动的,而

    三 重写历史记录

    主要学习以下几种命令: 1.git commit --amend 2.git rebase 3.git reset 4.git reflog
    git commit --amend
      --修改已经提交的commit -m后所带的信息
    git checkout -b test_rebase HEAD~
      --基于当前分支的上一个提交创建分支test_rebase
    git rebase master
      --合并master分支,但也git merge的区别就是,合并操作后,当前分支的历史看上去是线性的,而git merge后,当前分支有两条路径。处理流程如下:
        --git rebase master
        --处理冲突
        --git add <冲突文件>
        --git rebase --continue
    git rebase --abort
      --取消此次rebase的操作
    git reflog -10
      --维护HEAD引用的变化历史,显示近10条的记录
    git reset --hard/--mixed/--soft HEAD@{5}
      --hard还原了暂存区和工作区的文件到某个具体的commit, 并移动HEAD指针到指定commit
      --mixed是默认操作,只还原了暂存区,并移动HEAD指针到指定commit
      --soft只是移动HEAD指针到指定commit,并不还原任何文件

  • 相关阅读:
    lightoj-1047
    lightoj-1044
    lightoj-1045
    lightoj-1082
    LeetCode偶尔一题 —— 19. 删除链表的倒数第N个节点
    Python 3.52官方文档翻译 http://usyiyi.cn/translate/python_352/library/index.html 必看!
    Python3 time模块
    JavaScript CSS 等前端推荐
    Python之 七级字典查询
    将Sublime Text 3设置为Python全栈开发环境(转一个链接)
  • 原文地址:https://www.cnblogs.com/elexiang/p/4657298.html
Copyright © 2011-2022 走看看