GIT 操作

1. 查看某个文件某次提交修改的内容

    git show commitid  a.txt 

 2. git rm 和 git rm --cached 

  当我们需要删除暂存区分支上的文件, 同时工作区也不需要这个文件了, 可以使用 git rm file_path 

      当我们需要删除暂存区分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用  git rm --cached file_path

 3. git log

    不仅仅显示日志,还显示每次commit 的代码改变

    3.1 git -p -n 代表提取多少次

    3.2 git log --pretty=oneline  将每条代码历史放到一行

    3.3 git log --stat 显示改动的一个总结

    3.4 git log --graph 显示当前branch 

    3.5 git log --pretty=oneline 

    3.6 git log --follow file.php 显示某个文件的改动记录

    3.7 git log --author = "author name" 筛选某个用户的

    3.8 git log --since="2017-01-03" --before="2017-01-04"

    3.9 git log --grep="key wor" 在comit中查找关键字

    3.10 git log -S "getusername" 查找某个字符的出现或者移除的commit 

 

4. 查看版本区别

   git diff head head^

5. git stash

    5.1 git stash : 将当前修改push到stash堆栈

    5.2 git stash list 查看当前stash堆栈中的内容

    5.3 git stash apply stash@{1} 恢复某次的stash 

    5.4 git stash clear 清空堆栈

    5.5 git stash pop stash@[1} 从中移除并弹出,apply不移除

 

 6. git config --list 显示当前的配置信息

     6.1 git config --list 显示配置

     6.2 vi ~/.gitconfig 修改git 全局配置

   6.3 git config --global.alias  lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit

 

7. git mv a.php anew.php  重命名文件

8. gitk 图形化显示branch 

9. git branch 

 9.1 git branch -d testing 删除testing分之

10. git tag 

      10.1 git tag -a "2.06.1052" -m "版本说明"

      10.2 git tag 显示所有tag

      10.3 git tag -a "version" sha 给指定commit 打标签

      10.4 git tag push origin v1.2 推送本地标签到远程

      10.5 git tag push 推送所有的标签

      10.6  git tag -l version1.* 只列出version1开头的版本

      10.7  git show tag v3.06.2047 显示某个tag

 11. git alas 

      11.1 git config --global.alias.co checkout  co = checkout

12. 文件恢复

     12.1 git checkout -- a.txt 分为两种情况

             1) 如果add  过,则从暂存区恢复到工作区

             2) 如果没有add 过,则从最后的一次commit 恢复

    12.2 git reset --hard 不管是否有add  ,都是从最后一次commit进行恢复

           git reset --hard 3251dsdf5f 恢复指定的 commitid 

           Git reset head a.txt 从暂存区取出来

 13. 合并后出现较 ^M   

      git config --global core.autocrlf true

git reset是指将当前head的内容重置,不会留log信息。
  • git reset HEAD filename  从暂存区中移除文件
  • git reset –hard HEAD~3  会将最新的3次提交全部重置,就像没有提交过一样。
  • git reset –hard commit (38679ed709fd0a3767b79b93d0fba5bb8dd235f8) 回退到 38679ed709fd0a3767b79b93d0fba5bb8dd235f8 版本
根据–soft   –mixed   –hard,会对working tree和index和HEAD进行重置:
  • git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
  • git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  • git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

 

      

 

posted @ 2017-01-03 11:46  Yeah,程序猿  阅读(172)  评论(0编辑  收藏  举报