目前git版本控制很多公司都在用,我把平时的使用做些记录,防止忘记。

1. 有时候分支比较多,我们会基于master建立一个新分支开发,有时候也会基于别的分支建立,但时间长了可能会忘记当前分支是基于哪个分支建的。

比如基于Kyhome这个分支建立kytest

然后我们可以这样查

git reflog --date=local | grep kytest

显示

2.显示所有提交过的版本信息

git log

如果想换个显示方式可以加上参数--pretty=oneline

git log --pretty=oneline

退出按q

3.撤销工作区某个文件修改

git checkout -- 文件路径

操作如下

然后修改的文件就被还原了。

如果想撤销暂存区的文件可以用git reset HEAD

这样这个文件又回到工作区了。

4.显示日志

  1. git log --pretty=oneline -3 最近3个commit
  2. git log --pretty=oneline --after="2018-02-08" 按日期可以使用--after或--before来按照日期筛选
  3. git log --pretty=oneline --author='xxx' 按作者
  4. git log -- ./new_src/app/Http/Routes/Frontend/Access.php 查看某个文件所有记录
  5. git log -p 显示所有文件每次提交的diff
  6. git log -p ./new_src/app/Http/Routes/Frontend/Access.php 查看某个文件修改历史
  7. git show 2b665a555e3cc8c5baebb35422d2e71b0516914b33a  Access.php 查看某个文件最近变化内容
  8. git show eb88d15634c98aa9b6e160e9fc16883729d40a17 查看某次commit所有修改的内容

5.显示commit图

git log --graph

6.查看某行代码谁写的

git blame Access.php

7.查看配置信息

git config --list

8.git中有些文件是中文名 但是显示是不能正确显示成中文,通过以下命令修改。

git config --global core.quotepath false

之前

之后

9.比较工作区和暂存区的变动

git diff

git diff -- stat命令的功能是统计哪些文件发生了改变,有多少行产生了修改,不会给出改动的具体内容。

10.看出分支上的递交状况

git show-branch

11.显示本地和远程所有分支

 git branch -va   v参数显示分支最新修改注释

 

12.修改本地分支名

git branch -m old_feature new_feature

 13.删除本地分支

 git branch -D kytest_new

14.删除远端分支

 git branch -d -r  origin/kytest

15.删除远端分支刷新

git remote prune origin

16.查看远端分支

git branch -r

 17.创建分支并切换

 git checkout -b new_feature
git checkout -b 本地分支 origin/远端分支

 18.对比两个分支内容情况

查看app_kyhome分支比master分支多提交哪些内容

 git log app_kyhome ^master

 

 19.对比两个分支文件变更的列表

git diff  app_kyhome  master --stat

  

 20.对比两个分支具体文件变化情况

git diff app_kyhome master new_src/app/Http/Routes/Frontend/Access.php

  

 21.对比显示两个分支详细变化情况

git diff app_kyhome master

  

 22.把XX文件在工作区的修改全部撤销。

git checkout -- XX 文件路径

  

23.查看git命令信息

git命令那么多,有时候我们并不知道某些命令的用途,这时候可以查看命令帮助查看命令用途。

先查看命令列表

git help -a

  

然后我们想看具体的命令什么意思,比如init参数,可以用-h帮助

git init -h 

24.显示HEAD提交日志

git show HEAD

25.显示上一个版本提交日志 

git show HEAD^

  ^^为上两个版本。

 

26.显示某个分支昨天的情况

git show app_kyhome@{yesterday}

  

27.显示git index中的所有文件

git ls-files

  

 28.git暂时储藏

有时候当我们在一个分支上想切换到另一个分支,可是这个分支有修改的文件没提交,如果此时切换分支,会报下面错误

这时候我们可以用git stash命令来暂时存储当前分支修改文件的状态。先看下面文件状态。

使用命令

这时候你就可以切换到别的分支了。

要查看现有的储藏,可以使用下面命令查看。

当想回到之前的分支继续开发,那么可以使用git stash apply,之前的修改文件就会又回来了。

还有种情况,就是想pull 最新代码, 但是当前有修改代码,提示当前分支会被merge,但又不想加commit。也可以用git stash

然后在

git stash pop

分支修改的代码就出现了。其实上面两个都是一个道理。

29.创建忽略文件

先设置全局全局忽略文件配置

git config --global core.excludesfile ~/.gitignore

然后在

touch  .gitignore

这样将要忽略的文件写入该文件中,比如文件编辑器的.idea等

30.将本地分之推送到远端分支

git push origin 本地分之名:远端分之名

31.将远端分支拉取到本地(本地不存在这个分支)

git pull origin 本地分支:远端分支

 32.查看本地分支和远程分支的关联关系

 git branch -vv

33.关联本地分钟与远端分支

git branch --set-upstream-to=origin/远程分支的名字  本地分支的名字

34.合并分支

git merge 分支名    将分支合并到当前分支

35.查看远端地址

git remote -v

 36.丢弃所有修改

git checkout .

37.add添加文件内容到暂存区

git add 文件夹/            添加整个目录及其内容
git add *.文件类型 添加目录中所有此文件类型的文件

注意:git add .  和 git add -u区别

1.git add .  会监控整个工作区的状态 ,使用它会把所有文件变化都提交到暂存区,不包括删除的文件。

2.git add -u :它仅监控已经被add的文件(tracked file),它会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。

git add -u 只能添加index.php 文件

  git add .  新文件都可以提交

   git  add .  这个命令还有个主要的地方是需要在根目录执行,不能在子目录,不然有些其他目录更改的文件没法add。

38.展示本地分支和远端分支关联情况

git branch -vv

39.   .gitkeep

  这个文件是为了可以提交空的文件夹

40. git tag  创建标签

列出所有标签

git tag <feature_name> 给分支打标签

41.查看分支创建时间

 git reflog show --date=iso 分支名

该命令会显示这个分支从创建到现在的commit信息,最下面一条就是分支最早记录,并显示时间

42.删除本地有但在远程库已经不存在的分支

git remote prune origin

43.git修改远程仓库地址

$ git remote -vv
origin git@172.16.XX.245:OA/ae.oa..cn.git (fetch)
origin git@172.16.XX.245:OA/ae.oa..cn.git (push) songgq@LP1457 MINGW64 ~/Desktop/opt/case/ae.oa..cn (master)
$ git remote set-url origin git@172.16.0.245:OA/ae..cn.git #修改拉取远端地址 songgq@LP1457 MINGW64 ~/Desktop/opt/case/ae.oa..cn (master)
$ git remote -vv
origin git@172.16.XX.245:OA/ae..cn.git (fetch)
origin git@172.16.XX.245:OA/ae..cn.git (push)

44.git远程仓库强制覆盖本地

git fetch --all && git reset --hard origin/master && git pull

45.保存之前分支历史

git merge --no-ff

46.设置换行符

git config --global core.autocrlf false

47.对比本地分支和master分支提交日志差异

  1)查看本地分支有,而 master 中没有的

git log 本地分支名 ^master

2)查看master有,而本地分支中没有的

git log  master ^本地分支名

48.查看已经合入当前分支的所有分支

git branch --merged 

49.查看没有被合入当前分支的所有分支

git branch --no-merged

50.更新远程分支的本地列表 

git remote update origin --prune 

【git】git一些命令使用记录的更多相关文章

  1. 使用方便git命令检查记录的版本号

    现在开始git大多数用户都经历过subversion,对于这两种开关的版本控制系统需要一段时间去适应.本文旨在帮助恢复一些,这些用户都熟悉的日志记录买家的习惯. 我们要熟悉一个详细的例子git中log ...

  2. Git的常用命令记录

    Git的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支  ...

  3. 速刷git<一> 常用命令记录

    git config  --list 列出配置  --local 对某个仓库有效  --global 对当前用户的所有仓库有效  --system 对系统所有登录用户有效git reset  --ha ...

  4. windows中 git 命令使用记录

    建议国内开发安装淘宝npm镜像cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 或者每次执行安装时 npm ins ...

  5. Git 命令操作记录

    1.安装完git软件之后(win系统的) 1)配置用户名密码: 设置本地机器默认commit的昵称与Email. 请使用有意义的名字与email. git config --global user.n ...

  6. git log 常用命令及技巧

    git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...

  7. Git的安装和使用记录

    Git是目前世界上最先进的分布式版本控制系统(没有之一),只用过集中式版本控制工具的我,今天也要开始学习啦.廖雪峰的git教程我觉得很详细了,这里记录一下步骤以及我终于学会用Markdown了,真的是 ...

  8. git workflow常用命令

    git init git status git add readme.txt git add --all         Adds all new or modified files git comm ...

  9. git的一些命令

    因为项目的原因,大家把项目托管到git上,然后我不会,队友就传了一个廖雪峰的git教程,讲的很详细,不会用git的同学,可以在http://pan.baidu.com/s/1pKizolP上下载,这是 ...

随机推荐

  1. c++ 单引号"字符串" 用法

    __int64 flag; //赋值超过4字节,编译错误 //flag = 'ABCDE'; //低于4字节,高位补 0 //flag = 'BCDE'; flag = 'A' << 24 ...

  2. 测试工具之ab

    ab命令原理  Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx.lighthttp.IIS等其它Web服务器的压力.  ab命令对发出负载的计算机要求很低,既不会占 ...

  3. SpringBoot 4.SpringBoot 整合 devtools 实现热部署

    一.添加 devtools 依赖 <!-- Spring boot 热部署 : 此热部署会遇到 java.lang.ClassCastException 异常 --> <!-- op ...

  4. Struts2——namespace、action、以及path问题

    简单的介绍下Struts2中的几个简单的问题(namespace.action.以及path问题) namespace(命名空间) Namespace决定了action的访问路径,默认为“”,意味着可 ...

  5. python数学第五天【常用概率分布】

    1. 概率基本公式 思考题: 3. 两点分布 4. 二项分布 推论一: 5.柏松分布 6. 均匀分布 7. 指数分布 8. 正态分布 9.常见分布的总结

  6. 错误:org.apache.catalina.LifecycleException: Protocol handler start failed

    org.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connect ...

  7. 各个版本spring的jar包以及源码下载地址,目前最高版本到spring4.3.8,留存备用:

    http://maven.springframework.org/release/org/springframework/spring/

  8. Microsoft Bot Framework with LUIS

    今年微软的编程之美的主题是“对话即平台”,“人工智能”,要求参赛选手用到Bot Framework与Cognitive Services. 大多数人应该对这两个技术都不怎么熟悉吧,我就在这里写写自己所 ...

  9. Modeling Filters and Whitening Filters

    Colored and White Process White Process White Process,又称为White Noise(白噪声),其中white来源于白光,寓意着PSD的平坦分布,w ...

  10. JarvisOJ Basic Base64?

    GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI=== 题目非常具有迷惑性,我一开始以为就是一 ...