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,并不还原任何文件

 

posted @ 2015-07-18 17:49  BigElephant  阅读(1582)  评论(1编辑  收藏  举报