目前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. scp Permission denied

    https://blog.csdn.net/xlgen157387/article/details/49818259

  2. JavaScript lastIndexOf() 方法

    <script type="text/javascript"> var str="0000.0000.0000.0000.0000.0000.0000.&qu ...

  3. CLOUD添加自定义基础数据

    1.打开bos平台,文件-新建-复制-基础资料 2.新建目标对象 3.发布 4.开始新增对象 5.明细维护,完成 6.添加成功

  4. Java 多线程概述

    几乎所有的操作系统都支持同时运行多个任务,一 个任务通常就是一个程序,每个运行中的程序就是一个进程.当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程. 线程和进程 几乎所有的 ...

  5. liunx 运维知识一部分

    一   克隆虚拟机 大家都需要做的克隆虚拟机,在克隆虚拟机之前,需要把网卡源的UUID和Mac地址全部删除掉.不然相同会冲突使用不了. 删除UUID跟Mac的操作步骤如下:  cd /etc/sysc ...

  6. 关于idea easyui 引入css js

    1.引用官方网站 <link rel="stylesheet" type="text/css" href="http://www.w3cscho ...

  7. 如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?

    1.map和reduce的数量过多会导致什么情况?2.Reduce可以通过什么设置来增加任务个数?3.一个task的map数量由谁来决定?4.一个task的reduce数量由谁来决定? 一般情况下,在 ...

  8. python 列表、元组、字典

    一.列表 [ ] 如下的列子都可以成为列表,c=[1,2,3,4,5,6],d=["abc", "张三",“李四”],e=[1,2,3,"abc&qu ...

  9. 莫烦theano学习自修第五天【定义神经层】

    1. 代码如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np import theano.tensor as T ...

  10. python数据结构与算法第八天【冒泡排序】

    1.排序算法的稳定性 稳定排序算法会让原本有相同键值的记录维持相对次序 例如:对以下元组按照元组的第一个元素升序排列,元组如下: (4,1) (3,1) (3,7) (5,6) 若要满足条件,则可能的 ...